@@ -8,118 +8,120 @@ import (
88)
99
1010var _ = Describe ("ArrayIndex" , func () {
11+ dummyPath := MustNewPointerFromString ("" )
12+
1113 Describe ("Concrete" , func () {
1214 It ("returns positive index" , func () {
13- idx := ArrayIndex {Index : 0 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }}
15+ idx := ArrayIndex {Index : 0 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
1416 Expect (idx .Concrete ()).To (Equal (0 ))
1517
16- idx = ArrayIndex {Index : 1 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }}
18+ idx = ArrayIndex {Index : 1 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
1719 Expect (idx .Concrete ()).To (Equal (1 ))
1820
19- idx = ArrayIndex {Index : 2 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }}
21+ idx = ArrayIndex {Index : 2 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
2022 Expect (idx .Concrete ()).To (Equal (2 ))
2123 })
2224
2325 It ("wraps around negative index one time" , func () {
24- idx := ArrayIndex {Index : - 0 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }}
26+ idx := ArrayIndex {Index : - 0 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
2527 Expect (idx .Concrete ()).To (Equal (0 ))
2628
27- idx = ArrayIndex {Index : - 1 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }}
29+ idx = ArrayIndex {Index : - 1 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
2830 Expect (idx .Concrete ()).To (Equal (2 ))
2931
30- idx = ArrayIndex {Index : - 2 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }}
32+ idx = ArrayIndex {Index : - 2 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
3133 Expect (idx .Concrete ()).To (Equal (1 ))
3234
33- idx = ArrayIndex {Index : - 3 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }}
35+ idx = ArrayIndex {Index : - 3 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
3436 Expect (idx .Concrete ()).To (Equal (0 ))
3537 })
3638
3739 It ("does not work with empty arrays" , func () {
38- idx := ArrayIndex {Index : 0 , Modifiers : nil , Array : []interface {}{}}
40+ idx := ArrayIndex {Index : 0 , Modifiers : nil , Array : []interface {}{}, Path : dummyPath }
3941 _ , err := idx .Concrete ()
40- Expect (err ).To (Equal (OpMissingIndexErr {0 , []interface {}{}}))
42+ Expect (err ).To (Equal (OpMissingIndexErr {0 , []interface {}{}, dummyPath }))
4143
4244 p := PrevModifier {}
4345 n := NextModifier {}
4446
45- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , n }, Array : []interface {}{}}
47+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , n }, Array : []interface {}{}, Path : dummyPath }
4648 _ , err = idx .Concrete ()
47- Expect (err ).To (Equal (OpMissingIndexErr {0 , []interface {}{}}))
49+ Expect (err ).To (Equal (OpMissingIndexErr {0 , []interface {}{}, dummyPath }))
4850 })
4951
5052 It ("does not work with index out of bounds" , func () {
51- idx := ArrayIndex {Index : 3 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }}
53+ idx := ArrayIndex {Index : 3 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
5254 _ , err := idx .Concrete ()
53- Expect (err ).To (Equal (OpMissingIndexErr {3 , []interface {}{1 , 2 , 3 }}))
55+ Expect (err ).To (Equal (OpMissingIndexErr {3 , []interface {}{1 , 2 , 3 }, dummyPath }))
5456
55- idx = ArrayIndex {Index : - 4 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }}
57+ idx = ArrayIndex {Index : - 4 , Modifiers : nil , Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
5658 _ , err = idx .Concrete ()
57- Expect (err ).To (Equal (OpMissingIndexErr {- 4 , []interface {}{1 , 2 , 3 }}))
59+ Expect (err ).To (Equal (OpMissingIndexErr {- 4 , []interface {}{1 , 2 , 3 }, dummyPath }))
5860 })
5961
6062 It ("returns previous item when previous modifier is used" , func () {
6163 p := PrevModifier {}
6264
63- idx := ArrayIndex {Index : 0 , Modifiers : []Modifier {p }, Array : []interface {}{1 , 2 , 3 }}
65+ idx := ArrayIndex {Index : 0 , Modifiers : []Modifier {p }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
6466 Expect (idx .Concrete ()).To (Equal (2 ))
6567
66- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , p }, Array : []interface {}{1 , 2 , 3 }}
68+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , p }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
6769 Expect (idx .Concrete ()).To (Equal (1 ))
6870
69- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , p , p }, Array : []interface {}{1 , 2 , 3 }}
71+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , p , p }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
7072 Expect (idx .Concrete ()).To (Equal (0 ))
7173
72- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , p , p , p }, Array : []interface {}{1 , 2 , 3 }}
74+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , p , p , p }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
7375 _ , err := idx .Concrete ()
74- Expect (err ).To (Equal (OpMissingIndexErr {- 4 , []interface {}{1 , 2 , 3 }}))
76+ Expect (err ).To (Equal (OpMissingIndexErr {- 4 , []interface {}{1 , 2 , 3 }, dummyPath }))
7577
76- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , p , p , p , p }, Array : []interface {}{1 , 2 , 3 }}
78+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {p , p , p , p , p }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
7779 _ , err = idx .Concrete ()
78- Expect (err ).To (Equal (OpMissingIndexErr {- 5 , []interface {}{1 , 2 , 3 }}))
80+ Expect (err ).To (Equal (OpMissingIndexErr {- 5 , []interface {}{1 , 2 , 3 }, dummyPath }))
7981
80- idx = ArrayIndex {Index : 2 , Modifiers : []Modifier {p , p }, Array : []interface {}{1 , 2 , 3 }}
82+ idx = ArrayIndex {Index : 2 , Modifiers : []Modifier {p , p }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
8183 Expect (idx .Concrete ()).To (Equal (0 ))
8284 })
8385
8486 It ("returns next item when next modifier is used" , func () {
8587 n := NextModifier {}
8688
87- idx := ArrayIndex {Index : 0 , Modifiers : []Modifier {n }, Array : []interface {}{1 , 2 , 3 }}
89+ idx := ArrayIndex {Index : 0 , Modifiers : []Modifier {n }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
8890 Expect (idx .Concrete ()).To (Equal (1 ))
8991
90- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n }, Array : []interface {}{1 , 2 , 3 }}
92+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
9193 Expect (idx .Concrete ()).To (Equal (2 ))
9294
93- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n , n }, Array : []interface {}{1 , 2 , 3 }}
95+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n , n }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
9496 _ , err := idx .Concrete ()
95- Expect (err ).To (Equal (OpMissingIndexErr {3 , []interface {}{1 , 2 , 3 }}))
97+ Expect (err ).To (Equal (OpMissingIndexErr {3 , []interface {}{1 , 2 , 3 }, dummyPath }))
9698
97- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n , n , n }, Array : []interface {}{1 , 2 , 3 }}
99+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n , n , n }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
98100 _ , err = idx .Concrete ()
99- Expect (err ).To (Equal (OpMissingIndexErr {4 , []interface {}{1 , 2 , 3 }}))
101+ Expect (err ).To (Equal (OpMissingIndexErr {4 , []interface {}{1 , 2 , 3 }, dummyPath }))
100102 })
101103
102104 It ("works with multiple previous and next modifiers" , func () {
103105 p := PrevModifier {}
104106 n := NextModifier {}
105107
106- idx := ArrayIndex {Index : 0 , Modifiers : []Modifier {p , n }, Array : []interface {}{1 , 2 , 3 }}
108+ idx := ArrayIndex {Index : 0 , Modifiers : []Modifier {p , n }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
107109 Expect (idx .Concrete ()).To (Equal (0 ))
108110
109- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , p }, Array : []interface {}{1 , 2 , 3 }}
111+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , p }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
110112 Expect (idx .Concrete ()).To (Equal (0 ))
111113
112- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n , p }, Array : []interface {}{1 , 2 , 3 }}
114+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n , p }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
113115 Expect (idx .Concrete ()).To (Equal (1 ))
114116
115- idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n , n , p }, Array : []interface {}{1 , 2 , 3 }}
117+ idx = ArrayIndex {Index : 0 , Modifiers : []Modifier {n , n , n , p }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
116118 Expect (idx .Concrete ()).To (Equal (2 ))
117119 })
118120
119121 It ("does not support any other modifier except previous and next" , func () {
120122 b := BeforeModifier {}
121123
122- idx := ArrayIndex {Index : 0 , Modifiers : []Modifier {b }, Array : []interface {}{1 , 2 , 3 }}
124+ idx := ArrayIndex {Index : 0 , Modifiers : []Modifier {b }, Array : []interface {}{1 , 2 , 3 }, Path : dummyPath }
123125 _ , err := idx .Concrete ()
124126 Expect (err .Error ()).To (Equal ("Expected to find one of the following modifiers: 'prev', 'next', but found modifier 'patch.BeforeModifier'" ))
125127 })
0 commit comments