|
@@ -13,6 +13,25 @@ |
13 |
13 |
|
|
14 |
14 |
|
public class InjectionPointSelectorControllerTest extends TestCasePlus |
15 |
15 |
|
{ |
|
16 |
+ |
private TS m1st = new TS( "1st" ); |
|
17 |
+ |
private TS m2nd = new TS( "2nd" ); |
|
18 |
+ |
private TS m3rd = new TS( "3rd" ); |
|
19 |
+ |
private TS m4th = new TS( "4th" ); |
|
20 |
+ |
private TS m5th = new TS( "5th" ); |
|
21 |
+ |
|
|
22 |
+ |
private Top<TS> mTop1st = Top.create( m1st ); |
|
23 |
+ |
|
|
24 |
+ |
private Reference<TS> m1stReference = Reference.create( 2, m1st ); |
|
25 |
+ |
private Reference<TS> m2ndReference = Reference.create( 2, m2nd ); |
|
26 |
+ |
private Reference<TS> m3rdReference = Reference.create( 2, m3rd ); |
|
27 |
+ |
private Reference<TS> m4thReference = Reference.create( 2, m4th ); |
|
28 |
+ |
private Reference<TS> m5thReference = Reference.create( 2, m5th ); |
|
29 |
+ |
|
|
30 |
+ |
private There<TS> m1stThere2nd = There.create( m1st, m2nd ); |
|
31 |
+ |
private There<TS> m2ndThere3rd = There.create( m2nd, m3rd ); |
|
32 |
+ |
private There<TS> m3rdThere4th = There.create( m3rd, m4th ); |
|
33 |
+ |
private There<TS> m4thThere5th = There.create( m4th, m5th ); |
|
34 |
+ |
|
16 |
35 |
|
public static TestSuite suite() |
17 |
36 |
|
{ |
18 |
37 |
|
return new TestSuite( InjectionPointSelectorControllerTest.class ); |
|
@@ -33,9 +52,14 @@ |
33 |
52 |
|
assertEquals( new DrillDownSet( pHomeSet, pSomethingBetweenHomeAndPreviousSets, pPreviousSet, pCurrentSet ), pActual ); |
34 |
53 |
|
} |
35 |
54 |
|
|
|
55 |
+ |
private void assertEquals( DrillDownSet pActual, ViewSet pHomeSet, ViewSet pPreviousSet, ViewSet pCurrentSet ) |
|
56 |
+ |
{ |
|
57 |
+ |
assertEquals( pActual, pHomeSet, false, pPreviousSet, pCurrentSet ); |
|
58 |
+ |
} |
|
59 |
+ |
|
36 |
60 |
|
private void assertEquals( DrillDownSet pActual, ViewSet pHomeSet, ViewSet pCurrentSet ) |
37 |
61 |
|
{ |
38 |
|
- |
assertEquals( pActual, null, false, pHomeSet, pCurrentSet ); |
|
62 |
+ |
assertEquals( pActual, null, pHomeSet, pCurrentSet ); |
39 |
63 |
|
} |
40 |
64 |
|
|
41 |
65 |
|
private void assertEquals( DrillDownSet pActual, ViewSet pCurrentSet ) |
|
@@ -43,6 +67,30 @@ |
43 |
67 |
|
assertEquals( pActual, null, pCurrentSet ); |
44 |
68 |
|
} |
45 |
69 |
|
|
|
70 |
+ |
private void assertSelectedBetweens( List<Between<TS>> pActual, Between<TS>... pExpected ) |
|
71 |
+ |
{ |
|
72 |
+ |
if ( !areEqual( pActual, pExpected ) ) |
|
73 |
+ |
{ |
|
74 |
+ |
failNotEquals( null, Arrays.asList( pExpected ), pActual ); |
|
75 |
+ |
} |
|
76 |
+ |
} |
|
77 |
+ |
|
|
78 |
+ |
private boolean areEqual( List<Between<TS>> pActual, Between<TS>[] pExpected ) |
|
79 |
+ |
{ |
|
80 |
+ |
if ( pActual.size() != pExpected.length ) |
|
81 |
+ |
{ |
|
82 |
+ |
return false; |
|
83 |
+ |
} |
|
84 |
+ |
for ( int i = 0; i < pExpected.length; i++ ) |
|
85 |
+ |
{ |
|
86 |
+ |
if ( !pExpected[i].equals( pActual.get( i ) ) ) |
|
87 |
+ |
{ |
|
88 |
+ |
return false; |
|
89 |
+ |
} |
|
90 |
+ |
} |
|
91 |
+ |
return true; |
|
92 |
+ |
} |
|
93 |
+ |
|
46 |
94 |
|
private static class TS implements Synopsisable |
47 |
95 |
|
{ |
48 |
96 |
|
private String mLines; |
|
@@ -71,121 +119,176 @@ |
71 |
119 |
|
} |
72 |
120 |
|
} |
73 |
121 |
|
|
74 |
|
- |
public void testInitial_updateDrillDownSet() |
|
122 |
+ |
public void test_updateDrillDownSetWhenEntriesVisibleChanges() |
75 |
123 |
|
throws Exception |
76 |
124 |
|
{ |
77 |
125 |
|
List<Between<TS>> zSelectedBetweens = new ArrayList<Between<TS>>(); |
78 |
126 |
|
|
79 |
|
- |
TS z1st = new TS( "1st" ); |
80 |
|
- |
InjectionPointSelectorController<TS> zController = new InjectionPointSelectorController<TS>( 2, null, z1st ); |
|
127 |
+ |
InjectionPointSelectorController<TS> zController = new InjectionPointSelectorController<TS>( 2, null, m1st ); |
81 |
128 |
|
|
82 |
129 |
|
assertNull( zController.updateDrillDownSetWhenEntriesVisibleChanges( 2, zSelectedBetweens ) ); |
83 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
130 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
84 |
131 |
|
|
85 |
132 |
|
assertEquals( zController.updateDrillDownSetWhenEntriesVisibleChanges( 3, zSelectedBetweens ), // |
86 |
|
- |
new ViewSet( Top.create( z1st ), // |
87 |
|
- |
Reference.create( 2, z1st ), // |
88 |
|
- |
Bottom.create( z1st ) ) // |
|
133 |
+ |
new ViewSet( mTop1st, // |
|
134 |
+ |
m1stReference, // |
|
135 |
+ |
Bottom.create( m1st ) ) // |
89 |
136 |
|
); |
90 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
137 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
91 |
138 |
|
|
92 |
|
- |
TS z2nd = new TS( "2nd" ); |
93 |
|
- |
zController = new InjectionPointSelectorController<TS>( 2, null, z1st, z2nd ); |
|
139 |
+ |
zController = new InjectionPointSelectorController<TS>( 2, null, m1st, m2nd ); |
94 |
140 |
|
|
95 |
141 |
|
assertNull( zController.updateDrillDownSetWhenEntriesVisibleChanges( 4, zSelectedBetweens ) ); |
96 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
142 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
97 |
143 |
|
|
98 |
144 |
|
assertEquals( zController.updateDrillDownSetWhenEntriesVisibleChanges( 5, zSelectedBetweens ), // |
99 |
|
- |
new ViewSet( Top.create( z1st ), // |
100 |
|
- |
Reference.create( 2, z1st ), // |
101 |
|
- |
There.create( z1st, z2nd ), // |
102 |
|
- |
Reference.create( 2, z2nd ), // |
103 |
|
- |
Bottom.create( z2nd ) ) // |
|
145 |
+ |
new ViewSet( mTop1st, // |
|
146 |
+ |
m1stReference, // |
|
147 |
+ |
m1stThere2nd, // |
|
148 |
+ |
m2ndReference, // |
|
149 |
+ |
Bottom.create( m2nd ) ) // |
104 |
150 |
|
); |
105 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
151 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
106 |
152 |
|
|
107 |
|
- |
TS z3rd = new TS( "3rd" ); |
108 |
|
- |
zController = new InjectionPointSelectorController<TS>( 2, null, z1st, z2nd, z3rd ); |
|
153 |
+ |
zController = new InjectionPointSelectorController<TS>( 2, null, m1st, m2nd, m3rd ); |
109 |
154 |
|
|
110 |
155 |
|
assertNull( zController.updateDrillDownSetWhenEntriesVisibleChanges( 4, zSelectedBetweens ) ); |
111 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
156 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
112 |
157 |
|
|
113 |
158 |
|
assertEquals( zController.updateDrillDownSetWhenEntriesVisibleChanges( 7, zSelectedBetweens ), // |
114 |
|
- |
new ViewSet( Top.create( z1st ), // |
115 |
|
- |
Reference.create( 2, z1st ), // |
116 |
|
- |
There.create( z1st, z2nd ), // |
117 |
|
- |
Reference.create( 2, z2nd ), // |
118 |
|
- |
There.create( z2nd, z3rd ), // |
119 |
|
- |
Reference.create( 2, z3rd ), // |
120 |
|
- |
Bottom.create( z3rd ) ) // |
|
159 |
+ |
new ViewSet( mTop1st, // |
|
160 |
+ |
m1stReference, // |
|
161 |
+ |
m1stThere2nd, // |
|
162 |
+ |
m2ndReference, // |
|
163 |
+ |
m2ndThere3rd, // |
|
164 |
+ |
m3rdReference, // |
|
165 |
+ |
Bottom.create( m3rd ) ) // |
121 |
166 |
|
); |
122 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
167 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
123 |
168 |
|
|
124 |
169 |
|
assertEquals( zController.updateDrillDownSetWhenEntriesVisibleChanges( 5, zSelectedBetweens ), // |
125 |
|
- |
new ViewSet( Top.create( z1st ), // |
126 |
|
- |
Reference.create( 2, z1st ), // |
127 |
|
- |
Between.create( false, z1st, z3rd ), // |
128 |
|
- |
Reference.create( 2, z3rd ), // |
129 |
|
- |
Bottom.create( z3rd ) ) // |
|
170 |
+ |
new ViewSet( mTop1st, // |
|
171 |
+ |
m1stReference, // |
|
172 |
+ |
Between.create( false, m1st, m3rd ), // |
|
173 |
+ |
m3rdReference, // |
|
174 |
+ |
Bottom.create( m3rd ) ) // |
130 |
175 |
|
); |
131 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
176 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
132 |
177 |
|
|
133 |
|
- |
TS z4th = new TS( "4th" ); |
134 |
|
- |
zController = new InjectionPointSelectorController<TS>( 2, null, z1st, z2nd, z3rd, z4th ); |
|
178 |
+ |
zController = new InjectionPointSelectorController<TS>( 2, null, m1st, m2nd, m3rd, m4th ); |
135 |
179 |
|
|
136 |
180 |
|
assertEquals( zController.updateDrillDownSetWhenEntriesVisibleChanges( 5, zSelectedBetweens ), // |
137 |
|
- |
new ViewSet( Top.create( z1st ), // |
138 |
|
- |
Reference.create( 2, z1st ), // |
139 |
|
- |
Between.create( false, z1st, z4th ), // |
140 |
|
- |
Reference.create( 2, z4th ), // |
141 |
|
- |
Bottom.create( z4th ) ) // |
|
181 |
+ |
new ViewSet( mTop1st, // |
|
182 |
+ |
m1stReference, // |
|
183 |
+ |
Between.create( false, m1st, m4th ), // |
|
184 |
+ |
m4thReference, // |
|
185 |
+ |
Bottom.create( m4th ) ) // |
142 |
186 |
|
); |
143 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
187 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
144 |
188 |
|
|
145 |
189 |
|
assertEquals( zController.updateDrillDownSetWhenEntriesVisibleChanges( 7, zSelectedBetweens ), // |
146 |
|
- |
new ViewSet( Top.create( z1st ), // |
147 |
|
- |
Reference.create( 2, z1st ), // |
148 |
|
- |
There.create( z1st, z2nd ), // |
149 |
|
- |
Reference.create( 2, z2nd ), // |
150 |
|
- |
Between.create( false, z2nd, z4th ), // |
151 |
|
- |
Reference.create( 2, z4th ), // |
152 |
|
- |
Bottom.create( z4th ) ) // |
|
190 |
+ |
new ViewSet( mTop1st, // |
|
191 |
+ |
m1stReference, // |
|
192 |
+ |
m1stThere2nd, // |
|
193 |
+ |
m2ndReference, // |
|
194 |
+ |
Between.create( false, m2nd, m4th ), // |
|
195 |
+ |
m4thReference, // |
|
196 |
+ |
Bottom.create( m4th ) ) // |
153 |
197 |
|
); |
154 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
198 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
155 |
199 |
|
|
156 |
|
- |
TS z5th = new TS( "5th" ); |
157 |
|
- |
zController = new InjectionPointSelectorController<TS>( 2, null, z1st, z2nd, z3rd, z4th, z5th ); |
|
200 |
+ |
zController = new InjectionPointSelectorController<TS>( 2, null, m1st, m2nd, m3rd, m4th, m5th ); |
158 |
201 |
|
assertEquals( zController.updateDrillDownSetWhenEntriesVisibleChanges( 5, zSelectedBetweens ), // |
159 |
|
- |
new ViewSet( Top.create( z1st ), // |
160 |
|
- |
Reference.create( 2, z1st ), // |
161 |
|
- |
Between.create( false, z1st, z5th ), // |
162 |
|
- |
Reference.create( 2, z5th ), // |
163 |
|
- |
Bottom.create( z5th ) ) // |
|
202 |
+ |
new ViewSet( mTop1st, // |
|
203 |
+ |
m1stReference, // |
|
204 |
+ |
Between.create( false, m1st, m5th ), // |
|
205 |
+ |
m5thReference, // |
|
206 |
+ |
Bottom.create( m5th ) ) // |
164 |
207 |
|
); |
165 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
208 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
166 |
209 |
|
|
167 |
210 |
|
assertEquals( zController.updateDrillDownSetWhenEntriesVisibleChanges( 7, zSelectedBetweens ), // |
168 |
|
- |
new ViewSet( Top.create( z1st ), // |
169 |
|
- |
Reference.create( 2, z1st ), // |
170 |
|
- |
Between.create( false, z1st, z3rd ), // |
171 |
|
- |
Reference.create( 2, z3rd ), // |
172 |
|
- |
Between.create( false, z3rd, z5th ), // |
173 |
|
- |
Reference.create( 2, z5th ), // |
174 |
|
- |
Bottom.create( z5th ) ) // |
|
211 |
+ |
new ViewSet( mTop1st, // |
|
212 |
+ |
m1stReference, // |
|
213 |
+ |
Between.create( false, m1st, m3rd ), // |
|
214 |
+ |
m3rdReference, // |
|
215 |
+ |
Between.create( false, m3rd, m5th ), // |
|
216 |
+ |
m5thReference, // |
|
217 |
+ |
Bottom.create( m5th ) ) // |
175 |
218 |
|
); |
176 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
219 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
177 |
220 |
|
|
178 |
221 |
|
assertEquals( zController.updateDrillDownSetWhenEntriesVisibleChanges( 10, zSelectedBetweens ), // |
179 |
|
- |
new ViewSet( Top.create( z1st ), // |
180 |
|
- |
Reference.create( 2, z1st ), // |
181 |
|
- |
There.create( z1st, z2nd ), // |
182 |
|
- |
Reference.create( 2, z2nd ), // |
183 |
|
- |
There.create( z2nd, z3rd ), // |
184 |
|
- |
Reference.create( 2, z3rd ), // |
185 |
|
- |
Between.create( false, z3rd, z5th ), // |
186 |
|
- |
Reference.create( 2, z5th ), // |
187 |
|
- |
Bottom.create( z5th ) ) // |
|
222 |
+ |
new ViewSet( mTop1st, // |
|
223 |
+ |
m1stReference, // |
|
224 |
+ |
m1stThere2nd, // |
|
225 |
+ |
m2ndReference, // |
|
226 |
+ |
m2ndThere3rd, // |
|
227 |
+ |
m3rdReference, // |
|
228 |
+ |
Between.create( false, m3rd, m5th ), // |
|
229 |
+ |
m5thReference, // |
|
230 |
+ |
Bottom.create( m5th ) ) // |
|
231 |
+ |
); |
|
232 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
|
233 |
+ |
} |
|
234 |
+ |
|
|
235 |
+ |
public void test_updateDrillDownSetWhenSelectedBetweensChange() |
|
236 |
+ |
throws Exception |
|
237 |
+ |
{ |
|
238 |
+ |
List<Between<TS>> zSelectedBetweens = new ArrayList<Between<TS>>(); |
|
239 |
+ |
|
|
240 |
+ |
InjectionPointSelectorController<TS> zController = new InjectionPointSelectorController<TS>( 2, null, m1st, m2nd, m3rd ); |
|
241 |
+ |
|
|
242 |
+ |
assertEquals( zController.updateDrillDownSetWhenSelectedBetweensChange( 5, zSelectedBetweens ), // |
|
243 |
+ |
new ViewSet( mTop1st, // |
|
244 |
+ |
m1stReference, // |
|
245 |
+ |
Between.create( false, m1st, m3rd ), // |
|
246 |
+ |
m3rdReference, // |
|
247 |
+ |
Bottom.create( m3rd ) ) // |
188 |
248 |
|
); |
189 |
|
- |
assertTrue( zSelectedBetweens.isEmpty() ); |
|
249 |
+ |
assertSelectedBetweens( zSelectedBetweens ); |
|
250 |
+ |
|
|
251 |
+ |
Between<TS> zBetweenSelected1st3rd = Between.create( true, m1st, m3rd ); |
|
252 |
+ |
zSelectedBetweens.add( zBetweenSelected1st3rd ); |
|
253 |
+ |
assertEquals( zController.updateDrillDownSetWhenSelectedBetweensChange( 5, zSelectedBetweens ), // |
|
254 |
+ |
new ViewSet( mTop1st, // |
|
255 |
+ |
m1stReference, // |
|
256 |
+ |
zBetweenSelected1st3rd, // |
|
257 |
+ |
m3rdReference, // |
|
258 |
+ |
Bottom.create( m3rd ) ) // |
|
259 |
+ |
); |
|
260 |
+ |
assertSelectedBetweens( zSelectedBetweens, zBetweenSelected1st3rd ); |
|
261 |
+ |
|
|
262 |
+ |
// zController = new InjectionPointSelectorController<TS>( 2, null, m1st, m2nd, m3rd, m4th ); |
|
263 |
+ |
// |
|
264 |
+ |
// assertEquals( zController.updateDrillDownSetWhenSelectedBetweensChange( 5, zSelectedBetweens ), // |
|
265 |
+ |
// new ViewSet( mTop1st, // |
|
266 |
+ |
// m1stReference, // |
|
267 |
+ |
// Between.create( false, m1st, m4th ), // |
|
268 |
+ |
// m4thReference, // |
|
269 |
+ |
// Bottom.create( m4th ) ) // |
|
270 |
+ |
// ); |
|
271 |
+ |
// assertSelectedBetweens( zSelectedBetweens ); |
|
272 |
+ |
// |
|
273 |
+ |
// assertEquals( zController.updateDrillDownSetWhenSelectedBetweensChange( 7, zSelectedBetweens ), // |
|
274 |
+ |
// new ViewSet( mTop1st, // |
|
275 |
+ |
// m1stReference, // |
|
276 |
+ |
// m1stThere2nd, // |
|
277 |
+ |
// m2ndReference, // |
|
278 |
+ |
// Between.create( false, m2nd, m4th ), // |
|
279 |
+ |
// m4thReference, // |
|
280 |
+ |
// Bottom.create( m4th ) ) // |
|
281 |
+ |
// ); |
|
282 |
+ |
// assertSelectedBetweens( zSelectedBetweens ); |
|
283 |
+ |
// |
|
284 |
+ |
// zController = new InjectionPointSelectorController<TS>( 2, null, m1st, m2nd, m3rd, m4th, m5th ); |
|
285 |
+ |
// assertEquals( zController.updateDrillDownSetWhenSelectedBetweensChange( 5, zSelectedBetweens ), // |
|
286 |
+ |
// new ViewSet( mTop1st, // |
|
287 |
+ |
// m1stReference, // |
|
288 |
+ |
// Between.create( false, m1st, m5th ), // |
|
289 |
+ |
// m5thReference, // |
|
290 |
+ |
// Bottom.create( m5th ) ) // |
|
291 |
+ |
// ); |
|
292 |
+ |
// assertSelectedBetweens( zSelectedBetweens ); |
190 |
293 |
|
} |
191 |
294 |
|
} |