@@ -9,9 +9,10 @@ import (
99
1010var _ = Describe ("Diff.Calculate" , func () {
1111 testDiff := func (left , right interface {}, expectedOps []Op ) {
12- Expect (Diff {Left : left , Right : right }.Calculate ()).To (Equal (Ops (expectedOps )))
12+ diffOps := Diff {Left : left , Right : right }.Calculate ()
13+ Expect (diffOps ).To (Equal (Ops (expectedOps )))
1314
14- result , err := Ops (expectedOps ).Apply (left )
15+ result , err := Ops (diffOps ).Apply (left )
1516 Expect (err ).ToNot (HaveOccurred ())
1617
1718 if right == nil { // gomega does not allow nil==nil comparison
@@ -38,18 +39,25 @@ var _ = Describe("Diff.Calculate", func() {
3839 })
3940
4041 It ("can replace doc root" , func () {
41- testDiff (nil , "a" , []Op {ReplaceOp {Path : MustNewPointerFromString ("" ), Value : "a" }})
42+ testDiff (nil , "a" , []Op {
43+ TestOp {Path : MustNewPointerFromString ("" ), Value : nil },
44+ ReplaceOp {Path : MustNewPointerFromString ("" ), Value : "a" },
45+ })
4246 })
4347
4448 It ("can replace doc root with nil" , func () {
45- testDiff ("a" , nil , []Op {ReplaceOp {Path : MustNewPointerFromString ("" ), Value : nil }})
49+ testDiff ("a" , nil , []Op {
50+ TestOp {Path : MustNewPointerFromString ("" ), Value : "a" },
51+ ReplaceOp {Path : MustNewPointerFromString ("" ), Value : nil },
52+ })
4653 })
4754
4855 It ("can diff maps" , func () {
4956 testDiff (
5057 map [interface {}]interface {}{"a" : 123 },
5158 map [interface {}]interface {}{"a" : 124 },
5259 []Op {
60+ TestOp {Path : MustNewPointerFromString ("/a" ), Value : 123 },
5361 ReplaceOp {Path : MustNewPointerFromString ("/a" ), Value : 124 },
5462 },
5563 )
@@ -58,7 +66,9 @@ var _ = Describe("Diff.Calculate", func() {
5866 map [interface {}]interface {}{"a" : 123 , "b" : 456 },
5967 map [interface {}]interface {}{"a" : 124 , "c" : 456 },
6068 []Op {
69+ TestOp {Path : MustNewPointerFromString ("/a" ), Value : 123 },
6170 ReplaceOp {Path : MustNewPointerFromString ("/a" ), Value : 124 },
71+ TestOp {Path : MustNewPointerFromString ("/b" ), Value : 456 },
6272 RemoveOp {Path : MustNewPointerFromString ("/b" )},
6373 ReplaceOp {Path : MustNewPointerFromString ("/c?" ), Value : 456 },
6474 },
@@ -68,7 +78,9 @@ var _ = Describe("Diff.Calculate", func() {
6878 map [interface {}]interface {}{"a" : 123 , "b" : 456 },
6979 map [interface {}]interface {}{"a" : 124 },
7080 []Op {
81+ TestOp {Path : MustNewPointerFromString ("/a" ), Value : 123 },
7182 ReplaceOp {Path : MustNewPointerFromString ("/a" ), Value : 124 },
83+ TestOp {Path : MustNewPointerFromString ("/b" ), Value : 456 },
7284 RemoveOp {Path : MustNewPointerFromString ("/b" )},
7385 },
7486 )
@@ -77,7 +89,9 @@ var _ = Describe("Diff.Calculate", func() {
7789 map [interface {}]interface {}{"a" : 123 , "b" : 456 },
7890 map [interface {}]interface {}{},
7991 []Op {
92+ TestOp {Path : MustNewPointerFromString ("/a" ), Value : 123 },
8093 RemoveOp {Path : MustNewPointerFromString ("/a" )},
94+ TestOp {Path : MustNewPointerFromString ("/b" ), Value : 456 },
8195 RemoveOp {Path : MustNewPointerFromString ("/b" )},
8296 },
8397 )
@@ -86,6 +100,7 @@ var _ = Describe("Diff.Calculate", func() {
86100 map [interface {}]interface {}{"a" : 123 },
87101 map [interface {}]interface {}{"a" : nil },
88102 []Op {
103+ TestOp {Path : MustNewPointerFromString ("/a" ), Value : 123 },
89104 ReplaceOp {Path : MustNewPointerFromString ("/a" ), Value : nil },
90105 },
91106 )
@@ -94,7 +109,9 @@ var _ = Describe("Diff.Calculate", func() {
94109 map [interface {}]interface {}{"a" : 123 , "b" : map [interface {}]interface {}{"a" : 1024 , "b" : 4056 }},
95110 map [interface {}]interface {}{"a" : 124 , "b" : map [interface {}]interface {}{"a" : 1024 , "c" : 4056 }},
96111 []Op {
112+ TestOp {Path : MustNewPointerFromString ("/a" ), Value : 123 },
97113 ReplaceOp {Path : MustNewPointerFromString ("/a" ), Value : 124 },
114+ TestOp {Path : MustNewPointerFromString ("/b/b" ), Value : 4056 },
98115 RemoveOp {Path : MustNewPointerFromString ("/b/b" )},
99116 ReplaceOp {Path : MustNewPointerFromString ("/b/c?" ), Value : 4056 },
100117 },
@@ -104,6 +121,7 @@ var _ = Describe("Diff.Calculate", func() {
104121 map [interface {}]interface {}{"a" : 123 },
105122 "a" ,
106123 []Op {
124+ TestOp {Path : MustNewPointerFromString ("" ), Value : map [interface {}]interface {}{"a" : 123 }},
107125 ReplaceOp {Path : MustNewPointerFromString ("" ), Value : "a" },
108126 },
109127 )
@@ -112,6 +130,7 @@ var _ = Describe("Diff.Calculate", func() {
112130 "a" ,
113131 map [interface {}]interface {}{"a" : 123 },
114132 []Op {
133+ TestOp {Path : MustNewPointerFromString ("" ), Value : "a" },
115134 ReplaceOp {Path : MustNewPointerFromString ("" ), Value : map [interface {}]interface {}{"a" : 123 }},
116135 },
117136 )
@@ -122,6 +141,7 @@ var _ = Describe("Diff.Calculate", func() {
122141 []interface {}{"a" , 123 },
123142 []interface {}{"b" , 123 },
124143 []Op {
144+ TestOp {Path : MustNewPointerFromString ("/0" ), Value : "a" },
125145 ReplaceOp {Path : MustNewPointerFromString ("/0" ), Value : "b" },
126146 },
127147 )
@@ -130,6 +150,7 @@ var _ = Describe("Diff.Calculate", func() {
130150 []interface {}{"a" },
131151 []interface {}{"b" , 123 , 456 },
132152 []Op {
153+ TestOp {Path : MustNewPointerFromString ("/0" ), Value : "a" },
133154 ReplaceOp {Path : MustNewPointerFromString ("/0" ), Value : "b" },
134155 ReplaceOp {Path : MustNewPointerFromString ("/-" ), Value : 123 },
135156 ReplaceOp {Path : MustNewPointerFromString ("/-" ), Value : 456 },
@@ -140,8 +161,11 @@ var _ = Describe("Diff.Calculate", func() {
140161 []interface {}{"a" , 123 , 456 },
141162 []interface {}{"b" },
142163 []Op {
164+ TestOp {Path : MustNewPointerFromString ("/0" ), Value : "a" },
143165 ReplaceOp {Path : MustNewPointerFromString ("/0" ), Value : "b" },
166+ TestOp {Path : MustNewPointerFromString ("/1" ), Value : 123 },
144167 RemoveOp {Path : MustNewPointerFromString ("/1" )},
168+ TestOp {Path : MustNewPointerFromString ("/1" ), Value : 456 },
145169 RemoveOp {Path : MustNewPointerFromString ("/1" )},
146170 },
147171 )
@@ -150,7 +174,9 @@ var _ = Describe("Diff.Calculate", func() {
150174 []interface {}{123 , 456 },
151175 []interface {}{},
152176 []Op {
177+ TestOp {Path : MustNewPointerFromString ("/0" ), Value : 123 },
153178 RemoveOp {Path : MustNewPointerFromString ("/0" )},
179+ TestOp {Path : MustNewPointerFromString ("/0" ), Value : 456 },
154180 RemoveOp {Path : MustNewPointerFromString ("/0" )},
155181 },
156182 )
@@ -159,16 +185,19 @@ var _ = Describe("Diff.Calculate", func() {
159185 []interface {}{123 , 456 },
160186 []interface {}{123 , "a" , 456 }, // TODO unoptimized insertion
161187 []Op {
188+ TestOp {Path : MustNewPointerFromString ("/1" ), Value : 456 },
162189 ReplaceOp {Path : MustNewPointerFromString ("/1" ), Value : "a" },
163190 ReplaceOp {Path : MustNewPointerFromString ("/-" ), Value : 456 },
164191 },
165192 )
166193
167194 testDiff (
168195 []interface {}{[]interface {}{456 , 789 }},
169- []interface {}{[]interface {}{789 }},
196+ []interface {}{[]interface {}{789 }}, // TODO unoptimized deletion
170197 []Op {
198+ TestOp {Path : MustNewPointerFromString ("/0/0" ), Value : 456 },
171199 ReplaceOp {Path : MustNewPointerFromString ("/0/0" ), Value : 789 },
200+ TestOp {Path : MustNewPointerFromString ("/0/1" ), Value : 789 },
172201 RemoveOp {Path : MustNewPointerFromString ("/0/1" )},
173202 },
174203 )
@@ -177,6 +206,7 @@ var _ = Describe("Diff.Calculate", func() {
177206 []interface {}{"a" , 123 },
178207 "a" ,
179208 []Op {
209+ TestOp {Path : MustNewPointerFromString ("" ), Value : []interface {}{"a" , 123 }},
180210 ReplaceOp {Path : MustNewPointerFromString ("" ), Value : "a" },
181211 },
182212 )
@@ -185,6 +215,7 @@ var _ = Describe("Diff.Calculate", func() {
185215 "a" ,
186216 []interface {}{"a" , 123 },
187217 []Op {
218+ TestOp {Path : MustNewPointerFromString ("" ), Value : "a" },
188219 ReplaceOp {Path : MustNewPointerFromString ("" ), Value : []interface {}{"a" , 123 }},
189220 },
190221 )
0 commit comments