@@ -11,11 +11,40 @@ public class SuccessCurlGeneratorTests
1111 #region :: GenerateCurl_For_PostMethod ::
1212
1313 [ Theory ]
14- public void GenerateCurl_For_PostMethods ( )
14+ public void GenerateCurl_Without_Body_For_PostMethod ( )
1515 {
1616 // Arrange
1717 var requestUri = "api/test" ;
1818 var httpRequestMessage = new HttpRequestMessage ( HttpMethod . Post , requestUri ) ;
19+ httpRequestMessage . Content = new StringContent ( string . Empty , Encoding . UTF8 , "application/json" ) ;
20+ httpRequestMessage . Headers . Add ( "Authorization" , "c332e9a1-1e0e-44c2-b819-b0e7e8ff7d45" ) ;
21+
22+ using var httpClient = new HttpClient ( ) ;
23+ httpClient . BaseAddress = new Uri ( "http://localhost:1213" ) ;
24+
25+ // Act
26+ string script = Generator . GenerateCurl (
27+ httpClient ,
28+ httpRequestMessage ,
29+ requestUri ,
30+ true ) ;
31+
32+ // Assert
33+ Assert . That ( script , Is . Not . Null ) ;
34+ Assert . That ( script , Is . Not . Empty ) ;
35+ Assert . That ( script , Does . StartWith ( "curl -X POST" ) ) ;
36+ Assert . That ( script ? . Trim ( ) ,
37+ Is . EqualTo (
38+ @"curl -X POST http://localhost:1213/api/test -H 'Authorization: c332e9a1-1e0e-44c2-b819-b0e7e8ff7d45' -H 'Content-Type: application/json; charset=utf-8' -d ''" ) ) ;
39+ }
40+
41+ [ Theory ]
42+ public void GenerateCurl_Without_Content_For_PostMethod ( )
43+ {
44+ // Arrange
45+ var requestUri = "api/test" ;
46+ var httpRequestMessage = new HttpRequestMessage ( HttpMethod . Post , requestUri ) ;
47+ httpRequestMessage . Content = null ;
1948 httpRequestMessage . Headers . Add ( "Authorization" , "56bfa7a0-0541-4d71-9efc-8b28219ac31a" ) ;
2049
2150 using var httpClient = new HttpClient ( ) ;
@@ -67,6 +96,37 @@ public void GenerateCurl_For_PostMethod()
6796 @"curl -X POST http://localhost:1213/api/test -H 'Authorization: 4797c126-3f8a-454a-aff1-96c0220dae61' -H 'Content-Type: application/json; charset=utf-8' -d '{ ""name"" : ""sara"",""requestId"" : 10001001,""amount"":20000 }'" ) ) ;
6897 }
6998
99+ [ Theory ]
100+ public void GenerateCurl_With_ContentLength_For_PostMethod ( )
101+ {
102+ // Arrange
103+ string requestBody = @"{ ""name"" : ""sara"",""requestId"" : 10001001,""amount"":20000 }" ;
104+
105+ var requestUri = "api/test" ;
106+ var httpRequestMessage = new HttpRequestMessage ( HttpMethod . Post , requestUri ) ;
107+ httpRequestMessage . Content = new StringContent ( requestBody , Encoding . UTF8 , MediaTypeNames . Application . Json ) ;
108+ httpRequestMessage . Headers . Add ( "Authorization" , "f69406a4-6b62-4734-a8dc-158f0fc308ab" ) ;
109+ httpRequestMessage . Headers . Add ( "ContentLength" , "123" ) ;
110+
111+ using var httpClient = new HttpClient ( ) ;
112+ httpClient . BaseAddress = new Uri ( "http://localhost:1213" ) ;
113+
114+ // Act
115+ string script = Generator . GenerateCurl (
116+ httpClient ,
117+ httpRequestMessage ,
118+ requestUri ,
119+ true ) ;
120+
121+ // Assert
122+ Assert . That ( script , Is . Not . Null ) ;
123+ Assert . That ( script , Is . Not . Empty ) ;
124+ Assert . That ( script , Does . StartWith ( "curl -X POST" ) ) ;
125+ Assert . That ( script ? . Trim ( ) ,
126+ Is . EqualTo (
127+ @"curl -X POST http://localhost:1213/api/test -H 'Authorization: f69406a4-6b62-4734-a8dc-158f0fc308ab' -H 'Content-Type: application/json; charset=utf-8' -d '{ ""name"" : ""sara"",""requestId"" : 10001001,""amount"":20000 }'" ) ) ;
128+ }
129+
70130 [ Theory ]
71131 public void GenerateCurl_With_QueryString_For_PostMethod ( )
72132 {
0 commit comments