Example #1
0
        public void should_serialize_collection_into_string()
        {
            var testCollection = new test_collection()
            {
                new ChangeA {
                    PropertyA = "Change A"
                },
                new ChangeB {
                    PropertyA = "Change B"
                },
            };

            string   xml       = testCollection.SerializeToXml(typeof(IChange));
            XElement actualXml = XElement.Parse(xml);

            actualXml.Name.LocalName.Should().Be("Changes");
            actualXml.Should().HaveElement("Change");

            IEnumerable <XElement> changes = from change in actualXml.Elements("Change") select change;

            changes.Should().HaveCount(2);

            var changeA = changes.SingleOrDefault(
                e =>
                e.Attribute("AssemblyQualifiedName") != null &&
                e.Attribute("AssemblyQualifiedName").Value == "RuskinDantra.Extensions.UnitTests.ChangeA, RuskinDantra.Extensions.UnitTests");

            changeA.Should().NotBeNull();
            changeA.Element("ChangeA").Element("PropertyA").Should().HaveValue("Change A");
            changeA.Element("ChangeA").Element("ChangeType").Should().HaveValue("ChangeA");

            var changeB = changes.SingleOrDefault(
                e =>
                e.Attribute("AssemblyQualifiedName") != null &&
                e.Attribute("AssemblyQualifiedName").Value == "RuskinDantra.Extensions.UnitTests.ChangeB, RuskinDantra.Extensions.UnitTests");

            changeB.Should().NotBeNull();
            changeB.Element("ChangeB").Element("PropertyA").Should().HaveValue("Change B");
            changeB.Element("ChangeB").Element("ChangeType").Should().HaveValue("ChangeB");
        }