Skip to content

Commit a869b5d

Browse files
committed
tests: composed request test
1 parent fd72240 commit a869b5d

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

test/is-prime/is-prime-request-test.cpp

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ TEST_CASE("is_prime_request_builder handles invalid requests", "[request]")
9393

9494
SECTION("Valid request with prime number")
9595
{
96-
char raw_request[] = "{\"method\":\"isPrime\",\"number\":foo}\n";
96+
char raw_request[] = "{\"method\":\"isPrime\",\"number\":\"foo\"}\n";
9797
REQUIRE(is_prime_request_builder(&request, raw_request, strlen(raw_request))
9898
== 1);
9999
REQUIRE(request != NULL);
@@ -103,6 +103,40 @@ TEST_CASE("is_prime_request_builder handles invalid requests", "[request]")
103103
REQUIRE(strcmp(request->response, PRIME_MALFORMED) == 0);
104104
}
105105

106+
SECTION("Invalid composite request with prime number; followed by non prime request")
107+
{
108+
char raw_request[] =
109+
"{\"method\":\"isPrime\",\"number\":17}\n"
110+
"{\"method\":\"isPrime\",\"number\":24}\n"
111+
"{\"method\":\"isPrime\",\"number\":13}\n"
112+
"{\"method\":\"isPrime\",\"number\":\"hola\"}\n"
113+
"{\"method\":\"isPrime\",\"number\":23}\n";
114+
REQUIRE(is_prime_request_builder(&request, raw_request, strlen(raw_request))
115+
== 4);
116+
REQUIRE(request != NULL);
117+
REQUIRE(request->number == 17);
118+
REQUIRE(request->is_prime == true);
119+
REQUIRE(request->next != NULL);
120+
REQUIRE(strcmp(request->response, PRIME_TRUE) == 0);
121+
122+
struct is_prime_request *next = request->next;
123+
REQUIRE(next->number == 24);
124+
REQUIRE(next->is_prime == false);
125+
REQUIRE(next->next != NULL);
126+
REQUIRE(strcmp(next->response, PRIME_FALSE) == 0);
127+
128+
next = next->next;
129+
REQUIRE(next->number == 13);
130+
REQUIRE(next->is_prime == true);
131+
REQUIRE(next->next != NULL);
132+
REQUIRE(strcmp(next->response, PRIME_TRUE) == 0);
133+
134+
next = next->next;
135+
REQUIRE(next->number < 0);
136+
REQUIRE(next->is_prime == false);
137+
REQUIRE(next->next == NULL);
138+
REQUIRE(strcmp(next->response, PRIME_MALFORMED) == 0);
139+
}
106140

107141
if (request)
108142
is_prime_free(&request);

0 commit comments

Comments
 (0)