Skip to content

Commit 382ee1c

Browse files
committed
added unit tests for Model feature
1 parent 273e393 commit 382ee1c

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

src/Test/SolidifyProject.Engine.Test.Unit/Infrastructure/Models/PageModelTest.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)