delete_tests.cpp
Go to the documentation of this file.
1 #include <gtest/gtest.h>
2 
3 #include <string>
4 
5 #include <cpr/cpr.h>
6 
7 #include "server.h"
8 
9 using namespace cpr;
10 
11 static Server* server = new Server();
12 auto base = server->GetBaseUrl();
13 
14 TEST(DeleteTests, DeleteTest) {
15  auto url = Url{base + "/delete.html"};
16  auto response = cpr::Delete(url);
17  auto expected_text = std::string{"Delete success"};
18  EXPECT_EQ(expected_text, response.text);
19  EXPECT_EQ(url, response.url);
20  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
21  EXPECT_EQ(200, response.status_code);
22  EXPECT_EQ(ErrorCode::OK, response.error.code);
23 }
24 
25 TEST(DeleteTests, DeleteUnallowedTest) {
26  auto url = Url{base + "/delete_unallowed.html"};
27  auto response = cpr::Delete(url);
28  auto expected_text = std::string{"Method unallowed"};
29  EXPECT_EQ(expected_text, response.text);
30  EXPECT_EQ(url, response.url);
31  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
32  EXPECT_EQ(405, response.status_code);
33  EXPECT_EQ(ErrorCode::OK, response.error.code);
34 }
35 
36 TEST(DeleteTests, DeleteJsonBodyTest) {
37  auto url = Url{base + "/delete.html"};
38  auto response = cpr::Delete(url, cpr::Body{"'foo': 'bar'"}, cpr::Header{{"Content-Type", "application/json"}});
39  auto expected_text = std::string{"'foo': 'bar'"};
40  EXPECT_EQ(expected_text, response.text);
41  EXPECT_EQ(url, response.url);
42  EXPECT_EQ(std::string{"application/json"}, response.header["content-type"]);
43  EXPECT_EQ(200, response.status_code);
44  EXPECT_EQ(ErrorCode::OK, response.error.code);
45 }
46 
47 TEST(DeleteTests, SessionDeleteTest) {
48  auto url = Url{base + "/delete.html"};
49  Session session;
50  session.SetUrl(url);
51  auto response = session.Delete();
52  auto expected_text = std::string{"Delete success"};
53  EXPECT_EQ(expected_text, response.text);
54  EXPECT_EQ(url, response.url);
55  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
56  EXPECT_EQ(200, response.status_code);
57  EXPECT_EQ(ErrorCode::OK, response.error.code);
58 }
59 
60 TEST(DeleteTests, SessionDeleteUnallowedTest) {
61  auto url = Url{base + "/delete_unallowed.html"};
62  Session session;
63  session.SetUrl(url);
64  auto response = session.Delete();
65  auto expected_text = std::string{"Method unallowed"};
66  EXPECT_EQ(expected_text, response.text);
67  EXPECT_EQ(url, response.url);
68  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
69  EXPECT_EQ(405, response.status_code);
70  EXPECT_EQ(ErrorCode::OK, response.error.code);
71 }
72 
73 TEST(DeleteTests, SessionDeleteJsonBodyTest) {
74  auto url = Url{base + "/delete.html"};
75  Session session;
76  session.SetUrl(url);
77  session.SetHeader(cpr::Header{{"Content-Type", "application/json"}});
78  session.SetBody(cpr::Body{"{'foo': 'bar'}"});
79  auto response = session.Delete();
80  auto expected_text = std::string{"{'foo': 'bar'}"};
81  EXPECT_EQ(expected_text, response.text);
82  EXPECT_EQ(url, response.url);
83  EXPECT_EQ(std::string{"application/json"}, response.header["content-type"]);
84  EXPECT_EQ(200, response.status_code);
85  EXPECT_EQ(ErrorCode::OK, response.error.code);
86 }
87 
88 TEST(DeleteTests, SessionDeleteAfterGetTest) {
89  Session session;
90  {
91  auto url = Url{base + "/get.html"};
92  session.SetUrl(url);
93  auto response = session.Get();
94  }
95  auto url = Url{base + "/delete.html"};
96  session.SetUrl(url);
97  auto response = session.Delete();
98  auto expected_text = std::string{"Delete success"};
99  EXPECT_EQ(expected_text, response.text);
100  EXPECT_EQ(url, response.url);
101  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
102  EXPECT_EQ(200, response.status_code);
103  EXPECT_EQ(ErrorCode::OK, response.error.code);
104 }
105 
106 TEST(DeleteTests, SessionDeleteUnallowedAfterGetTest) {
107  Session session;
108  {
109  auto url = Url{base + "/get.html"};
110  session.SetUrl(url);
111  auto response = session.Get();
112  }
113  auto url = Url{base + "/delete_unallowed.html"};
114  session.SetUrl(url);
115  auto response = session.Delete();
116  auto expected_text = std::string{"Method unallowed"};
117  EXPECT_EQ(expected_text, response.text);
118  EXPECT_EQ(url, response.url);
119  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
120  EXPECT_EQ(405, response.status_code);
121  EXPECT_EQ(ErrorCode::OK, response.error.code);
122 }
123 
124 TEST(DeleteTests, SessionDeleteAfterHeadTest) {
125  Session session;
126  {
127  auto url = Url{base + "/get.html"};
128  session.SetUrl(url);
129  auto response = session.Head();
130  }
131  auto url = Url{base + "/delete.html"};
132  session.SetUrl(url);
133  auto response = session.Delete();
134  auto expected_text = std::string{"Delete success"};
135  EXPECT_EQ(expected_text, response.text);
136  EXPECT_EQ(url, response.url);
137  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
138  EXPECT_EQ(200, response.status_code);
139  EXPECT_EQ(ErrorCode::OK, response.error.code);
140 }
141 
142 TEST(DeleteTests, SessionDeleteUnallowedAfterHeadTest) {
143  Session session;
144  {
145  auto url = Url{base + "/get.html"};
146  session.SetUrl(url);
147  auto response = session.Head();
148  }
149  auto url = Url{base + "/delete_unallowed.html"};
150  session.SetUrl(url);
151  auto response = session.Delete();
152  auto expected_text = std::string{"Method unallowed"};
153  EXPECT_EQ(expected_text, response.text);
154  EXPECT_EQ(url, response.url);
155  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
156  EXPECT_EQ(405, response.status_code);
157  EXPECT_EQ(ErrorCode::OK, response.error.code);
158 }
159 
160 TEST(DeleteTests, SessionDeleteAfterPostTest) {
161  Session session;
162  {
163  auto url = Url{base + "/url_post.html"};
164  auto payload = Payload{{"x", "5"}};
165  session.SetUrl(url);
166  auto response = session.Post();
167  }
168  auto url = Url{base + "/delete.html"};
169  session.SetUrl(url);
170  auto response = session.Delete();
171  auto expected_text = std::string{"Delete success"};
172  EXPECT_EQ(expected_text, response.text);
173  EXPECT_EQ(url, response.url);
174  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
175  EXPECT_EQ(200, response.status_code);
176  EXPECT_EQ(ErrorCode::OK, response.error.code);
177 }
178 
179 TEST(DeleteTests, SessionDeleteUnallowedAfterPostTest) {
180  Session session;
181  {
182  auto url = Url{base + "/url_post.html"};
183  auto payload = Payload{{"x", "5"}};
184  session.SetUrl(url);
185  auto response = session.Post();
186  }
187  auto url = Url{base + "/delete_unallowed.html"};
188  session.SetUrl(url);
189  auto response = session.Delete();
190  auto expected_text = std::string{"Method unallowed"};
191  EXPECT_EQ(expected_text, response.text);
192  EXPECT_EQ(url, response.url);
193  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
194  EXPECT_EQ(405, response.status_code);
195  EXPECT_EQ(ErrorCode::OK, response.error.code);
196 }
197 
198 TEST(DeleteTests, AsyncDeleteTest) {
199  auto url = Url{base + "/delete.html"};
200  auto future_response = cpr::DeleteAsync(url);
201  auto response = future_response.get();
202  auto expected_text = std::string{"Delete success"};
203  EXPECT_EQ(expected_text, response.text);
204  EXPECT_EQ(url, response.url);
205  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
206  EXPECT_EQ(200, response.status_code);
207  EXPECT_EQ(ErrorCode::OK, response.error.code);
208 }
209 
210 TEST(DeleteTests, AsyncDeleteUnallowedTest) {
211  auto url = Url{base + "/delete_unallowed.html"};
212  auto future_response = cpr::DeleteAsync(url);
213  auto response = future_response.get();
214  auto expected_text = std::string{"Method unallowed"};
215  EXPECT_EQ(expected_text, response.text);
216  EXPECT_EQ(url, response.url);
217  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
218  EXPECT_EQ(405, response.status_code);
219  EXPECT_EQ(ErrorCode::OK, response.error.code);
220 }
221 
222 TEST(DeleteTests, AsyncMultipleDeleteTest) {
223  auto url = Url{base + "/delete.html"};
224  std::vector<AsyncResponse> responses;
225  for (int i = 0; i < 10; ++i) {
226  responses.emplace_back(cpr::DeleteAsync(url));
227  }
228  for (auto& future_response : responses) {
229  auto response = future_response.get();
230  auto expected_text = std::string{"Delete success"};
231  EXPECT_EQ(expected_text, response.text);
232  EXPECT_EQ(url, response.url);
233  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
234  EXPECT_EQ(200, response.status_code);
235  EXPECT_EQ(ErrorCode::OK, response.error.code);
236  }
237 }
238 
239 TEST(DeleteTests, AsyncMultipleDeleteUnallowedTest) {
240  auto url = Url{base + "/delete_unallowed.html"};
241  std::vector<AsyncResponse> responses;
242  for (int i = 0; i < 10; ++i) {
243  responses.emplace_back(cpr::DeleteAsync(url));
244  }
245  for (auto& future_response : responses) {
246  auto response = future_response.get();
247  auto expected_text = std::string{"Method unallowed"};
248  EXPECT_EQ(expected_text, response.text);
249  EXPECT_EQ(url, response.url);
250  EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
251  EXPECT_EQ(405, response.status_code);
252  EXPECT_EQ(ErrorCode::OK, response.error.code);
253  }
254 }
255 
256 int main(int argc, char** argv) {
257  ::testing::InitGoogleTest(&argc, argv);
259  return RUN_ALL_TESTS();
260 }
Response Post()
Definition: session.cpp:502
Environment * AddGlobalTestEnvironment(Environment *env)
Definition: gtest.h:1342
Definition: server.h:12
std::string Url
Definition: cprtypes.h:14
static Server * server
Definition: body.h:13
::std::string string
Definition: gtest-port.h:1129
Response Head()
Definition: session.cpp:499
void SetUrl(const Url &url)
Definition: session.cpp:452
std::map< std::string, std::string, CaseInsensitiveCompare > Header
Definition: cprtypes.h:13
auto base
unsigned int i
Definition: unit1303.c:79
Response Get()
Definition: session.cpp:498
AsyncResponse DeleteAsync(Ts...ts)
Definition: api.h:138
Response Delete(Ts &&...ts)
Definition: api.h:130
int main(int argc, char **argv)
void SetBody(Body &&body)
Definition: session.cpp:471
Url GetBaseUrl()
Definition: server.cpp:625
void SetHeader(const Header &header)
Definition: session.cpp:455
#define EXPECT_EQ(expected, actual)
Definition: gtest.h:2015
Definition: auth.cpp:3
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: gtest.h:2325
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: gtest.cc:5292
Response Delete()
Definition: session.cpp:497
TEST(DeleteTests, DeleteTest)


rc_tagdetect_client
Author(s): Monika Florek-Jasinska , Raphael Schaller
autogenerated on Sat Feb 13 2021 03:42:08