summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorMavlushechka <mavlushechka@gmail.com>2022-09-28 21:30:51 +0500
committerMavlushechka <mavlushechka@gmail.com>2022-09-28 21:30:51 +0500
commit7feee798685959f4e234e9f86f53187542d39f1e (patch)
tree5d3259630b8d4a6ee0e0e295561c97f4d1d87553 /src/test
parent8a762782bc9abfc5b11207ed2e31e94a21fe78ad (diff)
Solve 1st test case
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/mavlushechka/a1qa/TestCase1.java96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/test/java/com/mavlushechka/a1qa/TestCase1.java b/src/test/java/com/mavlushechka/a1qa/TestCase1.java
new file mode 100644
index 0000000..a823980
--- /dev/null
+++ b/src/test/java/com/mavlushechka/a1qa/TestCase1.java
@@ -0,0 +1,96 @@
+package com.mavlushechka.a1qa;
+
+import com.mavlushechka.a1qa.models.Post;
+import com.mavlushechka.a1qa.models.User;
+import com.mavlushechka.a1qa.utils.*;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.stream.IntStream;
+
+public class TestCase1 extends BaseTest {
+
+ @Test
+ public void test1() throws IOException {
+ String postsSpec = JSONParser.parseData("testData", "testCases[0].steps[0].spec");
+ String postsRequestMethod = JSONParser.parseData("testData", "testCases[0].steps[0].requestMethod");
+ int postsResponseCode = URLConnectionManager.getResponseCode(postsSpec, postsRequestMethod);
+ Assert.assertEquals(postsResponseCode, Integer.parseInt(JSONParser.parseData("testData", "testCases[0].steps[0].responseCode")), "Response code is not correct.");
+ LoggerUtils.step("Send GET Request to get all posts (/posts).");
+ String postsJson = URLConnectionManager.get(postsSpec);
+ Assert.assertTrue(JSONParser.isJson(postsJson), "Response is not json.");
+ Object[] posts = JSONParser.convertArray(postsJson, Post.class);
+ ArrayList<Post> postsArrayList = new ArrayList<>();
+ for (Object post : posts) {
+ postsArrayList.add((Post) post);
+ }
+ boolean isPostsAscending = IntStream.range(1, postsArrayList.size())
+ .map(index -> postsArrayList.get(index - 1).compareTo(postsArrayList.get(index)))
+ .allMatch(order -> order <= 0);
+ Assert.assertTrue(isPostsAscending, "Posts are not sorted ascending.");
+
+ String post99Spec = JSONParser.parseData("testData", "testCases[0].steps[1].spec");
+ String post99RequestMethod = JSONParser.parseData("testData", "testCases[0].steps[1].requestMethod");
+ int post99ResponseCode = URLConnectionManager.getResponseCode(post99Spec, post99RequestMethod);
+ Assert.assertEquals(post99ResponseCode, Integer.parseInt(JSONParser.parseData("testData", "testCases[0].steps[1].responseCode")), "Response code is not correct.");
+ LoggerUtils.step("Send GET request to get post with id=99 (/posts/99).");
+ String post99Json = URLConnectionManager.get(post99Spec);
+ Post post99 = JSONParser.convertToObject(post99Json, Post.class);
+ Assert.assertEquals(post99.id, JSONParser.parseData("testData", "testCases[0].steps[1].post.id"), "Post id is not correct.");
+ Assert.assertEquals(post99.userId, JSONParser.parseData("testData", "testCases[0].steps[1].post.userId"), "Post user id is not correct.");
+ Assert.assertEquals(post99.title.isEmpty(), Boolean.parseBoolean(JSONParser.parseData("testData", "testCases[0].steps[1].post.isTitleEmpty")), "Post title is not correct.");
+ Assert.assertEquals(post99.body.isEmpty(), Boolean.parseBoolean(JSONParser.parseData("testData", "testCases[0].steps[1].post.isBodyEmpty")), "Post body is not correct.");
+
+ String post150Spec = JSONParser.parseData("testData", "testCases[0].steps[2].spec");
+ String post150RequestMethod = JSONParser.parseData("testData", "testCases[0].steps[2].requestMethod");
+ int post150ResponseCode = URLConnectionManager.getResponseCode(post150Spec, post150RequestMethod);
+ Assert.assertEquals(post150ResponseCode, Integer.parseInt(JSONParser.parseData("testData", "testCases[0].steps[2].responseCode")), "Response code is not correct.");
+ LoggerUtils.step("Send GET request to get post with id=150 (/posts/150).");
+ String post150Json;
+ try {
+ post150Json = URLConnectionManager.get(post150Spec);
+ } catch (IOException ioException) {
+ post150Json = "{}";
+ }
+ Assert.assertEquals(JSONParser.isBodyEmpty(post150Json), Boolean.parseBoolean(JSONParser.parseData("testData", "testCases[0].steps[2].isResponseBodyEmpty")), "Response body is not correct.");
+
+ String postSpec = JSONParser.parseData("testData", "testCases[0].steps[3].spec");
+ String postRequestMethod = JSONParser.parseData("testData", "testCases[0].steps[3].requestMethod");
+ Post post = new Post(
+ String.valueOf(postsArrayList.size()+1),
+ StringUtils.generateRandomText(Integer.parseInt(JSONParser.parseData("config", "randomTextGenerator.lettersLowerBound")), Integer.parseInt(JSONParser.parseData("config", "randomTextGenerator.lettersUpperBound")), Integer.parseInt(JSONParser.parseData("config", "randomTextGenerator.length"))),
+ StringUtils.generateRandomText(Integer.parseInt(JSONParser.parseData("config", "randomTextGenerator.lettersLowerBound")), Integer.parseInt(JSONParser.parseData("config", "randomTextGenerator.lettersUpperBound")), Integer.parseInt(JSONParser.parseData("config", "randomTextGenerator.length"))),
+ JSONParser.parseData("testData", "testCases[0].steps[3].post.userId")
+ );
+ int postResponseCode = URLConnectionManager.getResponseCode(postSpec, postRequestMethod);
+ Assert.assertEquals(postResponseCode, Integer.parseInt(JSONParser.parseData("testData", "testCases[0].steps[3].responseCode")), "Response code is not correct.");
+ LoggerUtils.step("Send POST request to create post with userId=1 and random body and random title (/posts).");
+ String postJson = URLConnectionManager.post(postSpec, JSONParser.convertToJSON(post));
+ Assert.assertEquals(post, JSONParser.convertToObject(postJson, Post.class), "Post information is not correct.");
+
+ String usersSpec = JSONParser.parseData("testData", "testCases[0].steps[4].spec");
+ String usersRequestMethod = JSONParser.parseData("testData", "testCases[0].steps[4].requestMethod");
+ int usersResponseCode = URLConnectionManager.getResponseCode(usersSpec, usersRequestMethod);
+ Assert.assertEquals(usersResponseCode, Integer.parseInt(JSONParser.parseData("testData", "testCases[0].steps[4].responseCode")), "Response code is not correct.");
+ LoggerUtils.step("Send GET request to get users (/users).");
+ Object[] users = JSONParser.convertArray(URLConnectionManager.get(usersSpec), User.class);
+ User user = null;
+ for (Object userObject : users) {
+ if (Integer.parseInt(((User) userObject).id) == Integer.parseInt(JSONParser.parseData("testData", "testCases[0].steps[4].user.id"))) {
+ user = (User) userObject;
+ }
+ }
+ Assert.assertEquals(JSONParser.convertToObject(JSONParser.parseObject("testData", "testCases[0].steps[4].user"), User.class), user, "User information is not correct.");
+
+ String user5Spec = JSONParser.parseData("testData", "testCases[0].steps[5].spec");
+ String user5RequestMethod = JSONParser.parseData("testData", "testCases[0].steps[5].requestMethod");
+ int user5ResponseCode = URLConnectionManager.getResponseCode(user5Spec, user5RequestMethod);
+ Assert.assertEquals(user5ResponseCode, Integer.parseInt(JSONParser.parseData("testData", "testCases[0].steps[5].responseCode")), "Response code is not correct.");
+ LoggerUtils.step("Send GET request to get user with id=5 (/users/5).");
+ Object user5 = JSONParser.convertToObject(URLConnectionManager.get(user5Spec), User.class);
+ Assert.assertEquals(user, user5, "User information is not correct.");
+ }
+
+}