示例#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 HappyPath()
        {
            var actual = new Dummy {
                Value = 2
            };
            var roundtrip = DataContractSerializerAssert.Roundtrip(actual);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }
        public void RoundtripForgotReadElementThrows()
        {
            var actual = new ForgotReadElement {
                Value = 2
            };
            var ex = Assert.Throws <AssertException>(() => DataContractSerializerAssert.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 ReadingOutsideEndElementThrows()
        {
            var actual = new ReadingOutsideEndElement {
                Value = 2
            };

            Assert.Throws <AssertException>(() => DataContractSerializerAssert.Roundtrip(actual));
            //var ex = Assert.Throws<AssertException>(() => DataContractSerializerAssert.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);
        }