Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 34 additions & 33 deletions RestSharp.IntegrationTests/MultipartFormDataTests.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
using System;
using System.Net;
using NUnit.Framework;
using RestSharp.IntegrationTests.Helpers;

namespace RestSharp.IntegrationTests
namespace RestSharp.IntegrationTests
{
using System;
using System.IO;
using System.Net;

using RestSharp.IntegrationTests.Helpers;

using Xunit;

public class MultipartFormDataTests
{
[Test]
private readonly string expected =
"-------------------------------28947758029299" + Environment.NewLine +
"Content-Disposition: form-data; name=\"foo\"" + Environment.NewLine + Environment.NewLine +
"bar" + Environment.NewLine +
"-------------------------------28947758029299" + Environment.NewLine +
"Content-Disposition: form-data; name=\"a name with spaces\"" + Environment.NewLine + Environment.NewLine +
"somedata" + Environment.NewLine +
"-------------------------------28947758029299--" + Environment.NewLine;


[Fact]
public void MultipartFormDataAsync()
{
const string baseUrl = "http://localhost:8888/";
Expand All @@ -17,59 +30,47 @@ public void MultipartFormDataAsync()
var client = new RestClient(baseUrl);
var request = new RestRequest("/", Method.POST) { AlwaysMultipartFormData = true };

AddParameters(request);
this.AddParameters(request);

client.ExecuteAsync(request, (restResponse, handle) =>
{
Console.WriteLine(restResponse.Content);
Assert.AreEqual(Expected, restResponse.Content);
Assert.Equal(this.expected, restResponse.Content);
});
}
}

[Test]
[Fact]
public void MultipartFormData()
{
//const string baseUrl = "http://localhost:8888/";
const string baseUrl = "http://localhost:8888/";

using (SimpleServer.Create(baseUrl, EchoHandler))
{
var client = new RestClient(baseUrl);
var request = new RestRequest("/", Method.POST) { AlwaysMultipartFormData = true };

AddParameters(request);
this.AddParameters(request);

var response = client.Execute(request);

//Console.WriteLine(response.Content);

Assert.AreEqual(Expected, response.Content);
Assert.Equal(this.expected, response.Content);
}
}

private void AddParameters(RestRequest request)
{
request.AddParameter("foo", "bar");
request.AddParameter("a name with spaces", "somedata");
}

private const string Expected =
"-------------------------------28947758029299\r\n" +
"Content-Disposition: form-data; name=\"foo\"\r\n\r\n" +
"bar\r\n" +
"-------------------------------28947758029299\r\n" +
"Content-Disposition: form-data; name=\"a name with spaces\"\r\n\r\n" +
"somedata\r\n" +
"-------------------------------28947758029299--\r\n";

private void EchoHandler(HttpListenerContext obj)
private static void EchoHandler(HttpListenerContext obj)
{
obj.Response.StatusCode = 200;

var streamReader = new System.IO.StreamReader(obj.Request.InputStream);
var streamReader = new StreamReader(obj.Request.InputStream);

obj.Response.OutputStream.WriteStringUtf8(streamReader.ReadToEnd());
}

private void AddParameters(RestRequest request)
{
request.AddParameter("foo", "bar");
request.AddParameter("a name with spaces", "somedata");
}
}
}
}
3 changes: 0 additions & 3 deletions RestSharp.IntegrationTests/RestSharp.IntegrationTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,6 @@
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework">
<HintPath>..\packages\NUnit.2.6.3\lib\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
Expand Down
1 change: 0 additions & 1 deletion RestSharp.IntegrationTests/packages.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NUnit" version="2.6.3" targetFramework="net40" />
<package id="xunit" version="1.9.2" targetFramework="net40" />
<package id="xunit.extensions" version="1.9.2" targetFramework="net40" />
</packages>
3 changes: 0 additions & 3 deletions RestSharp.Net4/RestSharp.Net4.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,6 @@
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework">
<HintPath>..\packages\NUnit.2.6.3\lib\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
Expand Down
1 change: 0 additions & 1 deletion RestSharp.Net4/packages.config
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NUnit" version="2.6.3" targetFramework="net40" />
</packages>