public void TypeConverterComplexEntityWithIgnore(EntityD data, string message) { var result = data.Convert <EntityE>(nameof(data.EntityA)); result.Id.Should().Be(data.Id, message); result.EntityA.Should().Be(null, message); }
public void TypeConverterComplexEntity(EntityD data, string message) { var result = data.Convert <EntityE>(); result.Id.Should().Be(data.Id, message); result.EntityA.GuidValue.Should().Be(data.EntityA.GuidValue, message); result.EntityA.GuidValueNullable.Should().Be(data.EntityA.GuidValueNullable, message); result.EntityA.IntValue.Should().Be(data.EntityA.IntValue, message); result.EntityA.IntValueNullable.Should().Be(data.EntityA.IntValueNullable, message); result.EntityA.StringValue.Should().Be(data.EntityA.StringValue, message); result.EntityA.BoolValue.Should().Be(data.EntityA.BoolValue, message); result.EntityA.BoolValueNullAble.Should().Be(data.EntityA.BoolValueNullAble, message); result.EntityA.EnumValue.Should().Be(data.EntityA.EnumValue, message); result.EntityA.EnumValueNullable.Should().Be(data.EntityA.EnumValueNullable, message); result.EntityA.DateTimeValue.Should().Be(data.EntityA.DateTimeValue, message); result.EntityA.DateTimeValueNullable.Should().Be(data.EntityA.DateTimeValueNullable, message); }
public EntityA(EntityD owner) { this.OwnerD = owner; this.Name = Guid.NewGuid().ToString(); }
public void PersistAndFind() { { var eb1 = new EntityB(); TestBase.TestSerialization(eb1); var eb2 = new EntityB(); eb2.A = new EntityA(eb2); TestBase.TestSerialization(eb2); using (var em = Emf.CreateEntityManager()) { em.Persist(eb1); Assert.IsFalse(string.IsNullOrEmpty(eb1.Id)); em.Persist(eb2); Assert.IsFalse(string.IsNullOrEmpty(eb2.Id)); } using (var em = Emf.CreateEntityManager()) { var _eb1 = em.Find <EntityB>(eb1.Id); Assert.AreEqual(eb1, _eb1); var _ea2 = em.Find <EntityA>(eb2.A.Id); Assert.AreEqual(eb2.A, _ea2); Assert.AreEqual(eb2, _ea2.OwnerB); Assert.AreSame(_ea2, _ea2.OwnerB.A); var _eb2 = em.Find <EntityB>(eb2.Id); Assert.AreEqual(eb2, _eb2); Assert.AreSame(_eb2, _eb2.A.OwnerB); } } { var ec1 = new EntityC(); TestBase.TestSerialization(ec1); var ec2 = new EntityC(); ec2.I.A = new EntityA(ec2); TestBase.TestSerialization(ec2); var ec3 = new EntityC { I = { A = new EntityA(ec1) } }; TestBase.TestSerialization(ec3); using (var em = Emf.CreateEntityManager()) { em.Persist(ec1); Assert.IsFalse(string.IsNullOrEmpty(ec1.Id)); em.Persist(ec2); Assert.IsFalse(string.IsNullOrEmpty(ec2.Id)); em.Persist(ec3); Assert.IsFalse(string.IsNullOrEmpty(ec3.Id)); } using (var em = Emf.CreateEntityManager()) { var _ec1 = em.Find <EntityC>(ec1.Id); Assert.AreEqual(ec1, _ec1); var _ea2 = em.Find <EntityA>(ec2.I.A.Id); Assert.AreEqual(ec2.I.A, _ea2); Assert.AreEqual(ec2, _ea2.OwnerC); Assert.AreSame(_ea2, _ea2.OwnerC.I.A); var _ec2 = em.Find <EntityC>(ec2.Id); Assert.AreEqual(ec2, _ec2); Assert.AreSame(_ec2, _ec2.I.A.OwnerC); var _ea3 = em.Find <EntityA>(ec3.I.A.Id); Assert.AreEqual(ec3.I.A, _ea3); Assert.AreEqual(ec1, _ea3.OwnerC); Assert.IsNull(_ea3.OwnerC.I.A); var _ec3 = em.Find <EntityC>(ec3.Id); Assert.AreEqual(ec3, _ec3); Assert.AreEqual(_ec1, _ec3.I.A.OwnerC); } } { var ed1 = new EntityD(); TestBase.TestSerialization(ed1); var ed2 = new EntityD(); ed2.I1.A = new EntityA(ed2); TestBase.TestSerialization(ed2); var ed3 = new EntityD { I2 = { A = new EntityA(ed1) } }; TestBase.TestSerialization(ed3); using (var em = Emf.CreateEntityManager()) { em.Persist(ed1); Assert.IsFalse(string.IsNullOrEmpty(ed1.Id)); em.Persist(ed2); Assert.IsFalse(string.IsNullOrEmpty(ed2.Id)); em.Persist(ed3); Assert.IsFalse(string.IsNullOrEmpty(ed3.Id)); } using (var em = Emf.CreateEntityManager()) { var _ed1 = em.Find <EntityD>(ed1.Id); Assert.AreEqual(ed1, _ed1); Assert.AreSame(_ed1.I1, _ed1.I2); var _ea2 = em.Find <EntityA>(ed2.I1.A.Id); Assert.AreEqual(ed2.I1.A, _ea2); Assert.AreEqual(ed2, _ea2.OwnerD); Assert.AreSame(_ea2.OwnerD.I2, _ea2.OwnerD.I2); Assert.AreSame(_ea2, _ea2.OwnerD.I1.A); var _ed2 = em.Find <EntityD>(ed2.Id); Assert.AreEqual(ed2, _ed2); Assert.AreSame(_ed2, _ed2.I1.A.OwnerD); Assert.AreSame(_ed2.I1, _ed2.I2); var _ea3 = em.Find <EntityA>(ed3.I1.A.Id); Assert.AreEqual(ed3.I1.A, _ea3); Assert.AreEqual(ed1, _ea3.OwnerD); Assert.IsNull(_ea3.OwnerD.I1.A); Assert.AreSame(_ea3.OwnerD.I1, _ea3.OwnerD.I2); var _ed3 = em.Find <EntityD>(ed3.Id); Assert.AreEqual(ed3, _ed3); Assert.AreEqual(_ed1, _ed3.I1.A.OwnerD); Assert.AreSame(_ed1.I1, _ed1.I2); } } }
public void PersistAndFind() { { var ec1 = new EntityC(); TestBase.TestSerialization(ec1); var ey = new EntityY(); var ec2 = new EntityC { X = new[] { new EntityX(), new EntityX() }, Y = new[] { ey, ey }, Y2 = ey }; TestBase.TestSerialization(ec2); using (var em = Emf.CreateEntityManager()) { em.Persist(ec1); Assert.IsFalse(string.IsNullOrEmpty(ec1.Id)); em.Persist(ec2); Assert.IsFalse(string.IsNullOrEmpty(ec2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ec1 = em.Find <EntityC>(ec1.Id); Assert.AreEqual(ec1, _ec1); var _ec2 = em.Find <EntityC>(ec2.Id); Assert.AreEqual(ec2, _ec2); Assert.AreSame(_ec2.Y[0], _ec2.Y[1]); Assert.AreSame(_ec2.Y2, _ec2.Y[0]); } } { var ed1 = new EntityD(); TestBase.TestSerialization(ed1); var ey = new EntityY(); var ed2 = new EntityD { X = new HashSet <EntityX>(new[] { new EntityX(), new EntityX() }), Y = new HashSet <EntityY>(new[] { ey, new EntityY() }), Y2 = ey }; TestBase.TestSerialization(ed2); using (var em = Emf.CreateEntityManager()) { em.Persist(ed1); Assert.IsFalse(string.IsNullOrEmpty(ed1.Id)); em.Persist(ed2); Assert.IsFalse(string.IsNullOrEmpty(ed2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ed1 = em.Find <EntityD>(ed1.Id); Assert.AreEqual(ed1, _ed1); var _ed2 = em.Find <EntityD>(ed2.Id); Assert.AreEqual(ed2, _ed2); Assert.IsNotNull(_ed2.Y.FirstOrDefault(item => object.ReferenceEquals(item, _ed2.Y2))); } } { var ee1 = new EntityE(); TestBase.TestSerialization(ee1); var ey = new EntityY(); var ee2 = new EntityE { X = new List <EntityX>(new[] { new EntityX(), new EntityX() }), Y = new List <EntityY>(new[] { ey, ey }), Y2 = ey }; TestBase.TestSerialization(ee2); using (var em = Emf.CreateEntityManager()) { em.Persist(ee1); Assert.IsFalse(string.IsNullOrEmpty(ee1.Id)); em.Persist(ee2); Assert.IsFalse(string.IsNullOrEmpty(ee2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ee1 = em.Find <EntityE>(ee1.Id); Assert.AreEqual(ee1, _ee1); var _ee2 = em.Find <EntityE>(ee2.Id); Assert.AreEqual(ee2, _ee2); Assert.AreSame(_ee2.Y[0], _ee2.Y[1]); Assert.AreSame(_ee2.Y2, _ee2.Y[0]); } } { var ef1 = new EntityF(); TestBase.TestSerialization(ef1); var ey = new EntityY(); var ef2 = new EntityF { X = new ArrayList(new[] { new EntityX(), new EntityX() }), Y = new ArrayList(new[] { ey, ey }), Y2 = ey }; TestBase.TestSerialization(ef2); using (var em = Emf.CreateEntityManager()) { em.Persist(ef1); Assert.IsFalse(string.IsNullOrEmpty(ef1.Id)); em.Persist(ef2); Assert.IsFalse(string.IsNullOrEmpty(ef2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ef1 = em.Find <EntityF>(ef1.Id); Assert.AreEqual(ef1, _ef1); var _ef2 = em.Find <EntityF>(ef2.Id); Assert.AreEqual(ef2, _ef2); Assert.AreSame(_ef2.Y[0], _ef2.Y[1]); Assert.AreSame(_ef2.Y2, _ef2.Y[0]); } } }
public void PersistAndFind() { { var eb1 = new EntityB(); TestBase.TestSerialization(eb1); var eb2 = new EntityB(); eb2.A = new EntityA(eb2); TestBase.TestSerialization(eb2); using (var em = Emf.CreateEntityManager()) { em.Persist(eb1); Assert.IsFalse(string.IsNullOrEmpty(eb1.Id)); em.Persist(eb2); Assert.IsFalse(string.IsNullOrEmpty(eb2.Id)); } using (var em = Emf.CreateEntityManager()) { var _eb1 = em.Find<EntityB>(eb1.Id); Assert.AreEqual(eb1, _eb1); var _ea2 = em.Find<EntityA>(eb2.A.Id); Assert.AreEqual(eb2.A, _ea2); Assert.AreEqual(eb2, _ea2.OwnerB); Assert.AreSame(_ea2, _ea2.OwnerB.A); var _eb2 = em.Find<EntityB>(eb2.Id); Assert.AreEqual(eb2, _eb2); Assert.AreSame(_eb2, _eb2.A.OwnerB); } } { var ec1 = new EntityC(); TestBase.TestSerialization(ec1); var ec2 = new EntityC(); ec2.I.A = new EntityA(ec2); TestBase.TestSerialization(ec2); var ec3 = new EntityC { I = { A = new EntityA(ec1) } }; TestBase.TestSerialization(ec3); using (var em = Emf.CreateEntityManager()) { em.Persist(ec1); Assert.IsFalse(string.IsNullOrEmpty(ec1.Id)); em.Persist(ec2); Assert.IsFalse(string.IsNullOrEmpty(ec2.Id)); em.Persist(ec3); Assert.IsFalse(string.IsNullOrEmpty(ec3.Id)); } using (var em = Emf.CreateEntityManager()) { var _ec1 = em.Find<EntityC>(ec1.Id); Assert.AreEqual(ec1, _ec1); var _ea2 = em.Find<EntityA>(ec2.I.A.Id); Assert.AreEqual(ec2.I.A, _ea2); Assert.AreEqual(ec2, _ea2.OwnerC); Assert.AreSame(_ea2, _ea2.OwnerC.I.A); var _ec2 = em.Find<EntityC>(ec2.Id); Assert.AreEqual(ec2, _ec2); Assert.AreSame(_ec2, _ec2.I.A.OwnerC); var _ea3 = em.Find<EntityA>(ec3.I.A.Id); Assert.AreEqual(ec3.I.A, _ea3); Assert.AreEqual(ec1, _ea3.OwnerC); Assert.IsNull(_ea3.OwnerC.I.A); var _ec3 = em.Find<EntityC>(ec3.Id); Assert.AreEqual(ec3, _ec3); Assert.AreEqual(_ec1, _ec3.I.A.OwnerC); } } { var ed1 = new EntityD(); TestBase.TestSerialization(ed1); var ed2 = new EntityD(); ed2.I1.A = new EntityA(ed2); TestBase.TestSerialization(ed2); var ed3 = new EntityD { I2 = { A = new EntityA(ed1) } }; TestBase.TestSerialization(ed3); using (var em = Emf.CreateEntityManager()) { em.Persist(ed1); Assert.IsFalse(string.IsNullOrEmpty(ed1.Id)); em.Persist(ed2); Assert.IsFalse(string.IsNullOrEmpty(ed2.Id)); em.Persist(ed3); Assert.IsFalse(string.IsNullOrEmpty(ed3.Id)); } using (var em = Emf.CreateEntityManager()) { var _ed1 = em.Find<EntityD>(ed1.Id); Assert.AreEqual(ed1, _ed1); Assert.AreSame(_ed1.I1, _ed1.I2); var _ea2 = em.Find<EntityA>(ed2.I1.A.Id); Assert.AreEqual(ed2.I1.A, _ea2); Assert.AreEqual(ed2, _ea2.OwnerD); Assert.AreSame(_ea2.OwnerD.I2, _ea2.OwnerD.I2); Assert.AreSame(_ea2, _ea2.OwnerD.I1.A); var _ed2 = em.Find<EntityD>(ed2.Id); Assert.AreEqual(ed2, _ed2); Assert.AreSame(_ed2, _ed2.I1.A.OwnerD); Assert.AreSame(_ed2.I1, _ed2.I2); var _ea3 = em.Find<EntityA>(ed3.I1.A.Id); Assert.AreEqual(ed3.I1.A, _ea3); Assert.AreEqual(ed1, _ea3.OwnerD); Assert.IsNull(_ea3.OwnerD.I1.A); Assert.AreSame(_ea3.OwnerD.I1, _ea3.OwnerD.I2); var _ed3 = em.Find<EntityD>(ed3.Id); Assert.AreEqual(ed3, _ed3); Assert.AreEqual(_ed1, _ed3.I1.A.OwnerD); Assert.AreSame(_ed1.I1, _ed1.I2); } } }
public void PersistAndFind() { { var ec1 = new EntityC(); TestBase.TestSerialization(ec1); var ey = new EntityY(); var ec2 = new EntityC { X = new[] { new EntityX(), new EntityX() }, Y = new[] { ey, ey }, Y2 = ey }; TestBase.TestSerialization(ec2); using (var em = Emf.CreateEntityManager()) { em.Persist(ec1); Assert.IsFalse(string.IsNullOrEmpty(ec1.Id)); em.Persist(ec2); Assert.IsFalse(string.IsNullOrEmpty(ec2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ec1 = em.Find<EntityC>(ec1.Id); Assert.AreEqual(ec1, _ec1); var _ec2 = em.Find<EntityC>(ec2.Id); Assert.AreEqual(ec2, _ec2); Assert.AreSame(_ec2.Y[0], _ec2.Y[1]); Assert.AreSame(_ec2.Y2, _ec2.Y[0]); } } { var ed1 = new EntityD(); TestBase.TestSerialization(ed1); var ey = new EntityY(); var ed2 = new EntityD { X = new HashSet<EntityX>(new[] { new EntityX(), new EntityX() }), Y = new HashSet<EntityY>(new[] { ey, new EntityY() }), Y2 = ey }; TestBase.TestSerialization(ed2); using (var em = Emf.CreateEntityManager()) { em.Persist(ed1); Assert.IsFalse(string.IsNullOrEmpty(ed1.Id)); em.Persist(ed2); Assert.IsFalse(string.IsNullOrEmpty(ed2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ed1 = em.Find<EntityD>(ed1.Id); Assert.AreEqual(ed1, _ed1); var _ed2 = em.Find<EntityD>(ed2.Id); Assert.AreEqual(ed2, _ed2); Assert.IsNotNull(_ed2.Y.FirstOrDefault(item => object.ReferenceEquals(item, _ed2.Y2))); } } { var ee1 = new EntityE(); TestBase.TestSerialization(ee1); var ey = new EntityY(); var ee2 = new EntityE { X = new List<EntityX>(new[] { new EntityX(), new EntityX() }), Y = new List<EntityY>(new[] { ey, ey }), Y2 = ey }; TestBase.TestSerialization(ee2); using (var em = Emf.CreateEntityManager()) { em.Persist(ee1); Assert.IsFalse(string.IsNullOrEmpty(ee1.Id)); em.Persist(ee2); Assert.IsFalse(string.IsNullOrEmpty(ee2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ee1 = em.Find<EntityE>(ee1.Id); Assert.AreEqual(ee1, _ee1); var _ee2 = em.Find<EntityE>(ee2.Id); Assert.AreEqual(ee2, _ee2); Assert.AreSame(_ee2.Y[0], _ee2.Y[1]); Assert.AreSame(_ee2.Y2, _ee2.Y[0]); } } { var ef1 = new EntityF(); TestBase.TestSerialization(ef1); var ey = new EntityY(); var ef2 = new EntityF { X = new ArrayList(new[] { new EntityX(), new EntityX() }), Y = new ArrayList(new[] { ey, ey }), Y2 = ey }; TestBase.TestSerialization(ef2); using (var em = Emf.CreateEntityManager()) { em.Persist(ef1); Assert.IsFalse(string.IsNullOrEmpty(ef1.Id)); em.Persist(ef2); Assert.IsFalse(string.IsNullOrEmpty(ef2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ef1 = em.Find<EntityF>(ef1.Id); Assert.AreEqual(ef1, _ef1); var _ef2 = em.Find<EntityF>(ef2.Id); Assert.AreEqual(ef2, _ef2); Assert.AreSame(_ef2.Y[0], _ef2.Y[1]); Assert.AreSame(_ef2.Y2, _ef2.Y[0]); } } }