Example #1
0
        public void DeserializeIntoExistingSubObjects()
        {
            var serializer = new Serializer();
            var andy       = new ExtendedPerson {
                Name = "Not Andy", Age = 30
            };
            var amy = new ExtendedPerson {
                Name = "Amy", Age = 33
            };
            var family = new Family {
                Father = andy, Mother = amy
            };
            var yaml = @"---
Mother:  
  Name: Betty
  Age: 22

Father:
  Name: Andy
...";

            family = serializer.DeserializeInto <Family>(yaml, family);
            Assert.AreEqual("Andy", family.Father.Name);
            Assert.AreEqual("Betty", family.Mother.Name);
            // Existing behaviour will pass with the commented line
            //Assert.AreEqual(0, family.Father.Age);
            Assert.AreEqual(30, family.Father.Age);
            Assert.AreEqual(22, family.Mother.Age);
        }
Example #2
0
        public void DeserializeWithExistingObject()
        {
            var serializer = new Serializer();
            var andy       = new ExtendedPerson {
                Name = "Not Andy", Age = 30
            };
            var yaml = @"---
Name: Andy
...";

            andy = new ExtendedPerson {
                Name = "Not Andy", Age = 30
            };
            andy = (ExtendedPerson)serializer.Deserialize(yaml, typeof(ExtendedPerson), andy);
            Assert.AreEqual("Andy", andy.Name);
            Assert.AreEqual(30, andy.Age);
        }
Example #3
0
        static void Main(string[] args)
        {
            DateTime bDay  = new DateTime(2000, 1, 29);
            DateTime bDay2 = new DateTime(1980, 2, 25);

            Person person  = new Person("Andy", bDay);
            Person person2 = new Person("John", bDay2, 194, 100, true);

            Person.DescribePerson(person);
            Person.DescribePerson(person2);
            ExtendedPerson emptyPerson = new ExtendedPerson();

            Person.DescribePerson(emptyPerson);

            //Get person age
            Person.GetAge(person);
            Person.GetAge(person2);
        }
Example #4
0
        public void CopyFields_TypedRow_To_Extended()
        {
            var from = new Person
            {
                FirstName = "Ivan",
                Amount = 10,
                DOB = new DateTime(1990, 2, 16),
                YearsWithCompany = null
            };

            var to = new ExtendedPerson
            {
                FirstName = "John",
                Description = "descr",
                YearsWithCompany = 30,
                Info = "extended info",
                Count = long.MaxValue
            };

            from.CopyFields(to);

            Assert.AreEqual(to.FirstName, from.FirstName);
            Assert.AreEqual(to.LastName, from.LastName);
            Assert.AreEqual(to.Amount, from.Amount);
            Assert.AreEqual(to.Classification, from.Classification);
            Assert.AreEqual(to.Description, from.Description);
            Assert.AreEqual(to.DOB, from.DOB);
            Assert.AreEqual(to.GoodPerson, from.GoodPerson);
            Assert.AreEqual(to.ID, from.ID);
            Assert.AreEqual(to.LuckRatio, from.LuckRatio);
            Assert.AreEqual(to.YearsInSpace, from.YearsInSpace);
            Assert.AreEqual(to.YearsWithCompany, from.YearsWithCompany);
            Assert.AreEqual("extended info", to.Info);
            Assert.AreEqual(long.MaxValue, to.Count);
        }
Example #5
0
        public void CopyFields_TypedRow_Complex()
        {
            var from = new ExtendedPerson
            {
                FirstName = "Ivan",
                Parent = new Person { FirstName = "John", Amount = 12, GoodPerson = true },
                Children = new List<Person> { new Person { FirstName = "John" }, new Person { LuckRatio = 12.3D } }
            };

            var to = new ExtendedPerson
            {
                FirstName = "Anna",
                Description = "descr",
                YearsWithCompany = 30,
                Parent = new Person { FirstName = "Maria" }
            };

            from.CopyFields(to);

            Assert.AreEqual(to.FirstName, from.FirstName);
            Assert.AreEqual(to.LastName, from.LastName);
            Assert.AreEqual(to.Amount, from.Amount);
            Assert.AreEqual(to.Classification, from.Classification);
            Assert.AreEqual(to.Description, from.Description);
            Assert.AreEqual(to.DOB, from.DOB);
            Assert.AreEqual(to.GoodPerson, from.GoodPerson);
            Assert.AreEqual(to.ID, from.ID);
            Assert.AreEqual(to.LuckRatio, from.LuckRatio);
            Assert.AreEqual(to.YearsInSpace, from.YearsInSpace);
            Assert.AreEqual(to.YearsWithCompany, from.YearsWithCompany);
            Assert.AreEqual(to.Info, from.Info);
            Assert.AreEqual(to.Parent, from.Parent);
            Assert.AreEqual(to.Children, from.Children);
        }
Example #6
0
        public void CopyFields_ExtendedTypedRow_To_Amorphous_IncludeAmorphous()
        {
            var from = new ExtendedPerson
            {
                FirstName = "Ivan",
                Amount = 10,
                YearsWithCompany = null,
                Count = 4567,
                Info = "extended info"
            };

            var to = new AmorphousDynamicRow(Schema.GetForTypedRow(typeof(Person)));
            to.AmorphousData["field1"] = 123;
            to.AmorphousData["FirstName"] = "John";

            from.CopyFields(to, true);

            Assert.AreEqual(11, to.Schema.FieldCount);
            Assert.AreEqual(6, to.AmorphousData.Count);
            Assert.AreEqual(123, to.AmorphousData["field1"]);
            Assert.AreEqual("John", to.AmorphousData["FirstName"]);
            Assert.AreEqual(from.Count, to.AmorphousData["Count"]);
            Assert.AreEqual(from.Info, to.AmorphousData["Info"]);
            Assert.AreEqual(null, to.AmorphousData["Parent"]);
            Assert.AreEqual(null, to.AmorphousData["Children"]);
            Assert.AreEqual(from.FirstName, to["FirstName"]);
            Assert.AreEqual(from.Amount, to["Amount"]);
            Assert.AreEqual(from.YearsWithCompany, to["YearsWithCompany"]);
        }