示例#1
0
        public static void Run()
        {
            PersonA personA = new PersonA("john doe");
            PersonB personB = new PersonB("alice doe");

            Client client = new Client();

            client.Display(personA);
            // TO DO client afficher personB name sans modifier Client
            //personB.
        }
 public void ByteArray_SerializePersonB()
 {
     AddressA addressA = new AddressA(@"CornerStreet", @"00501", @"New york");
     PersonA partner = new PersonA(@"Kate", @"Moss", addressA);
     PersonA personB = new PersonB(@"Bob", @"Bones", addressA, partner);
     byte[] data = SerializationHelper.SerializeToBytes(personB);
     Assert.IsNotNull(data);
     Assert.IsTrue(data.Length > 0);
     PersonB deserializedPersonB = SerializationHelper.DeserializeFromBytes<PersonB>(data);
     Assert.AreEqual(personB, deserializedPersonB);
 }
 public void XmlSerialization_SerializePersonB()
 {
     AddressA addressA = new AddressA(@"CornerStreet", @"00501", @"New york");
     PersonA partner = new PersonA(@"Kate", @"Moss", addressA);
     PersonA personB = new PersonB(@"Bob", @"Bones", addressA, partner);
     string xmlData = SerializationHelper.SerializeToXmlString(personB);
     Assert.IsNotNull(xmlData);
     Assert.IsTrue(xmlData.Length > 0);
     PersonB deserializedPersonB = SerializationHelper.DeserializeFromXmlString<PersonB>(xmlData);
     Assert.AreEqual(personB, deserializedPersonB);
 }
 public void XmlSerialization_SerializePersonBUsingAnInterface()
 {
     IAddress address = new AddressA(@"CornerStreet", @"00501", @"New york");
     IPerson partner = new PersonA(@"Kate", @"Moss", address);
     IPerson person = new PersonB(@"Bob", @"Bones", address, partner);
     string xmlData = SerializationHelper.SerializeToXmlString(person);
     Assert.IsNotNull(xmlData);
     Assert.IsTrue(xmlData.Length > 0);
     IPerson deserializedPerson = SerializationHelper.DeserializeFromXmlString<IPerson>(xmlData);
     Assert.AreEqual(person, deserializedPerson);
     Assert.IsInstanceOf<PersonB>(person);
 }
 public void ByteArray_SerializePersonBUsingAnInterface()
 {
     IAddress address = new AddressA(@"CornerStreet", @"00501", @"New york");
     IPerson partner = new PersonA(@"Kate", @"Moss", address);
     IPerson person = new PersonB(@"Bob", @"Bones", address, partner);
     byte[] data = SerializationHelper.SerializeToBytes(person);
     Assert.IsNotNull(data);
     Assert.IsTrue(data.Length > 0);
     IPerson deserializedPerson = SerializationHelper.DeserializeFromBytes<IPerson>(data);
     Assert.AreEqual(person, deserializedPerson);
     Assert.IsInstanceOf<PersonA>(person);
 }
        public void DynamicVisitorPatternTest()
        {
            IVisitable personA = new PersonA();
            IVisitable personB = new PersonB();

            IVisitor toStrVisitor     = new ToStringVisitor();
            IVisitor toElementVisitor = new ToElementPersonVisitor();

            _testOutputHelper.WriteLine(personA.Accept(toElementVisitor));
            _testOutputHelper.WriteLine(personA.Accept(toStrVisitor));
            _testOutputHelper.WriteLine(personB.Accept(toElementVisitor));
            _testOutputHelper.WriteLine(personB.Accept(toStrVisitor));
        }
        public void MapToDest_EntityValue_PropMapper3()
        {
            var r = new PersonB {
                AddressX = new AddressX {
                    City = "123", Street = "456"
                }
            };

            EntityMapper.Create <PersonA, PersonB>()
            .HasProperty(s => s.Address, d => d.AddressX, p => p.SetMapper(EntityMapper.Create <Address, AddressX>().HasProperty(sa => sa.Street, da => da.City)))
            .MapToDest(new PersonA(), r);

            Assert.IsNotNull(r);
            Assert.IsNull(r.AddressX);
        }
示例#8
0
        static void Main(string[] args)
        {
            var phones = new[] { "1234567" };

            var person1 = new PersonB("Marek", "Szala", new string[0]);
            var person2 = new PersonB("Marek", "Szala", new string[0]);

            //person1.FirstName = "Andrzej";

            var person3 = person1 with {
                FirstName = "Andrzej"
            };

            var(name, lastName, p) = person1;

            Console.WriteLine(person1 == person2);
        }
    }
        public void MapToDest_EntityValue_PropMapper2()
        {
            var r = new PersonB {
                AddressX = new AddressX {
                    City = "123", Street = "456"
                }
            };

            EntityMapper.Create <PersonA, PersonB>()
            .HasProperty(s => s.Address, d => d.AddressX, p => p.SetMapper(EntityMapper.Create <Address, AddressX>().HasProperty(sa => sa.Street, da => da.City)))
            .MapToDest(new PersonA {
                Address = new Address {
                    Street = "AAA", City = "BBB"
                }
            }, r);

            Assert.IsNotNull(r);
            Assert.IsNotNull(r.AddressX);
            Assert.AreEqual("456", r.AddressX.Street);
            Assert.AreEqual("AAA", r.AddressX.City);
        }
