public void WithBoundaryTest() { MultiPartFormData target = new MultiPartFormData().WithBoundary("----------xxxx"); string actual = target.ToString(); string expected = "multipart/form-data; boundary=----------xxxx"; Assert.Equal("----------xxxx", target.Boundary); Assert.Equal(expected, actual); }
public void SelfGeneratedBoundariesAreDynamicAndDontCollideWithData() { // Given: we have a string that was used as a boundary. string selfGeneratedBoundary = new MultiPartFormData(new NameValueCollection()).Boundary; var data = new NameValueCollection(); data.Add("name", selfGeneratedBoundary); var encoder = new MultiPartFormData(data); // Then: we get a valid-autogenerated boundary Assert.That(encoder.Boundary, Is.Not.EqualTo(selfGeneratedBoundary)); }
public void SelfGeneratedBoundary() { var data = new NameValueCollection(); data.Add("name", "bob"); var encoder = new MultiPartFormData(data); // Then: we get a valid-autogenerated boundary Assert.That(encoder.Boundary, Is.Not.Null); Assert.That(encoder.Boundary.Length, Is.GreaterThanOrEqualTo(35)); // Dean's self-imposed good-boundary rule Assert.That(encoder.Boundary.Length, Is.LessThanOrEqualTo(57)); Assert.That(encoder.ContentType, Is.EqualTo("multipart/form-data; boundary=" + encoder.Boundary)); }
public void RequestBodyFormat() { // Given: multi-part form data var data = new NameValueCollection(); data.Add("name", "John Jacob Jingleheimerschmidt"); data.Add("reason", "His name is my name too."); // When: encode it var encoder = new MultiPartFormData(data); // Then: we get a valid-autogenerated boundary string expectedBody = $"--{encoder.Boundary}\r\n" + "Content-Disposition: form-data; name=\"name\"\r\n" + "\r\n" + "John Jacob Jingleheimerschmidt\r\n" + $"--{encoder.Boundary}\r\n" + "Content-Disposition: form-data; name=\"reason\"\r\n" + "\r\n" + "His name is my name too.\r\n" + $"--{encoder.Boundary}--\r\n"; Assert.That(encoder.RequestBody, Is.EqualTo(expectedBody)); }