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 ;
2
6
using System . Threading . Tasks ;
3
7
using Xunit ;
4
8
@@ -9,13 +13,100 @@ public class HttpTests
9
13
[ Fact ]
10
14
public async Task BasicCreation ( )
11
15
{
12
- var request = Http . Request ( "https://google .com/" )
16
+ var request = Http . Request ( "https://example .com/" )
13
17
. SendPlaintext ( "test" )
14
18
. ExpectString ( ) ;
15
- Assert . Equal ( "https://google .com/" , request . Inner . Message . RequestUri . ToString ( ) ) ;
19
+ Assert . Equal ( "https://example .com/" , request . Inner . Message . RequestUri . ToString ( ) ) ;
16
20
var content = Assert . IsType < StringContent > ( request . Inner . Message . Content ) ;
17
21
var stringContent = await content . ReadAsStringAsync ( ) ;
18
22
Assert . Equal ( "test" , stringContent ) ;
19
23
}
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
+ }
20
111
}
21
112
}
0 commit comments