Skip to content

Commit f8dab79

Browse files
committed
Filter by query param tests
1 parent 052dd03 commit f8dab79

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

src/test/java/com/typicode/jsonplaceholder/features/Posts.feature

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,3 +190,30 @@ Feature: Posts Endpoint
190190
And I make a GET request to the Posts endpoint with an "id" query parameter of 1
191191
Then the two response bodies are identical
192192

193+
Scenario: Filter by valid query parameter
194+
When I make a GET request to the Posts endpoint with a "userId" query parameter of 1
195+
Then the response has a status code of 200
196+
And the response body follows the "MultiplePosts" JSON schema
197+
And the results array contains 10 elements
198+
And the response body matches the "UserIdPosts" expected response
199+
200+
Scenario Outline: Filter by invalid query parameter value - userId=<userId>
201+
When I make a GET request to the Posts endpoint with a "userId" query parameter of <userId>
202+
Then the response has a status code of 200
203+
And the response body follows the "MultiplePosts" JSON schema
204+
And the results array contains 0 elements
205+
Examples:
206+
| userId |
207+
| 0 |
208+
| 101 |
209+
| -1 |
210+
211+
Scenario: Filter by invalid query parameter
212+
# As the API isn't backed by a working database there is no validation of the query parameter names, meaning
213+
# invalid query params return the full dataset for the chosen endpoint. For a real API this should return an
214+
# error response
215+
When I make a GET request to the Posts endpoint with a "dummy" query parameter of 1
216+
Then the response has a status code of 200
217+
And the response body follows the "MultiplePosts" JSON schema
218+
And the results array contains 100 elements
219+
And the response body matches the "AllPosts" expected response
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
[
2+
{
3+
"userId": 1,
4+
"id": 1,
5+
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
6+
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
7+
},
8+
{
9+
"userId": 1,
10+
"id": 2,
11+
"title": "qui est esse",
12+
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
13+
},
14+
{
15+
"userId": 1,
16+
"id": 3,
17+
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
18+
"body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
19+
},
20+
{
21+
"userId": 1,
22+
"id": 4,
23+
"title": "eum et est occaecati",
24+
"body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit"
25+
},
26+
{
27+
"userId": 1,
28+
"id": 5,
29+
"title": "nesciunt quas odio",
30+
"body": "repudiandae veniam quaerat sunt sed\nalias aut fugiat sit autem sed est\nvoluptatem omnis possimus esse voluptatibus quis\nest aut tenetur dolor neque"
31+
},
32+
{
33+
"userId": 1,
34+
"id": 6,
35+
"title": "dolorem eum magni eos aperiam quia",
36+
"body": "ut aspernatur corporis harum nihil quis provident sequi\nmollitia nobis aliquid molestiae\nperspiciatis et ea nemo ab reprehenderit accusantium quas\nvoluptate dolores velit et doloremque molestiae"
37+
},
38+
{
39+
"userId": 1,
40+
"id": 7,
41+
"title": "magnam facilis autem",
42+
"body": "dolore placeat quibusdam ea quo vitae\nmagni quis enim qui quis quo nemo aut saepe\nquidem repellat excepturi ut quia\nsunt ut sequi eos ea sed quas"
43+
},
44+
{
45+
"userId": 1,
46+
"id": 8,
47+
"title": "dolorem dolore est ipsam",
48+
"body": "dignissimos aperiam dolorem qui eum\nfacilis quibusdam animi sint suscipit qui sint possimus cum\nquaerat magni maiores excepturi\nipsam ut commodi dolor voluptatum modi aut vitae"
49+
},
50+
{
51+
"userId": 1,
52+
"id": 9,
53+
"title": "nesciunt iure omnis dolorem tempora et accusantium",
54+
"body": "consectetur animi nesciunt iure dolore\nenim quia ad\nveniam autem ut quam aut nobis\net est aut quod aut provident voluptas autem voluptas"
55+
},
56+
{
57+
"userId": 1,
58+
"id": 10,
59+
"title": "optio molestias id quia eum",
60+
"body": "quo et expedita modi cum officia vel magni\ndoloribus qui repudiandae\nvero nisi sit\nquos veniam quod sed accusamus veritatis error"
61+
}
62+
]

0 commit comments

Comments
 (0)