Bug 6244: Add context to exceptions thrown by yang statement parser
[yangtools.git] / yang / yang-parser-impl / src / test / java / org / opendaylight / yangtools / yang / stmt / CaseStmtTest.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.yangtools.yang.stmt;
10
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertNotNull;
13 import static org.junit.Assert.assertTrue;
14
15 import java.io.FileNotFoundException;
16 import java.net.URI;
17 import java.net.URISyntaxException;
18 import java.text.ParseException;
19 import java.text.SimpleDateFormat;
20 import java.util.Date;
21 import org.junit.Before;
22 import org.junit.Rule;
23 import org.junit.Test;
24 import org.junit.rules.ExpectedException;
25 import org.opendaylight.yangtools.yang.common.QName;
26 import org.opendaylight.yangtools.yang.common.QNameModule;
27 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
28 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
29 import org.opendaylight.yangtools.yang.model.api.Module;
30 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
31 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
32 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ChoiceEffectiveStatementImpl;
33 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ContainerEffectiveStatementImpl;
34
35 public class CaseStmtTest {
36     private SchemaContext schema;
37     private Module rootFoo, rootBar;
38     private QNameModule qnameFoo, qnameBar;
39     private DataSchemaNode tempChild, tempSecondChild, tempThirdChild;
40     private ChoiceCaseNode tempChoice;
41
42     @Rule
43     public ExpectedException expectedEx = ExpectedException.none();
44
45     @Before
46     public void setup() throws ReactorException, FileNotFoundException, URISyntaxException, ParseException {
47         schema = StmtTestUtils.parseYangSources("/case-test");
48         String date_s = "2015-09-09 00:00:00.0";
49         SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
50         Date date = dt.parse(date_s);
51         rootFoo = schema.findModuleByName("foo", date);
52         rootBar = schema.findModuleByName("bar", date);
53         assertNotNull(rootFoo);
54         assertNotNull(rootBar);
55         qnameFoo = QNameModule.create(URI.create("foo"), date);
56         qnameBar = QNameModule.create(URI.create("bar"), date);
57         assertNotNull(qnameFoo);
58         assertNotNull(qnameBar);
59     }
60
61     @Test
62     public void caseTest() {
63         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-fff"));
64         assertNotNull(tempChild);
65         assertFalse(tempChild.isConfiguration());
66         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
67         assertNotNull(tempSecondChild);
68         assertFalse(tempSecondChild.isConfiguration());
69         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
70         assertNotNull(tempChoice);
71         assertFalse(tempChoice.isConfiguration());
72         tempThirdChild = tempChoice.getChildNodes().iterator().next();
73         assertNotNull(tempThirdChild);
74         assertFalse(tempThirdChild.isConfiguration());
75
76         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-ffn"));
77         assertNotNull(tempChild);
78         assertFalse(tempChild.isConfiguration());
79         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
80         assertNotNull(tempSecondChild);
81         assertFalse(tempSecondChild.isConfiguration());
82         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
83         assertNotNull(tempChoice);
84         assertFalse(tempChoice.isConfiguration());
85         tempThirdChild = tempChoice.getChildNodes().iterator().next();
86         assertNotNull(tempThirdChild);
87         assertFalse(tempThirdChild.isConfiguration());
88
89         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-fnf"));
90         assertNotNull(tempChild);
91         assertFalse(tempChild.isConfiguration());
92         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
93         assertNotNull(tempSecondChild);
94         assertFalse(tempSecondChild.isConfiguration());
95         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
96         assertNotNull(tempChoice);
97         assertFalse(tempChoice.isConfiguration());
98         tempThirdChild = tempChoice.getChildNodes().iterator().next();
99         assertNotNull(tempThirdChild);
100         assertFalse(tempThirdChild.isConfiguration());
101
102         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-nff"));
103         assertNotNull(tempChild);
104         assertTrue(tempChild.isConfiguration());
105         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
106         assertNotNull(tempSecondChild);
107         assertFalse(tempSecondChild.isConfiguration());
108         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
109         assertNotNull(tempChoice);
110         assertFalse(tempChoice.isConfiguration());
111         tempThirdChild = tempChoice.getChildNodes().iterator().next();
112         assertNotNull(tempThirdChild);
113         assertFalse(tempThirdChild.isConfiguration());
114
115         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-nnf"));
116         assertNotNull(tempChild);
117         assertTrue(tempChild.isConfiguration());
118         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
119         assertNotNull(tempSecondChild);
120         assertTrue(tempSecondChild.isConfiguration());
121         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
122         assertNotNull(tempChoice);
123         assertFalse(tempChoice.isConfiguration());
124         tempThirdChild = tempChoice.getChildNodes().iterator().next();
125         assertNotNull(tempThirdChild);
126         assertFalse(tempThirdChild.isConfiguration());
127
128         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-nfn"));
129         assertNotNull(tempChild);
130         assertTrue(tempChild.isConfiguration());
131         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
132         assertNotNull(tempSecondChild);
133         assertFalse(tempSecondChild.isConfiguration());
134         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
135         assertNotNull(tempChoice);
136         assertFalse(tempChoice.isConfiguration());
137         tempThirdChild = tempChoice.getChildNodes().iterator().next();
138         assertNotNull(tempThirdChild);
139         assertFalse(tempThirdChild.isConfiguration());
140
141         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-fnn"));
142         assertNotNull(tempChild);
143         assertFalse(tempChild.isConfiguration());
144         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
145         assertNotNull(tempSecondChild);
146         assertFalse(tempSecondChild.isConfiguration());
147         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
148         assertNotNull(tempChoice);
149         assertFalse(tempChoice.isConfiguration());
150         tempThirdChild = tempChoice.getChildNodes().iterator().next();
151         assertNotNull(tempThirdChild);
152         assertFalse(tempThirdChild.isConfiguration());
153
154         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-ttt"));
155         assertNotNull(tempChild);
156         assertTrue(tempChild.isConfiguration());
157         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
158         assertNotNull(tempSecondChild);
159         assertTrue(tempSecondChild.isConfiguration());
160         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
161         assertNotNull(tempChoice);
162         assertTrue(tempChoice.isConfiguration());
163         tempThirdChild = tempChoice.getChildNodes().iterator().next();
164         assertNotNull(tempThirdChild);
165         assertTrue(tempThirdChild.isConfiguration());
166
167         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-ttn"));
168         assertNotNull(tempChild);
169         assertTrue(tempChild.isConfiguration());
170         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
171         assertNotNull(tempSecondChild);
172         assertTrue(tempSecondChild.isConfiguration());
173         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
174         assertNotNull(tempChoice);
175         assertTrue(tempChoice.isConfiguration());
176         tempThirdChild = tempChoice.getChildNodes().iterator().next();
177         assertNotNull(tempThirdChild);
178         assertTrue(tempThirdChild.isConfiguration());
179
180         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-tnt"));
181         assertNotNull(tempChild);
182         assertTrue(tempChild.isConfiguration());
183         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
184         assertNotNull(tempSecondChild);
185         assertTrue(tempSecondChild.isConfiguration());
186         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
187         assertNotNull(tempChoice);
188         assertTrue(tempChoice.isConfiguration());
189         tempThirdChild = tempChoice.getChildNodes().iterator().next();
190         assertNotNull(tempThirdChild);
191         assertTrue(tempThirdChild.isConfiguration());
192
193         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-ntt"));
194         assertNotNull(tempChild);
195         assertTrue(tempChild.isConfiguration());
196         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
197         assertNotNull(tempSecondChild);
198         assertTrue(tempSecondChild.isConfiguration());
199         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
200         assertNotNull(tempChoice);
201         assertTrue(tempChoice.isConfiguration());
202         tempThirdChild = tempChoice.getChildNodes().iterator().next();
203         assertNotNull(tempThirdChild);
204         assertTrue(tempThirdChild.isConfiguration());
205
206         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-nnt"));
207         assertNotNull(tempChild);
208         assertTrue(tempChild.isConfiguration());
209         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
210         assertNotNull(tempSecondChild);
211         assertTrue(tempSecondChild.isConfiguration());
212         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
213         assertNotNull(tempChoice);
214         assertTrue(tempChoice.isConfiguration());
215         tempThirdChild = tempChoice.getChildNodes().iterator().next();
216         assertNotNull(tempThirdChild);
217         assertTrue(tempThirdChild.isConfiguration());
218
219         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-ntn"));
220         assertNotNull(tempChild);
221         assertTrue(tempChild.isConfiguration());
222         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
223         assertNotNull(tempSecondChild);
224         assertTrue(tempSecondChild.isConfiguration());
225         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
226         assertNotNull(tempChoice);
227         assertTrue(tempChoice.isConfiguration());
228         tempThirdChild = tempChoice.getChildNodes().iterator().next();
229         assertNotNull(tempThirdChild);
230         assertTrue(tempThirdChild.isConfiguration());
231
232         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-tnn"));
233         assertNotNull(tempChild);
234         assertTrue(tempChild.isConfiguration());
235         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
236         assertNotNull(tempSecondChild);
237         assertTrue(tempSecondChild.isConfiguration());
238         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
239         assertNotNull(tempChoice);
240         assertTrue(tempChoice.isConfiguration());
241         tempThirdChild = tempChoice.getChildNodes().iterator().next();
242         assertNotNull(tempThirdChild);
243         assertTrue(tempThirdChild.isConfiguration());
244
245         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-tff"));
246         assertNotNull(tempChild);
247         assertTrue(tempChild.isConfiguration());
248         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
249         assertNotNull(tempSecondChild);
250         assertFalse(tempSecondChild.isConfiguration());
251         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
252         assertNotNull(tempChoice);
253         assertFalse(tempChoice.isConfiguration());
254         tempThirdChild = tempChoice.getChildNodes().iterator().next();
255         assertNotNull(tempThirdChild);
256         assertFalse(tempThirdChild.isConfiguration());
257
258         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-tnf"));
259         assertNotNull(tempChild);
260         assertTrue(tempChild.isConfiguration());
261         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
262         assertNotNull(tempSecondChild);
263         assertTrue(tempSecondChild.isConfiguration());
264         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
265         assertNotNull(tempChoice);
266         assertFalse(tempChoice.isConfiguration());
267         tempThirdChild = tempChoice.getChildNodes().iterator().next();
268         assertNotNull(tempThirdChild);
269         assertFalse(tempThirdChild.isConfiguration());
270
271         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-tfn"));
272         assertNotNull(tempChild);
273         assertTrue(tempChild.isConfiguration());
274         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
275         assertNotNull(tempSecondChild);
276         assertFalse(tempSecondChild.isConfiguration());
277         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
278         assertNotNull(tempChoice);
279         assertFalse(tempChoice.isConfiguration());
280         tempThirdChild = tempChoice.getChildNodes().iterator().next();
281         assertNotNull(tempThirdChild);
282         assertFalse(tempThirdChild.isConfiguration());
283
284         tempChild = rootFoo.getDataChildByName(QName.create(qnameFoo, "root-ntf"));
285         assertNotNull(tempChild);
286         assertTrue(tempChild.isConfiguration());
287         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
288         assertNotNull(tempSecondChild);
289         assertTrue(tempSecondChild.isConfiguration());
290         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
291         assertNotNull(tempChoice);
292         assertFalse(tempChoice.isConfiguration());
293         tempThirdChild = tempChoice.getChildNodes().iterator().next();
294         assertNotNull(tempThirdChild);
295         assertFalse(tempThirdChild.isConfiguration());
296     }
297
298     @Test
299     public void shortCaseTest() {
300         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-fff"));
301         assertNotNull(tempChild);
302         assertFalse(tempChild.isConfiguration());
303         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
304         assertNotNull(tempSecondChild);
305         assertFalse(tempSecondChild.isConfiguration());
306         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
307         assertNotNull(tempChoice);
308         assertFalse(tempChoice.isConfiguration());
309         tempThirdChild = tempChoice.getChildNodes().iterator().next();
310         assertNotNull(tempThirdChild);
311         assertFalse(tempThirdChild.isConfiguration());
312
313         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-ffn"));
314         assertNotNull(tempChild);
315         assertFalse(tempChild.isConfiguration());
316         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
317         assertNotNull(tempSecondChild);
318         assertFalse(tempSecondChild.isConfiguration());
319         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
320         assertNotNull(tempChoice);
321         assertFalse(tempChoice.isConfiguration());
322         tempThirdChild = tempChoice.getChildNodes().iterator().next();
323         assertNotNull(tempThirdChild);
324         assertFalse(tempThirdChild.isConfiguration());
325
326         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-fnf"));
327         assertNotNull(tempChild);
328         assertFalse(tempChild.isConfiguration());
329         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
330         assertNotNull(tempSecondChild);
331         assertFalse(tempSecondChild.isConfiguration());
332         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
333         assertNotNull(tempChoice);
334         assertFalse(tempChoice.isConfiguration());
335         tempThirdChild = tempChoice.getChildNodes().iterator().next();
336         assertNotNull(tempThirdChild);
337         assertFalse(tempThirdChild.isConfiguration());
338
339         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-nff"));
340         assertNotNull(tempChild);
341         assertTrue(tempChild.isConfiguration());
342         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
343         assertNotNull(tempSecondChild);
344         assertFalse(tempSecondChild.isConfiguration());
345         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
346         assertNotNull(tempChoice);
347         assertFalse(tempChoice.isConfiguration());
348         tempThirdChild = tempChoice.getChildNodes().iterator().next();
349         assertNotNull(tempThirdChild);
350         assertFalse(tempThirdChild.isConfiguration());
351
352         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-nnf"));
353         assertNotNull(tempChild);
354         assertTrue(tempChild.isConfiguration());
355         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
356         assertNotNull(tempSecondChild);
357         assertTrue(tempSecondChild.isConfiguration());
358         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
359         assertNotNull(tempChoice);
360         assertFalse(tempChoice.isConfiguration());
361         tempThirdChild = tempChoice.getChildNodes().iterator().next();
362         assertNotNull(tempThirdChild);
363         assertFalse(tempThirdChild.isConfiguration());
364
365         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-nfn"));
366         assertNotNull(tempChild);
367         assertTrue(tempChild.isConfiguration());
368         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
369         assertNotNull(tempSecondChild);
370         assertFalse(tempSecondChild.isConfiguration());
371         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
372         assertNotNull(tempChoice);
373         assertFalse(tempChoice.isConfiguration());
374         tempThirdChild = tempChoice.getChildNodes().iterator().next();
375         assertNotNull(tempThirdChild);
376         assertFalse(tempThirdChild.isConfiguration());
377
378         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-fnn"));
379         assertNotNull(tempChild);
380         assertFalse(tempChild.isConfiguration());
381         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
382         assertNotNull(tempSecondChild);
383         assertFalse(tempSecondChild.isConfiguration());
384         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
385         assertNotNull(tempChoice);
386         assertFalse(tempChoice.isConfiguration());
387         tempThirdChild = tempChoice.getChildNodes().iterator().next();
388         assertNotNull(tempThirdChild);
389         assertFalse(tempThirdChild.isConfiguration());
390
391         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-ttt"));
392         assertNotNull(tempChild);
393         assertTrue(tempChild.isConfiguration());
394         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
395         assertNotNull(tempSecondChild);
396         assertTrue(tempSecondChild.isConfiguration());
397         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
398         assertNotNull(tempChoice);
399         assertTrue(tempChoice.isConfiguration());
400         tempThirdChild = tempChoice.getChildNodes().iterator().next();
401         assertNotNull(tempThirdChild);
402         assertTrue(tempThirdChild.isConfiguration());
403
404         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-ttn"));
405         assertNotNull(tempChild);
406         assertTrue(tempChild.isConfiguration());
407         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
408         assertNotNull(tempSecondChild);
409         assertTrue(tempSecondChild.isConfiguration());
410         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
411         assertNotNull(tempChoice);
412         assertTrue(tempChoice.isConfiguration());
413         tempThirdChild = tempChoice.getChildNodes().iterator().next();
414         assertNotNull(tempThirdChild);
415         assertTrue(tempThirdChild.isConfiguration());
416
417         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-tnt"));
418         assertNotNull(tempChild);
419         assertTrue(tempChild.isConfiguration());
420         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
421         assertNotNull(tempSecondChild);
422         assertTrue(tempSecondChild.isConfiguration());
423         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
424         assertNotNull(tempChoice);
425         assertTrue(tempChoice.isConfiguration());
426         tempThirdChild = tempChoice.getChildNodes().iterator().next();
427         assertNotNull(tempThirdChild);
428         assertTrue(tempThirdChild.isConfiguration());
429
430         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-ntt"));
431         assertNotNull(tempChild);
432         assertTrue(tempChild.isConfiguration());
433         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
434         assertNotNull(tempSecondChild);
435         assertTrue(tempSecondChild.isConfiguration());
436         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
437         assertNotNull(tempChoice);
438         assertTrue(tempChoice.isConfiguration());
439         tempThirdChild = tempChoice.getChildNodes().iterator().next();
440         assertNotNull(tempThirdChild);
441         assertTrue(tempThirdChild.isConfiguration());
442
443         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-nnt"));
444         assertNotNull(tempChild);
445         assertTrue(tempChild.isConfiguration());
446         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
447         assertNotNull(tempSecondChild);
448         assertTrue(tempSecondChild.isConfiguration());
449         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
450         assertNotNull(tempChoice);
451         assertTrue(tempChoice.isConfiguration());
452         tempThirdChild = tempChoice.getChildNodes().iterator().next();
453         assertNotNull(tempThirdChild);
454         assertTrue(tempThirdChild.isConfiguration());
455
456         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-ntn"));
457         assertNotNull(tempChild);
458         assertTrue(tempChild.isConfiguration());
459         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
460         assertNotNull(tempSecondChild);
461         assertTrue(tempSecondChild.isConfiguration());
462         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
463         assertNotNull(tempChoice);
464         assertTrue(tempChoice.isConfiguration());
465         tempThirdChild = tempChoice.getChildNodes().iterator().next();
466         assertNotNull(tempThirdChild);
467         assertTrue(tempThirdChild.isConfiguration());
468
469         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-tnn"));
470         assertNotNull(tempChild);
471         assertTrue(tempChild.isConfiguration());
472         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
473         assertNotNull(tempSecondChild);
474         assertTrue(tempSecondChild.isConfiguration());
475         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
476         assertNotNull(tempChoice);
477         assertTrue(tempChoice.isConfiguration());
478         tempThirdChild = tempChoice.getChildNodes().iterator().next();
479         assertNotNull(tempThirdChild);
480         assertTrue(tempThirdChild.isConfiguration());
481
482         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-tff"));
483         assertNotNull(tempChild);
484         assertTrue(tempChild.isConfiguration());
485         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
486         assertNotNull(tempSecondChild);
487         assertFalse(tempSecondChild.isConfiguration());
488         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
489         assertNotNull(tempChoice);
490         assertFalse(tempChoice.isConfiguration());
491         tempThirdChild = tempChoice.getChildNodes().iterator().next();
492         assertNotNull(tempThirdChild);
493         assertFalse(tempThirdChild.isConfiguration());
494
495         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-tnf"));
496         assertNotNull(tempChild);
497         assertTrue(tempChild.isConfiguration());
498         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
499         assertNotNull(tempSecondChild);
500         assertTrue(tempSecondChild.isConfiguration());
501         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
502         assertNotNull(tempChoice);
503         assertFalse(tempChoice.isConfiguration());
504         tempThirdChild = tempChoice.getChildNodes().iterator().next();
505         assertNotNull(tempThirdChild);
506         assertFalse(tempThirdChild.isConfiguration());
507
508         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-tfn"));
509         assertNotNull(tempChild);
510         assertTrue(tempChild.isConfiguration());
511         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
512         assertNotNull(tempSecondChild);
513         assertFalse(tempSecondChild.isConfiguration());
514         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
515         assertNotNull(tempChoice);
516         assertFalse(tempChoice.isConfiguration());
517         tempThirdChild = tempChoice.getChildNodes().iterator().next();
518         assertNotNull(tempThirdChild);
519         assertFalse(tempThirdChild.isConfiguration());
520
521         tempChild = rootBar.getDataChildByName(QName.create(qnameBar, "sh-root-ntf"));
522         assertNotNull(tempChild);
523         assertTrue(tempChild.isConfiguration());
524         tempSecondChild = ((ContainerEffectiveStatementImpl) tempChild).getChildNodes().iterator().next();
525         assertNotNull(tempSecondChild);
526         assertTrue(tempSecondChild.isConfiguration());
527         tempChoice = ((ChoiceEffectiveStatementImpl) tempSecondChild).getCases().iterator().next();
528         assertNotNull(tempChoice);
529         assertFalse(tempChoice.isConfiguration());
530         tempThirdChild = tempChoice.getChildNodes().iterator().next();
531         assertNotNull(tempThirdChild);
532         assertFalse(tempThirdChild.isConfiguration());
533     }
534
535     @Test
536     public void InferenceExceptionChoiceTest() throws ReactorException, FileNotFoundException, URISyntaxException {
537         expectedEx.expect(ReactorException.class);
538         schema = StmtTestUtils.parseYangSources("/case-test/case-test-exceptions/choice");
539     }
540
541     @Test
542     public void InferenceExceptionCaseTest() throws ReactorException, FileNotFoundException, URISyntaxException {
543         expectedEx.expect(ReactorException.class);
544         schema = StmtTestUtils.parseYangSources("/case-test/case-test-exceptions/case");
545     }
546 }