public object Post(MultipartData data) { CommunicationContext.Response.Headers["X-contenttype"] = CommunicationContext.Request.Headers["Content-Type"]; return new EncodingData { Data = string.Format("{0}-{1}", data.Name, data.Age) }; }
public void CanPostSimpleMultipartFormDataWithEncoding( [Values("UTF-8", "iso-8859-1")] string charsetIn, [Values("UTF-8", "iso-8859-1")] string charsetOut) { // Arrange MultipartData data = new MultipartData { Name = "ÆØÅüî", Age = 10, Active = true }; Request formdataReq = Session.Bind(MultipartFormDataTemplate); // NOTE: I haven't found a way to test what encoding it actually uses for the post data, // so that must be inspected using Fiddler :-( // Act using (Response<string> response = formdataReq.Accept("text/plain") .AcceptCharset(charsetOut) .CodecParameter("Charset", charsetIn) .ContentType("multipart/form-data") .Post<string>(data)) { // Assert Assert.IsTrue(response.Headers["x-contenttype"].StartsWith("multipart/form-data")); Assert.AreEqual(charsetOut, response.Headers["x-accept-charset"]); Assert.AreEqual("ÆØÅüî-10-True", response.Body); } }
public void WhenSpecifyingCharsetForCodecItUsesIt() { // Arrange MultipartData data = new MultipartData { Name = "ÆØÅüî", Age = 10 }; Request formdataReq = Session.Bind(MultipartFormDataTemplate); // Act + Assert (throws because it tries to use non-existing charset) // - Not the best test ever, I know ... AssertThrows<ArgumentException>(() => formdataReq.Accept("text/plain") .CodecParameter("Charset", "NON-EXISTING") .ContentType("multipart/form-data") .Post<string>(data), ex => ex.Message.Contains("NON-EXISTING")); }
public void CanPostSimpleMultipartFormDataUsingShorthand() { // Arrange MultipartData data = new MultipartData { Name = "Pete", Age = 10, Active = false }; Request formdataReq = Session.Bind(MultipartFormDataTemplate); // Act using (Response<string> response = formdataReq.Accept("text/plain").AsMultipartFormData().Post<string>(data)) { // Assert Assert.IsTrue(response.Headers["x-contenttype"].StartsWith("multipart/form-data")); Assert.AreEqual("Pete-10-False", response.Body); } }