Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public EntityA(EntityD owner)
 {
     this.OwnerD = owner;
     this.Name   = Guid.NewGuid().ToString();
 }
Beispiel #4
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);
                }
            }
        }
Beispiel #5
0
        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 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);
                }
            }
        }
Beispiel #8
0
        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]);
                }
            }
        }