public void ApplyMultiLayerObject() { var data = new { first = "firstvalue", inner = new { Foo = "bar", Multi = new[] { "one", "two" } } }; var mockContext = new Mock <IAbstractModelApplicationRequestContext>(); mockContext.Setup(c => c.ContentType).Returns("application/json"); mockContext.Setup(c => c.Stream) .Returns(new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data)))); var applicator = new JsonAbstractModelApplicator(); var abstractModel = new AbstractModel(); Assert.IsTrue(abstractModel.IsEmpty); applicator.ApplyAsync(mockContext.Object, abstractModel, CancellationToken.None).Wait(); Assert.IsFalse(abstractModel.IsEmpty); Assert.AreEqual(0, abstractModel.ValueCount); Assert.AreEqual(2, abstractModel.ChildCount); var first = abstractModel["first"]; Assert.IsNotNull(first); Assert.AreEqual(0, first.ChildCount); Assert.AreEqual(1, first.ValueCount); Assert.AreEqual("firstvalue", first.Values[0]); var inner = abstractModel["inner"]; Assert.IsNotNull(inner); Assert.AreEqual(2, inner.ChildCount); Assert.AreEqual(0, inner.ValueCount); var foo = inner["foo"]; Assert.IsNotNull(foo); Assert.AreEqual(0, foo.ChildCount); Assert.AreEqual(1, foo.ValueCount); Assert.AreEqual("bar", foo.Values[0]); var multi = inner["multi"]; Assert.IsNotNull(multi); Assert.AreEqual(0, multi.ChildCount); Assert.AreEqual(2, multi.ValueCount); Assert.AreEqual("one", multi.Values[0]); Assert.AreEqual("two", multi.Values[1]); }
public void AcceptsApplicationJson() { var mockContext = new Mock <IAbstractModelApplicationRequestContext>(); mockContext.Setup(c => c.ContentType).Returns("application/json"); var applicator = new JsonAbstractModelApplicator(); Assert.IsTrue(applicator.ContentTypes.Contains("application/json")); Assert.IsTrue(applicator.Handles(mockContext.Object)); }
public void ApplySingleLayerObject() { var data = new { Foo = "bar", Multi = new[] { "one", "two" }, Integer = 42, Float = 1.23432, Bool = true }; var mockContext = new Mock <IAbstractModelApplicationRequestContext>(); mockContext.Setup(c => c.ContentType).Returns("application/json"); mockContext.Setup(c => c.Stream) .Returns(new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data)))); var applicator = new JsonAbstractModelApplicator(); var abstractModel = new AbstractModel(); applicator.ApplyAsync(mockContext.Object, abstractModel, CancellationToken.None).Wait(); Assert.AreEqual(0, abstractModel.ValueCount); Assert.AreEqual(5, abstractModel.ChildCount); var foo = abstractModel["foo"]; Assert.IsNotNull(foo); Assert.AreEqual(0, foo.ChildCount); Assert.AreEqual(1, foo.ValueCount); Assert.AreEqual("bar", foo.Values[0]); var multi = abstractModel["multi"]; Assert.IsNotNull(multi); Assert.AreEqual(0, multi.ChildCount); Assert.AreEqual(2, multi.ValueCount); Assert.AreEqual("one", multi.Values[0]); Assert.AreEqual("two", multi.Values[1]); Assert.AreEqual((long)42, abstractModel["Integer"].Values[0]); Assert.AreEqual((decimal)1.23432, abstractModel["Float"].Values[0]); Assert.AreEqual(true, abstractModel["Bool"].Values[0]); }
public void ApplyArrayObject() { var data = new[] { "one", "two" }; var mockContext = new Mock <IAbstractModelApplicationRequestContext>(); mockContext.Setup(c => c.ContentType).Returns("application/json"); mockContext.Setup(c => c.Stream) .Returns(new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data)))); var applicator = new JsonAbstractModelApplicator(); var abstractModel = new AbstractModel(); applicator.ApplyAsync(mockContext.Object, abstractModel, CancellationToken.None).Wait(); Assert.AreEqual(2, abstractModel.ValueCount); Assert.AreEqual(0, abstractModel.ChildCount); Assert.AreEqual("one", abstractModel.Values[0]); Assert.AreEqual("two", abstractModel.Values[1]); }