コード例 #1
0
 public void SmokeTest()
 {
     JsonObjectSerializerFactory<X> factory = new JsonObjectSerializerFactory<X>()
         .WithMember(x => x.B)
         .WithMember(x => x.C);
     var serializer = new JsonSerializer(factory);
     var xM = new Mock<X>(MockBehavior.Strict);
     xM.SetupGet(x => x.B).Returns(123).Verifiable();
     xM.SetupGet(x => x.C).Returns(456).Verifiable();
     string result = serializer.Serialize(xM.Object);
     Assert.AreEqual("{\"B\": 123, \"C\": 456}", result);
     xM.VerifyAll();
 }
コード例 #2
0
        public void WithMemberFailsWithInvalidArguments()
        {
            var factory = new JsonObjectSerializerFactory<X>();
            try {
                factory.WithMember<int>(null);
                Assert.Fail("Did not throw");
            } catch (ArgumentNullException ex) { Assert.AreEqual("specifier", ex.ParamName); }

            try {
                factory.WithMember(x => x.ToString());
            } catch (NotSupportedException ex) {
                Assert.AreEqual("Can not serialize members that are not properties or fields", ex.Message);
            }

            try {
                X y = new Y();
                factory.WithMember(x => y.A);
            } catch (NotSupportedException ex) {
                Assert.AreEqual("Can not serialize members that are not declared directly on the target object", ex.Message);
            }
        }