示例#10
0
        public void DifferentTablesUseSamePkGenerator_InsertSingleItem()
        {
            using TestDatabase db = CreateTestDatabase();

            IDbSet <PersonA> setA = db.Query <PersonA>().AsDbSet();
            var personA1          = new PersonA {
                Name = "Alice A"
            };
            var personA2 = new PersonA {
                Name = "Bob A"
            };
            var personA3 = new PersonA {
                Name = "Connor A"
            };

            IDbSet <PersonB> setB = db.Query <PersonB>().AsDbSet();
            var personB1          = new PersonB {
                Name = "Alice B"
            };
            var personB2 = new PersonB {
                Name = "Bob B"
            };
            var personB3 = new PersonB {
                Name = "Connor B"
            };

            InsertItems(setA, personA1);
            InsertItems(setB, personB1);
            InsertItems(setA, personA2);
            InsertItems(setB, personB2);
            InsertItems(setA, personA3);
            InsertItems(setB, personB3);

            personA1.IdA.Should().Be(1);
            personA2.IdA.Should().Be(3);
            personA3.IdA.Should().Be(5);
            personB1.Pk.Should().Be(2);
            personB2.Pk.Should().Be(4);
            personB3.Pk.Should().Be(6);
        }
 // might not work with a value type!
 public PersonAddressBuilder(PersonB person)
 {
     this.person = person;
 }
 public PersonJobBuilder(PersonB person)
 {
     this.person = person;
 }
示例#13
0
        public void DifferentTablesUseSamePkGenerator_InsertMultipleItems()
        {
            using TestDatabase db = CreateTestDatabase();

            IDbSet <PersonA> setA = db.Query <PersonA>().AsDbSet();
            var personA1          = new PersonA {
                Name = "Alice A"
            };
            var personA2 = new PersonA {
                Name = "Bob A"
            };
            var personA3 = new PersonA {
                Name = "Connor A"
            };
            var personA4 = new PersonA {
                Name = "Drew A"
            };
            var personA5 = new PersonA {
                Name = "Eve A"
            };
            var personA6 = new PersonA {
                Name = "Fiona A"
            };

            IDbSet <PersonB> setB = db.Query <PersonB>().AsDbSet();
            var personB1          = new PersonB {
                Name = "Alice B"
            };
            var personB2 = new PersonB {
                Name = "Bob B"
            };
            var personB3 = new PersonB {
                Name = "Connor B"
            };
            var personB4 = new PersonB {
                Name = "Drew B"
            };
            var personB5 = new PersonB {
                Name = "Eve B"
            };
            var personB6 = new PersonB {
                Name = "Fiona B"
            };

            InsertItems(setA, new[] { personA1, personA2, personA3 });
            InsertItems(setB, new[] { personB1, personB2, personB3 });
            InsertItems(setA, new[] { personA4, personA5, personA6 });
            InsertItems(setB, new[] { personB4, personB5, personB6 });

            personA1.IdA.Should().Be(1);
            personA2.IdA.Should().Be(2);
            personA3.IdA.Should().Be(3);
            personA4.IdA.Should().Be(7);
            personA5.IdA.Should().Be(8);
            personA6.IdA.Should().Be(9);

            personB1.Pk.Should().Be(4);
            personB2.Pk.Should().Be(5);
            personB3.Pk.Should().Be(6);
            personB4.Pk.Should().Be(10);
            personB5.Pk.Should().Be(11);
            personB6.Pk.Should().Be(12);
        }
示例#14
0
 public string Visit(PersonB visitable)
 {
     return($"{nameof(ToElementPersonVisitor)} Visited {nameof(PersonB)}");
 }
 public void Stream_SerializePersonBUsingAnInterface()
 {
     IAddress address = new AddressA(@"CornerStreet", @"00501", @"New york");
     IPerson partner = new PersonA(@"Kate", @"Moss", address);
     IPerson person = new PersonB(@"Bob", @"Bones", address, partner);
     using (Stream stream = new MemoryStream())
     {
         SerializationHelper.Serialize(stream, person);
         Assert.IsTrue(stream.Length > 0);
         stream.Position = 0;
         IPerson deserializedPerson = SerializationHelper.Deserialize<IPerson>(stream);
         Assert.AreEqual(person, deserializedPerson);
         Assert.IsInstanceOf<PersonA>(person);
     }
 }
 public void Stream_SerializePersonB()
 {
     AddressA addressA = new AddressA(@"CornerStreet", @"00501", @"New york");
     PersonA partner = new PersonA(@"Kate", @"Moss", addressA);
     PersonA personB = new PersonB(@"Bob", @"Bones", addressA, partner);
     using (Stream stream = new MemoryStream())
     {
         SerializationHelper.Serialize(stream, personB);
         Assert.IsTrue(stream.Length > 0);
         stream.Position = 0;
         PersonA deserializedPersonB = SerializationHelper.Deserialize<PersonA>(stream);
         Assert.AreEqual(personB, deserializedPersonB);
     }
 }