summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPI.java54
-rw-r--r--src/test/java/com/mavlushechka/a1qa/TestCase1.java28
2 files changed, 65 insertions, 17 deletions
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPI.java b/src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPI.java
new file mode 100644
index 0000000..17e2a87
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPI.java
@@ -0,0 +1,54 @@
+package com.mavlushechka.a1qa.utils;
+
+import com.mavlushechka.a1qa.models.Post;
+import com.mavlushechka.a1qa.models.User;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class JSONPlaceholderAPI {
+
+ public static Post getPost(String spec) throws IOException {
+ return getObject(spec, Post.class);
+ }
+
+ public static List<Post> getPosts(String spec) throws IOException {
+ return getObjects(spec, Post.class);
+ }
+
+ public static Post postPost(String spec, Post post) throws IOException {
+ return postObject(spec, post, Post.class);
+ }
+
+ public static User getUser(String spec) throws IOException {
+ return getObject(spec, User.class);
+ }
+
+ public static List<User> getUsers(String spec) throws IOException {
+ return getObjects(spec, User.class);
+ }
+
+ public static User postUser(String spec, User user) throws IOException {
+ return postObject(spec, user, User.class);
+ }
+
+ private static <T> T getObject(String spec, Class<T> classOfObject) throws IOException {
+ return JSONParser.convertToObject(URLConnectionManager.get(spec), classOfObject);
+ }
+
+ private static <T> List<T> getObjects(String spec, Class<T> classOfObject) throws IOException {
+ Object[] objects = JSONParser.convertArray(URLConnectionManager.get(spec), classOfObject);
+ ArrayList<T> objectsArrayList = new ArrayList<>();
+
+ for (Object object : objects) {
+ objectsArrayList.add((T) object);
+ }
+ return objectsArrayList.stream().toList();
+ }
+
+ private static <T> T postObject(String spec, T object, Class<T> classOfObject) throws IOException {
+ return JSONParser.convertToObject(URLConnectionManager.post(spec, JSONParser.convertToJSON(object)), classOfObject);
+ }
+
+}
diff --git a/src/test/java/com/mavlushechka/a1qa/TestCase1.java b/src/test/java/com/mavlushechka/a1qa/TestCase1.java
index 44be656..cd23dfd 100644
--- a/src/test/java/com/mavlushechka/a1qa/TestCase1.java
+++ b/src/test/java/com/mavlushechka/a1qa/TestCase1.java
@@ -7,7 +7,7 @@ import org.testng.Assert;
import org.testng.annotations.Test;
import java.io.IOException;
-import java.util.ArrayList;
+import java.util.List;
public class TestCase1 extends BaseTest {
@@ -20,20 +20,15 @@ public class TestCase1 extends BaseTest {
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);
- }
- Assert.assertTrue(Posts.isPostsAscending(postsArrayList), "Posts are not sorted ascending.");
+ List<Post> postsList = JSONPlaceholderAPI.getPosts(postsSpec);
+ Assert.assertTrue(Posts.isPostsAscending(postsList), "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);
+ Post post99 = JSONPlaceholderAPI.getPost(post99Spec);
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.");
@@ -55,7 +50,7 @@ public class TestCase1 extends BaseTest {
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),
+ String.valueOf(postsList.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")
@@ -63,19 +58,18 @@ public class TestCase1 extends BaseTest {
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.");
+ Assert.assertEquals(post, JSONPlaceholderAPI.postPost(postSpec, post), "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);
+ List<User> users = JSONPlaceholderAPI.getUsers(usersSpec);
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;
+ for (User userObject : users) {
+ if (Integer.parseInt(userObject.id) == Integer.parseInt(JSONParser.parseData("testData", "testCases[0].steps[4].user.id"))) {
+ user = userObject;
break;
}
}
@@ -86,7 +80,7 @@ public class TestCase1 extends BaseTest {
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);
+ User user5 = JSONPlaceholderAPI.getUser(user5Spec);
Assert.assertEquals(user, user5, "User information is not correct.");
}