alternating_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(AlternatingTests, PutGetTest) {
15  auto url = Url{base + "/header_reflect.html"};
16  Session session;
17  session.SetUrl(url);
18 
19  {
20  auto payload = Payload{{"x", "5"}};
21  auto response = cpr::Put(url, payload);
22  auto expected_text = std::string{"Header reflect PUT"};
23  EXPECT_EQ(expected_text, response.text);
24  EXPECT_EQ(url, response.url);
25  EXPECT_EQ(200, response.status_code);
26  EXPECT_EQ(ErrorCode::OK, response.error.code);
27  }
28 
29  {
30  auto response = cpr::Get(url);
31  auto expected_text = std::string{"Header reflect GET"};
32  EXPECT_EQ(expected_text, response.text);
33  EXPECT_EQ(url, response.url);
34  EXPECT_EQ(200, response.status_code);
35  EXPECT_EQ(ErrorCode::OK, response.error.code);
36  }
37 }
38 
39 TEST(AlternatingTests, PutGetPutGetTest) {
40  auto url = Url{base + "/header_reflect.html"};
41  Session session;
42  session.SetUrl(url);
43 
44  {
45  auto payload = Payload{{"x", "5"}};
46  auto response = cpr::Put(url, payload);
47  auto expected_text = std::string{"Header reflect PUT"};
48  EXPECT_EQ(expected_text, response.text);
49  EXPECT_EQ(url, response.url);
50  EXPECT_EQ(200, response.status_code);
51  EXPECT_EQ(ErrorCode::OK, response.error.code);
52  }
53 
54  {
55  auto response = cpr::Get(url);
56  auto expected_text = std::string{"Header reflect GET"};
57  EXPECT_EQ(expected_text, response.text);
58  EXPECT_EQ(url, response.url);
59  EXPECT_EQ(200, response.status_code);
60  EXPECT_EQ(ErrorCode::OK, response.error.code);
61  }
62 
63  {
64  auto payload = Payload{{"x", "5"}};
65  auto response = cpr::Put(url, payload);
66  auto expected_text = std::string{"Header reflect PUT"};
67  EXPECT_EQ(expected_text, response.text);
68  EXPECT_EQ(url, response.url);
69  EXPECT_EQ(200, response.status_code);
70  EXPECT_EQ(ErrorCode::OK, response.error.code);
71  }
72 
73  {
74  auto response = cpr::Get(url);
75  auto expected_text = std::string{"Header reflect GET"};
76  EXPECT_EQ(expected_text, response.text);
77  EXPECT_EQ(url, response.url);
78  EXPECT_EQ(200, response.status_code);
79  EXPECT_EQ(ErrorCode::OK, response.error.code);
80  }
81 }
82 
83 TEST(AlternatingTests, HeadGetTest) {
84  auto url = Url{base + "/header_reflect.html"};
85  Session session;
86  session.SetUrl(url);
87 
88  {
89  // Head shouldn't return a body
90  auto response = cpr::Head(url);
91  auto expected_text = std::string{""};
92  EXPECT_EQ(expected_text, response.text);
93  EXPECT_EQ(url, response.url);
94  EXPECT_EQ(200, response.status_code);
95  EXPECT_EQ(ErrorCode::OK, response.error.code);
96  }
97 
98  {
99  auto response = cpr::Get(url);
100  auto expected_text = std::string{"Header reflect GET"};
101  EXPECT_EQ(expected_text, response.text);
102  EXPECT_EQ(url, response.url);
103  EXPECT_EQ(200, response.status_code);
104  EXPECT_EQ(ErrorCode::OK, response.error.code);
105  }
106 }
107 
108 TEST(AlternatingTests, PutHeadTest) {
109  auto url = Url{base + "/header_reflect.html"};
110  Session session;
111  session.SetUrl(url);
112 
113  {
114  auto payload = Payload{{"x", "5"}};
115  auto response = cpr::Put(url, payload);
116  auto expected_text = std::string{"Header reflect PUT"};
117  EXPECT_EQ(expected_text, response.text);
118  EXPECT_EQ(url, response.url);
119  EXPECT_EQ(200, response.status_code);
120  EXPECT_EQ(ErrorCode::OK, response.error.code);
121  }
122 
123  {
124  // Head shouldn't return a body
125  auto response = cpr::Head(url);
126  auto expected_text = std::string{""};
127  EXPECT_EQ(expected_text, response.text);
128  EXPECT_EQ(url, response.url);
129  EXPECT_EQ(200, response.status_code);
130  EXPECT_EQ(ErrorCode::OK, response.error.code);
131  }
132 }
133 
134 TEST(AlternatingTests, PutPostTest) {
135  auto url = Url{base + "/header_reflect.html"};
136  Session session;
137  session.SetUrl(url);
138 
139  {
140  auto payload = Payload{{"x", "5"}};
141  auto response = cpr::Put(url, payload);
142  auto expected_text = std::string{"Header reflect PUT"};
143  EXPECT_EQ(expected_text, response.text);
144  EXPECT_EQ(url, response.url);
145  EXPECT_EQ(200, response.status_code);
146  EXPECT_EQ(ErrorCode::OK, response.error.code);
147  }
148 
149  {
150  auto payload = Payload{{"x", "5"}};
151  auto response = cpr::Post(url, payload);
152  auto expected_text = std::string{"Header reflect POST"};
153  EXPECT_EQ(expected_text, response.text);
154  EXPECT_EQ(url, response.url);
155  EXPECT_EQ(200, response.status_code);
156  EXPECT_EQ(ErrorCode::OK, response.error.code);
157  }
158 }
159 
160 int main(int argc, char** argv) {
161  ::testing::InitGoogleTest(&argc, argv);
163  return RUN_ALL_TESTS();
164 }
Environment * AddGlobalTestEnvironment(Environment *env)
Definition: gtest.h:1342
auto base
Definition: server.h:12
std::string Url
Definition: cprtypes.h:14
Response Put(Ts &&...ts)
Definition: api.h:84
::std::string string
Definition: gtest-port.h:1129
void SetUrl(const Url &url)
Definition: session.cpp:452
int main(int argc, char **argv)
static Server * server
Url GetBaseUrl()
Definition: server.cpp:625
TEST(AlternatingTests, PutGetTest)
#define EXPECT_EQ(expected, actual)
Definition: gtest.h:2015
Response Get(Ts &&...ts)
Definition: api.h:38
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 Head(Ts &&...ts)
Definition: api.h:107
Response Post(Ts &&...ts)
Definition: api.h:61


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