@@ -24,6 +24,15 @@ public function it_diffs_simple_json_and_removes_a_column()
24
24
$ this ->assertEquals (['a ' => 1 ], $ diff ->compareTo ('{"a":"1","b":"2"} ' )->added );
25
25
}
26
26
27
+ /** @test */
28
+ public function we_can_change_the_original ()
29
+ {
30
+ $ diff = new JsonDiff ('{} ' );
31
+ $ diff ->setOriginal ('{"a":"1"} ' );
32
+
33
+ $ this ->assertFalse ($ diff ->compareTo ('{"a":"1"} ' )->changed );
34
+ }
35
+
27
36
/** @test */
28
37
public function it_decodes_to_an_array_properly ()
29
38
{
@@ -96,4 +105,66 @@ public function it_successfully_diffs_the_stub_files()
96
105
$ this ->assertEquals (json_decode (stub ('diff.json ' ), true ), $ result ->diff );
97
106
$ this ->assertTrue ($ result ->changed );
98
107
}
108
+
109
+ /** @test */
110
+ public function it_ignores_keys ()
111
+ {
112
+ $ original = '[
113
+ {
114
+ "name": "Keoghan",
115
+
116
+ "cost": 0
117
+ }
118
+ ] ' ;
119
+
120
+ $ compareTo = '[
121
+ {
122
+ "name": "Keoghan",
123
+
124
+ "cost": 100
125
+ }
126
+ ] ' ;
127
+
128
+ $ diff = new JsonDiff ($ original );
129
+
130
+ $ this ->assertFalse ($ diff ->exclude (['cost ' ])->compareTo ($ compareTo )->changed );
131
+
132
+ $ this ->assertFalse ((new JsonDiff )->setOriginal ($ original )->exclude (['cost ' ])->compareTo ($ compareTo )->changed );
133
+ $ this ->assertFalse (JsonDiff::compare ($ original , $ compareTo , ['cost ' ])->changed );
134
+ }
135
+
136
+ /** @test */
137
+ public function it_ignores_deep_keys ()
138
+ {
139
+ $ original = '[
140
+ {
141
+ "name": "Keoghan",
142
+
143
+ "cost": {
144
+ "nested": {
145
+ "price": 0
146
+ }
147
+ }
148
+ }
149
+ ] ' ;
150
+
151
+ $ compareTo = '[
152
+ {
153
+ "name": "Keoghan",
154
+
155
+ "cost": {
156
+ "nested": {
157
+ "price": 100
158
+ }
159
+ }
160
+ }
161
+ ] ' ;
162
+
163
+ $ diff = new JsonDiff ($ original );
164
+
165
+ $ this ->assertFalse ($ diff ->exclude (['price ' ])->compareTo ($ compareTo )->changed );
166
+
167
+ $ this ->assertFalse ((new JsonDiff )->setOriginal ($ original )->exclude (['price ' ])->compareTo ($ compareTo )->changed );
168
+ $ this ->assertFalse (JsonDiff::compare ($ original , $ compareTo , ['price ' ])->changed );
169
+ }
99
170
}
0 commit comments