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(); }
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); } }