public void Builder() { NestedCollections n; NestedCollectionsBuilder b = new NestedCollectionsBuilder(); b.mixed = new List <Dictionary <string, List <SimpleRecord> > >() { new Dictionary <string, List <SimpleRecord> >() { { "one", new List <SimpleRecord>() { new SimpleRecord(new Dictionary <string, object>() { { "stringField", "0, one, 0" } }), new SimpleRecord(new Dictionary <string, object>() { { "stringField", "0, one, 1" } }) } }, { "extra", new List <SimpleRecord>() { new SimpleRecord(new Dictionary <string, object>() { { "stringField", "0, extra, 0" } }) } } } }; n = b.Build(); Assert.IsFalse(n.hasCollectionWithDefault); Assert.IsFalse(n.hasNestedArray); Assert.IsFalse(n.hasNestedMap); Assert.IsTrue(n.hasMixed); Assert.AreEqual("0, one, 0", n.mixed[0]["one"][0].stringField); Assert.AreEqual("0, one, 1", n.mixed[0]["one"][1].stringField); Assert.AreEqual("0, extra, 0", n.mixed[0]["extra"][0].stringField); }
public void FullCycle() { NestedCollections n; NestedCollectionsBuilder b = new NestedCollectionsBuilder(); b.mixed = new List <Dictionary <string, List <SimpleRecord> > >() { new Dictionary <string, List <SimpleRecord> >() { { "one", new List <SimpleRecord>() { new SimpleRecord(new Dictionary <string, object>() { { "stringField", "0, one, 0" } }), new SimpleRecord(new Dictionary <string, object>() { { "stringField", "0, one, 1" } }) } }, { "extra", new List <SimpleRecord>() { new SimpleRecord(new Dictionary <string, object>() { { "stringField", "0, extra, 0" } }) } } } }; b.nestedMap = new Dictionary <string, Dictionary <string, SimpleRecordProjection> >() { { "one", new Dictionary <string, SimpleRecordProjection>() { { "two", new SimpleRecordProjection(new Dictionary <string, object>() { { "stringField", "one, two" } }) }, { "extra", new SimpleRecordProjection(new Dictionary <string, object>() { { "stringField", "one, extra" } }) } } } }; n = b.Build(); NestedCollections reclaimed = new NestedCollections(n.Data()); Assert.AreNotSame(n, reclaimed); Assert.IsFalse(n.hasCollectionWithDefault || reclaimed.hasCollectionWithDefault); Assert.IsFalse(n.hasNestedArray || reclaimed.hasNestedArray); Assert.IsTrue(n.hasNestedMap && reclaimed.hasNestedMap); Assert.IsTrue(n.hasMixed && reclaimed.hasMixed); Assert.AreEqual(n.nestedMap["one"]["two"].stringField, reclaimed.nestedMap["one"]["two"].stringField); Assert.AreEqual(n.nestedMap["one"]["extra"].stringField, reclaimed.nestedMap["one"]["extra"].stringField); Assert.AreEqual(n.mixed[0]["one"][0].stringField, reclaimed.mixed[0]["one"][0].stringField); Assert.AreEqual(n.mixed[0]["one"][1].stringField, reclaimed.mixed[0]["one"][1].stringField); Assert.AreEqual(n.mixed[0]["extra"][0].stringField, reclaimed.mixed[0]["extra"][0].stringField); }