Example #1
0
        /// <summary>
        /// Calls:
        /// - BinaryFormatterAssert.Roundtrip(item)
        /// - XmlSerializerAssert.Roundtrip(item)
        /// - DataContractSerializerAssert.Roundtrip(item)
        /// </summary>
        /// <returns>The roundtripped results.</returns>
        public static RoundtripResults <T> RoundtripAll <T>(T item)
        {
            var binary        = BinaryFormatterAssert.Roundtrip(item);
            var xmlSerializer = XmlSerializerAssert.Roundtrip(item);
            var dataContract  = DataContractSerializerAssert.Roundtrip(item);

            return(new RoundtripResults <T>(binary, xmlSerializer, dataContract));
        }
        public void FromXml()
        {
            var xml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" +
                      "<Dummy xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" +
                      "  <Value>2</Value>\r\n" +
                      "</Dummy>";
            var dummy = XmlSerializerAssert.FromXml <Dummy>(xml);

            Assert.AreEqual(2, dummy.Value);
        }
        public void HappyPath()
        {
            var actual = new Dummy {
                Value = 2
            };
            var roundtrip = XmlSerializerAssert.Roundtrip(actual);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }
Example #4
0
        public void List()
        {
            var dummies = new List <Dummy> {
                new Dummy(1), new Dummy(1)
            };
            var xml = XmlSerializerAssert.ToXml(dummies)
                      .Escape();

            Console.Write(xml);
        }
        public void TestName()
        {
            ////var xml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" +
            ////          "<Dummy xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" +
            ////          "  <Value>2</Value>\r\n" +
            ////          "</Dummy>";
            var dummy  = new Dummy(2);
            var escape = XmlSerializerAssert.ToXml(dummy).Escape();

            Console.WriteLine(escape);
        }
        public void EqualItems()
        {
            var expected = new DataContractDummy {
                Value = 2
            };
            var actual = new DataContractDummy {
                Value = 2
            };

            XmlSerializerAssert.Equal(expected, actual);
        }
        public void EqualXmlAttributeClass()
        {
            var actual = new XmlAttributeClass {
                Value = 2
            };
            var expectedXml = "<XmlAttributeClass Value=\"2\" />";
            var roundtrip   = XmlSerializerAssert.Equal(expectedXml, actual, XmlAssertOptions.IgnoreNamespaces | XmlAssertOptions.IgnoreDeclaration);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }
        public void RoundtripForgotReadEndElementThrows()
        {
            var actual = new ForgotReadEndElement {
                Value = 2
            };
            var ex = Assert.Throws <AssertException>(() => XmlSerializerAssert.Roundtrip(actual));
            var expectedMessage = "  Roundtrip of item in ContainerClass Failed.\r\n" +
                                  "  This means there is an error in serialization.\r\n" +
                                  "  If you are implementing IXmlSerializable check that you handle ReadEndElement properly as it is a common source of bugs.";

            Assert.AreEqual(expectedMessage, ex.Message);
        }
        public void Equal()
        {
            var actual = new Dummy {
                Value = 2
            };
            var expectedXml = "<Dummy>\r\n" +
                              "  <Value>2</Value>\r\n" +
                              "</Dummy>";
            var roundtrip = XmlSerializerAssert.Equal(expectedXml, actual, XmlAssertOptions.IgnoreNamespaces | XmlAssertOptions.IgnoreDeclaration);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }
        public void ToEscapedXml()
        {
            var dummy = new Dummy {
                Value = 2
            };
            var xml      = XmlSerializerAssert.ToEscapedXml(dummy);
            var expected = "\"<?xml version=\\\"1.0\\\" encoding=\\\"utf-16\\\"?>\\r\\n\" +\r\n" +
                           "\"<Dummy xmlns:xsd=\\\"http://www.w3.org/2001/XMLSchema\\\" xmlns:xsi=\\\"http://www.w3.org/2001/XMLSchema-instance\\\">\\r\\n\" +\r\n" +
                           "\"  <Value>2</Value>\\r\\n\" +\r\n" +
                           "\"</Dummy>\"";

            Assert.AreEqual(expected, xml);
        }
        public void EqualReadingOutsideEndElementThrows()
        {
            var actual = new ReadingOutsideEndElement {
                Value = 2
            };
            var expectedXml     = "<ReadingOutsideEndElement><Value>2</Value></ReadingOutsideEndElement>";
            var ex              = Assert.Throws <AssertException>(() => XmlSerializerAssert.Equal(expectedXml, actual, XmlAssertOptions.IgnoreNamespaces | XmlAssertOptions.IgnoreDeclaration));
            var expectedMessage = "  Roundtrip of item in ContainerClass Failed.\r\n" +
                                  "  This means there is an error in serialization.\r\n" +
                                  "  If you are implementing IXmlSerializable check that you handle ReadEndElement properly as it is a common source of bugs.";

            Assert.AreEqual(expectedMessage, ex.Message);
        }
        public void RoundtripForgotReadElementThrows()
        {
            var actual = new ForgotReadElement {
                Value = 2
            };
            var ex = Assert.Throws <AssertException>(() => XmlSerializerAssert.Roundtrip(actual));
            var expectedMessage = "  Simple roundtrip failed. Source is not equal to roundtripped.\r\n" +
                                  "  AssertException:   Found this difference between expected and actual:\r\n" +
                                  "  expected.value: 2\r\n" +
                                  "    actual.value: 0";

            Assert.AreEqual(expectedMessage, ex.Message);
        }
        public void EqualWithAttributeAndDeclaration()
        {
            var actual = new Dummy {
                Value = 2
            };
            var expectedXml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" +
                              "<Dummy xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" +
                              "  <Value>2</Value>\r\n" +
                              "</Dummy>";
            var roundtrip = XmlSerializerAssert.Equal(expectedXml, actual);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }
        public void ToXml()
        {
            var dummy = new Dummy {
                Value = 2
            };
            var xml = XmlSerializerAssert.ToXml(dummy);

            Console.Write(xml);
            var expected = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" +
                           "<Dummy xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" +
                           "  <Value>2</Value>\r\n" +
                           "</Dummy>";

            Assert.AreEqual(expected, xml);
        }
        public void NotEqualItems()
        {
            var expected = new DataContractDummy {
                Value = 1
            };
            var actual = new DataContractDummy {
                Value = 2
            };
            var ex = Assert.Throws <AssertException>(() => XmlSerializerAssert.Equal(expected, actual));
            var expectedMessage = "  Xml differ at line 3 index 7.\r\n" +
                                  "  Expected: 3| <Value>1</Value>\r\n" +
                                  "  But was:  3| <Value>2</Value>\r\n" +
                                  "  --------------------^";

            Assert.AreEqual(expectedMessage, ex.Message);
        }
        public void EqualThrowsOnMissingDeclarationWhenVerbatim()
        {
            var actual = new Dummy {
                Value = 2
            };
            var expectedXml = "<Dummy>\r\n" +
                              "  <Value>2</Value>\r\n" +
                              "</Dummy>";
            var ex = Assert.Throws <AssertException>(() => XmlSerializerAssert.Equal(expectedXml, actual, XmlAssertOptions.Verbatim));
            var expectedMessage = "  Xml differ at line 1 index 1.\r\n" +
                                  "  Expected: 1| <Dummy>\r\n" +
                                  "  But was:  1| <?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" +
                                  "  --------------^";

            Assert.AreEqual(expectedMessage, ex.Message);
        }