@@ -83,24 +83,39 @@ public void instanceProvider_supportsPartialElements() throws IOException, XForm
8383 assertThat (fakeInstance .getRoot ().getNumChildren (), equalTo (2 ));
8484
8585 TreeElement firstItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 0 );
86- assertThat (firstItem .isPartial (), equalTo (true ));
86+ assertThat (firstItem .isPartial (), equalTo (false ));
8787 assertThat (firstItem .getNumChildren (), equalTo (2 ));
8888 assertThat (firstItem .getChildAt (0 ).getName (), equalTo ("value" ));
89- assertThat (firstItem .getChildAt (0 ).getValue (), equalTo (null ));
89+ assertThat (firstItem .getChildAt (0 ).getValue (), equalTo (new StringData ( "0" ) ));
9090 assertThat (firstItem .getChildAt (1 ).getName (), equalTo ("label" ));
91- assertThat (firstItem .getChildAt (1 ).getValue (), equalTo (null ));
91+ assertThat (firstItem .getChildAt (1 ).getValue (), equalTo (new StringData ("Item 0" )));
92+
93+ TreeElement secondItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 1 );
94+ assertThat (secondItem .isPartial (), equalTo (true ));
95+ assertThat (secondItem .getNumChildren (), equalTo (0 ));
9296
9397 List <SelectChoice > selectChoices = scenario .choicesOf ("/data/question" );
9498 assertThat (selectChoices .size (), equalTo (2 ));
95-
99+ assertThat ( selectChoices . get ( 0 ). getLabelInnerText (), equalTo ( "Item 0" ));
96100 assertThat (selectChoices .get (0 ).getValue (), equalTo ("0" ));
101+ assertThat (selectChoices .get (1 ).getLabelInnerText (), equalTo ("Item 1" ));
102+ assertThat (selectChoices .get (1 ).getValue (), equalTo ("1" ));
103+
97104 firstItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 0 );
98105 assertThat (firstItem .isPartial (), equalTo (false ));
99106 assertThat (firstItem .getNumChildren (), equalTo (2 ));
100107 assertThat (firstItem .getChildAt (0 ).getName (), equalTo ("value" ));
101108 assertThat (firstItem .getChildAt (0 ).getValue (), equalTo (new StringData ("0" )));
102109 assertThat (firstItem .getChildAt (1 ).getName (), equalTo ("label" ));
103110 assertThat (firstItem .getChildAt (1 ).getValue (), equalTo (new StringData ("Item 0" )));
111+
112+ secondItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 1 );
113+ assertThat (secondItem .isPartial (), equalTo (false ));
114+ assertThat (secondItem .getNumChildren (), equalTo (2 ));
115+ assertThat (secondItem .getChildAt (0 ).getName (), equalTo ("value" ));
116+ assertThat (secondItem .getChildAt (0 ).getValue (), equalTo (new StringData ("1" )));
117+ assertThat (secondItem .getChildAt (1 ).getName (), equalTo ("label" ));
118+ assertThat (secondItem .getChildAt (1 ).getValue (), equalTo (new StringData ("Item 1" )));
104119 }
105120
106121 @ Test
@@ -137,24 +152,39 @@ public void fileInstanceParser_supportsPartialElements() throws IOException, XFo
137152 assertThat (fakeInstance .getRoot ().getNumChildren (), equalTo (2 ));
138153
139154 TreeElement firstItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 0 );
140- assertThat (firstItem .isPartial (), equalTo (true ));
155+ assertThat (firstItem .isPartial (), equalTo (false ));
141156 assertThat (firstItem .getNumChildren (), equalTo (2 ));
142157 assertThat (firstItem .getChildAt (0 ).getName (), equalTo ("value" ));
143- assertThat (firstItem .getChildAt (0 ).getValue (), equalTo (null ));
158+ assertThat (firstItem .getChildAt (0 ).getValue (), equalTo (new StringData ( "0" ) ));
144159 assertThat (firstItem .getChildAt (1 ).getName (), equalTo ("label" ));
145- assertThat (firstItem .getChildAt (1 ).getValue (), equalTo (null ));
160+ assertThat (firstItem .getChildAt (1 ).getValue (), equalTo (new StringData ("Item 0" )));
161+
162+ TreeElement secondItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 1 );
163+ assertThat (secondItem .isPartial (), equalTo (true ));
164+ assertThat (secondItem .getNumChildren (), equalTo (0 ));
146165
147166 List <SelectChoice > selectChoices = scenario .choicesOf ("/data/question" );
148167 assertThat (selectChoices .size (), equalTo (2 ));
149-
168+ assertThat ( selectChoices . get ( 0 ). getLabelInnerText (), equalTo ( "Item 0" ));
150169 assertThat (selectChoices .get (0 ).getValue (), equalTo ("0" ));
170+ assertThat (selectChoices .get (1 ).getLabelInnerText (), equalTo ("Item 1" ));
171+ assertThat (selectChoices .get (1 ).getValue (), equalTo ("1" ));
172+
151173 firstItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 0 );
152174 assertThat (firstItem .isPartial (), equalTo (false ));
153175 assertThat (firstItem .getNumChildren (), equalTo (2 ));
154176 assertThat (firstItem .getChildAt (0 ).getName (), equalTo ("value" ));
155177 assertThat (firstItem .getChildAt (0 ).getValue (), equalTo (new StringData ("0" )));
156178 assertThat (firstItem .getChildAt (1 ).getName (), equalTo ("label" ));
157179 assertThat (firstItem .getChildAt (1 ).getValue (), equalTo (new StringData ("Item 0" )));
180+
181+ secondItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 1 );
182+ assertThat (secondItem .isPartial (), equalTo (false ));
183+ assertThat (secondItem .getNumChildren (), equalTo (2 ));
184+ assertThat (secondItem .getChildAt (0 ).getName (), equalTo ("value" ));
185+ assertThat (secondItem .getChildAt (0 ).getValue (), equalTo (new StringData ("1" )));
186+ assertThat (secondItem .getChildAt (1 ).getName (), equalTo ("label" ));
187+ assertThat (secondItem .getChildAt (1 ).getValue (), equalTo (new StringData ("Item 1" )));
158188 }
159189
160190 @ Test
@@ -189,29 +219,26 @@ public void supportsReplacingPartialElements() throws IOException, XFormParser.P
189219 HashMap <String , DataInstance > instances = scenario .getFormDef ().getFormInstances ();
190220 DataInstance fakeInstance = instances .get ("fake-instance" );
191221
192- TreeElement item = new TreeElement ("item" , 0 );
222+ TreeElement secondItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 1 );
223+ assertThat (secondItem .isPartial (), equalTo (true ));
224+ assertThat (secondItem .getNumChildren (), equalTo (0 ));
225+
226+ TreeElement item = new TreeElement ("item" , 1 );
193227 TreeElement value = new TreeElement ("value" );
194228 TreeElement label = new TreeElement ("label" );
195- value .setValue (new StringData ("0 " ));
196- label .setValue (new StringData ("Item 0 " ));
229+ value .setValue (new StringData ("1 " ));
230+ label .setValue (new StringData ("Item 1 " ));
197231 item .addChild (value );
198232 item .addChild (label );
199233 fakeInstance .replacePartialElements (asList (item ));
200234
201- TreeElement firstItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 0 );
202- assertThat (firstItem .isPartial (), equalTo (false ));
203- assertThat (firstItem .getNumChildren (), equalTo (2 ));
204- assertThat (firstItem .getChildAt (0 ).getName (), equalTo ("value" ));
205- assertThat (firstItem .getChildAt (0 ).getValue (), equalTo (new StringData ("0" )));
206- assertThat (firstItem .getChildAt (1 ).getName (), equalTo ("label" ));
207- assertThat (firstItem .getChildAt (1 ).getValue (), equalTo (new StringData ("Item 0" )));
208- TreeElement secondItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 1 );
209- assertThat (secondItem .isPartial (), equalTo (true ));
235+ secondItem = (TreeElement ) fakeInstance .getRoot ().getChild ("item" , 1 );
236+ assertThat (secondItem .isPartial (), equalTo (false ));
210237 assertThat (secondItem .getNumChildren (), equalTo (2 ));
211238 assertThat (secondItem .getChildAt (0 ).getName (), equalTo ("value" ));
212- assertThat (secondItem .getChildAt (0 ).getValue (), equalTo (null ));
239+ assertThat (secondItem .getChildAt (0 ).getValue (), equalTo (new StringData ( "1" ) ));
213240 assertThat (secondItem .getChildAt (1 ).getName (), equalTo ("label" ));
214- assertThat (secondItem .getChildAt (1 ).getValue (), equalTo (null ));
241+ assertThat (secondItem .getChildAt (1 ).getValue (), equalTo (new StringData ( "Item 1" ) ));
215242 }
216243
217244 @ Test
@@ -327,21 +354,23 @@ public boolean isSupported(@NotNull String instanceId, @NotNull String instanceS
327354 }
328355
329356 private @ NotNull TreeElement createRoot (boolean partial ) {
330- boolean isPartial = partialParse && partial ;
331357 TreeElement root = new TreeElement ("root" , 0 );
332358
333359 for (int i = 0 ; i < items .size (); i ++) {
334- TreeElement value = new TreeElement ("value" );
335- TreeElement label = new TreeElement ("label" );
360+ boolean isPartial = partialParse && partial && i != 0 ;
361+
362+ TreeElement item = new TreeElement ("item" , i , isPartial );
336363
337364 if (!isPartial ) {
365+ TreeElement value = new TreeElement ("value" );
366+ TreeElement label = new TreeElement ("label" );
367+
338368 value .setValue (new StringData (items .get (i ).getFirst ()));
339369 label .setValue (new StringData (items .get (i ).getSecond ()));
340- }
341370
342- TreeElement item = new TreeElement ( " item" , i , isPartial );
343- item .addChild (value );
344- item . addChild ( label );
371+ item . addChild ( value );
372+ item .addChild (label );
373+ }
345374
346375 root .addChild (item );
347376 }
0 commit comments