public void AcceptsApplicationWwwFormUrlEncoded() { var mockContext = new Mock <IAbstractModelApplicationRequestContext>(); mockContext.Setup(c => c.ContentType).Returns("application/x-www-form-urlencoded"); var applicator = new FormDataAbstractModelApplicator(); Assert.IsTrue(applicator.ContentTypes.Contains("application/x-www-form-urlencoded")); Assert.IsTrue(applicator.Handles(mockContext.Object)); }
public void AcceptsMultiPartFormData() { var mockContext = new Mock <IAbstractModelApplicationRequestContext>(); mockContext.Setup(c => c.ContentType).Returns("multipart/form-data"); var applicator = new FormDataAbstractModelApplicator(); Assert.IsTrue(applicator.ContentTypes.Contains("multipart/form-data")); Assert.IsTrue(applicator.Handles(mockContext.Object)); }
public void ApplyMultiPartFormData() { var formCollection = new FormCollection(new Dictionary <string, StringValues> { { "foo", "bar" }, { "multi", new[] { "one", "two" } } }); var mockContext = new Mock <IAbstractModelApplicationRequestContext>(); mockContext.Setup(c => c.ContentType).Returns("multipart/form-data"); mockContext.Setup(c => c.Form).Returns(formCollection); var applicator = new FormDataAbstractModelApplicator(); var abstractModel = new AbstractModel(); Assert.IsTrue(applicator.Handles(mockContext.Object)); applicator.ApplyAsync(mockContext.Object, abstractModel, CancellationToken.None).Wait(); Assert.AreEqual(0, abstractModel.ValueCount); Assert.AreEqual(2, 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]); }
public void ApplyFileUploads() { var fileFormCollection = new FormFileCollection { new FormFile(new MemoryStream(), 0, 25, null, "filename.txt") { Headers = new HeaderDictionary(new Dictionary <string, StringValues> { { "Content-Disposition", "form-data; filename=\"filename.txt\"; name=\"name\"" } }) } }; var formCollection = new FormCollection(new Dictionary <string, StringValues>(), fileFormCollection); var mockContext = new Mock <IAbstractModelApplicationRequestContext>(); mockContext.Setup(c => c.Form).Returns(formCollection); var applicator = new FormDataAbstractModelApplicator(); var abstractModel = new AbstractModel(); applicator.ApplyAsync(mockContext.Object, abstractModel, CancellationToken.None).Wait(); Assert.AreEqual(0, abstractModel.ValueCount); Assert.AreEqual(1, abstractModel.ChildCount); var name = abstractModel["name"]; Assert.IsNotNull(name); Assert.AreEqual(0, name.ChildCount); Assert.AreEqual(1, name.ValueCount); Assert.IsNotNull(name.Values[0]); Assert.IsInstanceOfType(name.Values[0], typeof(IFormFile)); Assert.AreEqual("filename.txt", ((IFormFile)name.Values[0]).FileName); }