private void VerifyEquals(SuperEntityRefRootEntity rootEntity, SuperEntityRefRootEntity loadedRootEntity) { Assert.AreEqual(loadedRootEntity.IdCol, rootEntity.IdCol); Assert.AreEqual(loadedRootEntity.Name, rootEntity.Name); foreach (SuperEntityRefOne2ManyEntity one2ManyEntity in rootEntity.One2ManyEntities) { bool foundItem = false; foreach (SuperEntityRefOne2ManyEntity loadedOne2ManyEntity in loadedRootEntity.One2ManyEntities) { if (one2ManyEntity.IndexNo == loadedOne2ManyEntity.IndexNo) { foundItem = true; Assert.AreEqual(one2ManyEntity.GetType(), loadedOne2ManyEntity.GetType()); Assert.AreEqual(one2ManyEntity.Name, loadedOne2ManyEntity.Name); if (one2ManyEntity.GetType() == typeof(SuperEntityRefOne2ManyEntityA)) { SuperEntityRefOne2ManyEntityA one2ManyEntityA = (SuperEntityRefOne2ManyEntityA)one2ManyEntity; SuperEntityRefOne2ManyEntityA loadedOne2ManyEntityA = (SuperEntityRefOne2ManyEntityA)loadedOne2ManyEntity; Assert.AreEqual(one2ManyEntityA.NameA, loadedOne2ManyEntityA.NameA); } else if (one2ManyEntity.GetType() == typeof(SuperEntityRefOne2ManyEntityB)) { SuperEntityRefOne2ManyEntityB one2ManyEntityA = (SuperEntityRefOne2ManyEntityB)one2ManyEntity; SuperEntityRefOne2ManyEntityB loadedOne2ManyEntityA = (SuperEntityRefOne2ManyEntityB)loadedOne2ManyEntity; Assert.AreEqual(one2ManyEntityA.NameB, loadedOne2ManyEntityA.NameB); } } } Assert.IsTrue(foundItem, "Item rootEntity not found"); } SuperEntityRefOne2OneEntity one2OneEntity = rootEntity.One2OneEntity; SuperEntityRefOne2OneEntity loadedOne2OneEntity = loadedRootEntity.One2OneEntity; if (one2OneEntity == null || loadedOne2OneEntity == null) { Assert.IsTrue(one2OneEntity == loadedOne2OneEntity, "One entity is null while other is not"); } else { Assert.AreEqual(one2OneEntity.GetType(), loadedOne2OneEntity.GetType()); Assert.AreEqual(one2OneEntity.Name, loadedOne2OneEntity.Name); loadedOne2OneEntity = loadedRootEntity.One2OneEntity; //in case of lazy loading if (one2OneEntity.GetType() == typeof(SuperEntityRefOne2OneEntityA)) { SuperEntityRefOne2OneEntityA one2OneEntityA = (SuperEntityRefOne2OneEntityA)one2OneEntity; SuperEntityRefOne2OneEntityA loadedOne2OneEntityA = (SuperEntityRefOne2OneEntityA)loadedOne2OneEntity; Assert.AreEqual(one2OneEntityA.NameA, loadedOne2OneEntityA.NameA); } else if (one2OneEntity.GetType() == typeof(SuperEntityRefOne2OneEntityB)) { SuperEntityRefOne2OneEntityB one2OneEntityB = (SuperEntityRefOne2OneEntityB)one2OneEntity; SuperEntityRefOne2OneEntityB loadedOne2OneEntityB = (SuperEntityRefOne2OneEntityB)loadedOne2OneEntity; Assert.AreEqual(one2OneEntityB.NameB, loadedOne2OneEntityB.NameB); } } }
private SuperEntityRefOne2OneEntity CreateOne2One(bool typeA, String entityText) { SuperEntityRefOne2OneEntity entity = typeA ? new SuperEntityRefOne2OneEntityA() : (SuperEntityRefOne2OneEntity) new SuperEntityRefOne2OneEntityB(); entity.Name = "OO-S-(" + entityText + ")"; if (entity.GetType() == typeof(SuperEntityRefOne2OneEntityA)) { ((SuperEntityRefOne2OneEntityA)entity).NameA = "OO-A-(" + entityText + ")"; } else if (entity.GetType() == typeof(SuperEntityRefOne2OneEntityB)) { ((SuperEntityRefOne2OneEntityB)entity).NameB = "OO-B-(" + entityText + ")"; } return(entity); }