Skip to content

Commit f678a62

Browse files
committed
Add basic method tests - it begins!
1 parent 91016a7 commit f678a62

File tree

1 file changed

+94
-3
lines changed

1 file changed

+94
-3
lines changed
+94-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
using System.Net.Http;
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Net;
4+
using System.Net.Http;
5+
using System.Runtime.Serialization;
26
using System.Threading.Tasks;
37
using Xunit;
48

@@ -9,13 +13,100 @@ public class HttpTests
913
[Fact]
1014
public async Task BasicCreation()
1115
{
12-
var request = Http.Request("https://google.com/")
16+
var request = Http.Request("https://example.com/")
1317
.SendPlaintext("test")
1418
.ExpectString();
15-
Assert.Equal("https://google.com/", request.Inner.Message.RequestUri.ToString());
19+
Assert.Equal("https://example.com/", request.Inner.Message.RequestUri.ToString());
1620
var content = Assert.IsType<StringContent>(request.Inner.Message.Content);
1721
var stringContent = await content.ReadAsStringAsync();
1822
Assert.Equal("test", stringContent);
1923
}
24+
25+
[Fact]
26+
public async Task BasicGet()
27+
{
28+
var guid = Guid.NewGuid().ToString();
29+
var result = await Http.Request("https://httpbin.org/get")
30+
.ExpectJson<HttpBinResponse>()
31+
.GetAsync();
32+
Assert.True(result.Success);
33+
Assert.Equal(HttpStatusCode.OK, result.StatusCode);
34+
Assert.NotNull(result);
35+
Assert.Equal("https://httpbin.org/get", result.Data.Url);
36+
Assert.Equal(Http.DefaultSettings.UserAgent, result.Data.Headers["User-Agent"]);
37+
}
38+
39+
[Fact]
40+
public async Task BasicPost()
41+
{
42+
var guid = Guid.NewGuid().ToString();
43+
var result = await Http.Request("https://httpbin.org/post")
44+
.SendPlaintext(guid)
45+
.ExpectJson<HttpBinResponse>()
46+
.PostAsync();
47+
Assert.True(result.Success);
48+
Assert.Equal(HttpStatusCode.OK, result.StatusCode);
49+
Assert.NotNull(result);
50+
Assert.True(result.Data.Form.ContainsKey(guid));
51+
Assert.Equal("https://httpbin.org/post", result.Data.Url);
52+
Assert.Equal(Http.DefaultSettings.UserAgent, result.Data.Headers["User-Agent"]);
53+
}
54+
55+
[Fact]
56+
public async Task BasicPut()
57+
{
58+
var guid = Guid.NewGuid().ToString();
59+
var result = await Http.Request("https://httpbin.org/put")
60+
.SendPlaintext(guid)
61+
.ExpectJson<HttpBinResponse>()
62+
.PutAsync();
63+
Assert.True(result.Success);
64+
Assert.Equal(HttpStatusCode.OK, result.StatusCode);
65+
Assert.True(result.Data.Form.ContainsKey(guid));
66+
Assert.Equal("https://httpbin.org/put", result.Data.Url);
67+
Assert.Equal(Http.DefaultSettings.UserAgent, result.Data.Headers["User-Agent"]);
68+
}
69+
70+
[Fact]
71+
public async Task BasicDelete()
72+
{
73+
var guid = Guid.NewGuid().ToString();
74+
var result = await Http.Request("https://httpbin.org/delete")
75+
.SendPlaintext(guid)
76+
.ExpectJson<HttpBinResponse>()
77+
.DeleteAsync();
78+
Assert.True(result.Success);
79+
Assert.Equal(HttpStatusCode.OK, result.StatusCode);
80+
Assert.True(result.Data.Form.ContainsKey(guid));
81+
Assert.Equal("https://httpbin.org/delete", result.Data.Url);
82+
Assert.Equal(Http.DefaultSettings.UserAgent, result.Data.Headers["User-Agent"]);
83+
}
84+
85+
private class HttpBinResponse
86+
{
87+
[DataMember(Name = "args")]
88+
public Dictionary<string, string> args { get; set; }
89+
90+
[DataMember(Name = "data")]
91+
public string Data { get; set; }
92+
93+
[DataMember(Name = "files")]
94+
public Dictionary<string, string> files { get; set; }
95+
96+
[DataMember(Name = "form")]
97+
public Dictionary<string, string> Form { get; set; }
98+
99+
[DataMember(Name = "headers")]
100+
public Dictionary<string, string> Headers { get; set; }
101+
102+
[DataMember(Name = "json")]
103+
public object JSON { get; set; }
104+
105+
[DataMember(Name = "origin")]
106+
public string Origin { get; set; }
107+
108+
[DataMember(Name = "url")]
109+
public string Url { get; set; }
110+
}
20111
}
21112
}

0 commit comments

Comments
 (0)