@@ -160,6 +160,42 @@ public void ParseModelMultipleItemsTest()
160160 Assert . AreEqual ( ( ( dynamic ) data ) . banner . url , actualModel . Model . bannerUrl ) ;
161161 }
162162
163+ [ Test ]
164+ public void ParseModelMultipleDuplicateItemsTest ( )
165+ {
166+ ICollection < KeyValuePair < string , object > > data = new ExpandoObject ( ) ;
167+ data . Add ( new KeyValuePair < string , object > ( "goods" , new List < string >
168+ {
169+ "apple" ,
170+ "peach" ,
171+ "mango"
172+ } ) ) ;
173+ data . Add ( new KeyValuePair < string , object > ( "banner" , new
174+ {
175+ url = "http://mydomain.com/banner.png"
176+ } ) ) ;
177+ data . Add ( new KeyValuePair < string , object > ( "other" , new { } ) ) ;
178+
179+ var actualModel = new PageModel { ContentRaw = @"
180+ Model.goods1: Data.goods
181+ model.goods2: Data.goods
182+ ---
183+ " } ;
184+
185+ actualModel . Parse ( ) ;
186+ actualModel . MapDataToModel ( ( ExpandoObject ) data ) ;
187+
188+ Assert . AreEqual ( ( ( dynamic ) data ) . goods . Count , actualModel . Model . goods1 . Count ) ;
189+ Assert . AreEqual ( ( ( dynamic ) data ) . goods [ 0 ] , actualModel . Model . goods1 [ 0 ] ) ;
190+ Assert . AreEqual ( ( ( dynamic ) data ) . goods [ 1 ] , actualModel . Model . goods1 [ 1 ] ) ;
191+ Assert . AreEqual ( ( ( dynamic ) data ) . goods [ 2 ] , actualModel . Model . goods1 [ 2 ] ) ;
192+
193+ Assert . AreEqual ( ( ( dynamic ) data ) . goods . Count , actualModel . Model . goods2 . Count ) ;
194+ Assert . AreEqual ( ( ( dynamic ) data ) . goods [ 0 ] , actualModel . Model . goods2 [ 0 ] ) ;
195+ Assert . AreEqual ( ( ( dynamic ) data ) . goods [ 1 ] , actualModel . Model . goods2 [ 1 ] ) ;
196+ Assert . AreEqual ( ( ( dynamic ) data ) . goods [ 2 ] , actualModel . Model . goods2 [ 2 ] ) ;
197+ }
198+
163199 [ Test ]
164200 public void ParseModelComplexMultipleItemsTest ( )
165201 {
0 commit comments