forked from WebApiContrib/WebAPIContrib
/
EncodingHandlerTests.cs
42 lines (37 loc) · 1.51 KB
/
EncodingHandlerTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web.Http;
using NUnit.Framework;
using WebApiContrib.MessageHandlers;
using WebApiContribTests.Helpers;
namespace WebApiContribTests.MessageHandlers
{
[TestFixture]
public class EncodingHandlerTests
{
[Test]
public void Post_Lots_Of_Contacts_Using_EncodingHandler_Test()
{
var config = new HttpConfiguration();
config.Routes.MapHttpRoute("default", "api/{controller}/{id}", new { id = RouteParameter.Optional });
config.MessageHandlers.Add(new EncodingHandler());
var server = new HttpServer(config);
var client = new HttpClient(new EncodingHandler(server));
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-protobuf"));
var content = new List<Contact>();
for (int i = 0; i < 1000; i++)
{
var c = new Contact { Id = i };
content.Add(c);
}
var request = new HttpRequestMessage();
request.Content = new ObjectContent(typeof(List<Contact>), content, config.Formatters.JsonFormatter);
var response = client.PostAsync("http://anything/api/contacts", request.Content).Result;
Assert.IsNotNull(response);
Assert.IsTrue(response.StatusCode == HttpStatusCode.Created);
}
}
}