summaryrefslogtreecommitdiff
path: root/src/main/java/com/mavlushechka/a1qa/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/mavlushechka/a1qa/utils')
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/HttpUrlConnectionFactory.java25
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPIManager.java60
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/JsonParser.java (renamed from src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java)14
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/LoggerUtils.java10
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/Posts.java16
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/StringUtils.java2
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/UrlConnectionManager.java (renamed from src/main/java/com/mavlushechka/a1qa/utils/URLConnectionManager.java)15
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/VkApiUtils.java62
8 files changed, 108 insertions, 96 deletions
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/HttpUrlConnectionFactory.java b/src/main/java/com/mavlushechka/a1qa/utils/HttpUrlConnectionFactory.java
new file mode 100644
index 0000000..25d3a90
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/utils/HttpUrlConnectionFactory.java
@@ -0,0 +1,25 @@
+package com.mavlushechka.a1qa.utils;
+
+import com.mavlushechka.a1qa.constants.RequestMethod;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+public class HttpUrlConnectionFactory {
+
+ private HttpUrlConnectionFactory() {
+ }
+
+ public static HttpURLConnection createHttpUrlConnection(String spec, RequestMethod requestMethod, boolean doOutput) throws IOException {
+ HttpURLConnection httpUrlConnection = (HttpURLConnection) new URL(spec).openConnection();
+
+ httpUrlConnection.setRequestMethod(requestMethod.name());
+ httpUrlConnection.setConnectTimeout(Integer.parseInt(JsonParser.parseData("config", "httpUrlConnection.connectTimeout")));
+ httpUrlConnection.setReadTimeout(Integer.parseInt(JsonParser.parseData("config", "httpUrlConnection.readTimeout")));
+ httpUrlConnection.setDoOutput(doOutput);
+ httpUrlConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
+ return httpUrlConnection;
+ }
+
+}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPIManager.java b/src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPIManager.java
deleted file mode 100644
index 54df569..0000000
--- a/src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPIManager.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.mavlushechka.a1qa.utils;
-
-import com.mavlushechka.a1qa.constants.Endpoint;
-import com.mavlushechka.a1qa.constants.RequestMethod;
-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 JSONPlaceholderAPIManager {
-
- private final static String postsSpec = Endpoint.POSTS.spec;
- private final static String usersSpec = Endpoint.USERS.spec;
-
-
- public static Post getPost(int id) throws IOException {
- return JSONParser.convertToObject(URLConnectionManager.get(postsSpec + "/" + id), Post.class);
- }
-
- public static int getPostResponseCode(int id, RequestMethod requestMethod) throws IOException {
- return URLConnectionManager.getResponseCode(postsSpec + "/" + id, requestMethod);
- }
-
- public static List<Post> getPosts() throws IOException {
- return getObjects(postsSpec, Post.class);
- }
-
- public static int getPostsResponseCode(RequestMethod requestMethod) throws IOException {
- return URLConnectionManager.getResponseCode(postsSpec, requestMethod);
- }
-
- public static Post postPost(Post post) throws IOException {
- return JSONParser.convertToObject(URLConnectionManager.post(postsSpec, JSONParser.convertToJSON(post)), Post.class);
- }
-
- public static User getUser(int id) throws IOException {
- return JSONParser.convertToObject(URLConnectionManager.get(usersSpec + "/" + id), User.class);
- }
-
- public static List<User> getUsers() throws IOException {
- return getObjects(usersSpec, User.class);
- }
-
- public static int getUsersResponseCode(RequestMethod requestMethod) throws IOException {
- return URLConnectionManager.getResponseCode(usersSpec, requestMethod);
- }
-
- 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();
- }
-
-}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java b/src/main/java/com/mavlushechka/a1qa/utils/JsonParser.java
index 67595f9..bbcc732 100644
--- a/src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java
+++ b/src/main/java/com/mavlushechka/a1qa/utils/JsonParser.java
@@ -9,7 +9,7 @@ import java.util.ArrayList;
import java.util.Map;
import java.util.TreeMap;
-public class JSONParser {
+public class JsonParser {
private final static TreeMap<String, JSONObject> parsedJSON = new TreeMap<>();
@@ -43,7 +43,7 @@ public class JSONParser {
return new Gson().fromJson(json, classToConvert);
}
- public static <T> String convertToJSON(T object) {
+ public static <T> String convertToJson(T object) {
return new Gson().toJson(object);
}
@@ -71,11 +71,11 @@ public class JSONParser {
parsedJSON.put(filename, new JSONObject(FileParser.parse("src/main/resources/" + filename + ".json")));
}
- private static String parseData(String JSONName, String key, boolean isObject) {
- JSONObject jsonObject = new JSONObject(parsedJSON.get(JSONName).toString());
+ private static String parseData(String jsonName, String key, boolean isObject) {
+ JSONObject jsonObject = new JSONObject(parsedJSON.get(jsonName).toString());
String[] keys = key.split("\\.");
- for (int i = 0; i < keys.length-1; i++) {
+ for (int i = 0; i < keys.length - 1; i++) {
if (keys[i].contains("[") && keys[i].contains("]")) {
String splitKey = keys[i].split("\\[")[0];
int index = Integer.parseInt(keys[i].split("\\[")[1].replaceAll("[\\[\\]]", ""));
@@ -86,9 +86,9 @@ public class JSONParser {
}
}
if (isObject) {
- return jsonObject.getJSONObject(keys[keys.length-1]).toString();
+ return jsonObject.getJSONObject(keys[keys.length - 1]).toString();
}
- return jsonObject.getString(keys[keys.length-1]);
+ return jsonObject.getString(keys[keys.length - 1]);
}
}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/LoggerUtils.java b/src/main/java/com/mavlushechka/a1qa/utils/LoggerUtils.java
index 51d49ae..2498f87 100644
--- a/src/main/java/com/mavlushechka/a1qa/utils/LoggerUtils.java
+++ b/src/main/java/com/mavlushechka/a1qa/utils/LoggerUtils.java
@@ -30,6 +30,11 @@ public class LoggerUtils {
logger = LogManager.getLogger();
}
+ public static void step(String text) {
+ step++;
+ info("Step %d: %s".formatted(step, text));
+ }
+
public static void info(String text) {
logger.log(Level.INFO, text);
}
@@ -38,9 +43,4 @@ public class LoggerUtils {
logger.log(Level.ERROR, text);
}
- public static void step(String text) {
- step++;
- logger.log(Level.INFO, "Step %d: %s".formatted(step, text));
- }
-
}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/Posts.java b/src/main/java/com/mavlushechka/a1qa/utils/Posts.java
deleted file mode 100644
index d0bdfaa..0000000
--- a/src/main/java/com/mavlushechka/a1qa/utils/Posts.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mavlushechka.a1qa.utils;
-
-import com.mavlushechka.a1qa.models.Post;
-
-import java.util.List;
-import java.util.stream.IntStream;
-
-public class Posts {
-
- public static boolean isPostsAscending(List<Post> posts) {
- return IntStream.range(1, posts.size())
- .map(index -> posts.get(index - 1).compareTo(posts.get(index)))
- .allMatch(order -> order <= 0);
- }
-
-}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/StringUtils.java b/src/main/java/com/mavlushechka/a1qa/utils/StringUtils.java
index cbce72f..854d7cc 100644
--- a/src/main/java/com/mavlushechka/a1qa/utils/StringUtils.java
+++ b/src/main/java/com/mavlushechka/a1qa/utils/StringUtils.java
@@ -13,7 +13,7 @@ public class StringUtils {
for (int i = 0; i < words.length; i++) {
stringBuilder.append(words[i].toUpperCase());
- if (i != words.length-1) {
+ if (i != words.length - 1) {
stringBuilder.append("_");
}
}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/URLConnectionManager.java b/src/main/java/com/mavlushechka/a1qa/utils/UrlConnectionManager.java
index c6c9fae..7ea092c 100644
--- a/src/main/java/com/mavlushechka/a1qa/utils/URLConnectionManager.java
+++ b/src/main/java/com/mavlushechka/a1qa/utils/UrlConnectionManager.java
@@ -1,7 +1,6 @@
package com.mavlushechka.a1qa.utils;
import com.mavlushechka.a1qa.constants.RequestMethod;
-import com.mavlushechka.a1qa.driverUtils.HttpURLConnectionFactory;
import java.io.BufferedReader;
import java.io.DataOutputStream;
@@ -9,12 +8,14 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
-public class URLConnectionManager {
+public class UrlConnectionManager {
public static String get(String spec) throws IOException {
StringBuilder stringBuilder = new StringBuilder();
- try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(HttpURLConnectionFactory.createHttpURLConnection(spec, RequestMethod.GET, false).getInputStream()))) {
+ try (BufferedReader bufferedReader = new BufferedReader(
+ new InputStreamReader(HttpUrlConnectionFactory.createHttpUrlConnection(spec, RequestMethod.GET, false).getInputStream()))
+ ) {
String inputLine;
while ((inputLine = bufferedReader.readLine()) != null) {
@@ -25,14 +26,14 @@ public class URLConnectionManager {
}
public static String post(String spec, String content) throws IOException {
- HttpURLConnection httpURLConnection = HttpURLConnectionFactory.createHttpURLConnection(spec, RequestMethod.POST, true);
+ HttpURLConnection httpUrlConnection = HttpUrlConnectionFactory.createHttpUrlConnection(spec, RequestMethod.POST, true);
StringBuilder stringBuilder = new StringBuilder();
- try (DataOutputStream dataOutputStream = new DataOutputStream(httpURLConnection.getOutputStream())) {
+ try (DataOutputStream dataOutputStream = new DataOutputStream(httpUrlConnection.getOutputStream())) {
dataOutputStream.writeBytes(content);
dataOutputStream.flush();
}
- try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()))) {
+ try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream()))) {
String inputLine;
while ((inputLine = bufferedReader.readLine()) != null) {
@@ -43,7 +44,7 @@ public class URLConnectionManager {
}
public static int getResponseCode(String spec, RequestMethod requestMethod) throws IOException {
- return HttpURLConnectionFactory.createHttpURLConnection(spec, requestMethod, false).getResponseCode();
+ return HttpUrlConnectionFactory.createHttpUrlConnection(spec, requestMethod, false).getResponseCode();
}
}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/VkApiUtils.java b/src/main/java/com/mavlushechka/a1qa/utils/VkApiUtils.java
new file mode 100644
index 0000000..845ecc7
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/utils/VkApiUtils.java
@@ -0,0 +1,62 @@
+package com.mavlushechka.a1qa.utils;
+
+import com.mavlushechka.a1qa.constants.Method;
+import com.mavlushechka.a1qa.models.Liker;
+import com.mavlushechka.a1qa.models.Post;
+import com.mavlushechka.a1qa.models.User;
+import org.json.JSONObject;
+
+import java.io.IOException;
+
+public class VkApiUtils {
+
+ private final static double apiVersion = 5.131;
+ private final static String url = "https://api.vk.com/method/%s?v=" + apiVersion + "&%s&access_token=" + JsonParser.parseData("testData", "vkontakte.account.token");
+
+
+ public static User getCurrentUser() throws IOException {
+ return JsonParser.convertToObject(
+ new JSONObject(UrlConnectionManager.get(url.formatted(Method.USERS_GET.name, "")))
+ .getJSONArray("response").get(0).toString(), User.class
+ );
+ }
+
+ public static int createPost(String message) throws IOException {
+ return new JSONObject(UrlConnectionManager.get(url.formatted(Method.WALL_POST.name, "message=" + message)))
+ .getJSONObject("response").getInt("post_id");
+ }
+
+ public static void editPost(Post post, Post editedPost) throws IOException {
+ UrlConnectionManager.get(
+ url.formatted(
+ Method.WALL_EDIT.name,
+ "post_id=" + post.id() + "&message=" + editedPost.message() + "&attachments=" + editedPost.attachment()
+ )
+ );
+ }
+
+ public static void deletePost(Post post) throws IOException {
+ UrlConnectionManager.get(url.formatted(Method.WALL_DELETE.name, "post_id=" + post.id()));
+ }
+
+ public static int createComment(int postId, String message) throws IOException {
+ return new JSONObject(UrlConnectionManager.get(url.formatted(Method.WALL_CREATE_COMMENT.name, "post_id=" + postId + "&message=" + message)))
+ .getJSONObject("response").getInt("comment_id");
+ }
+
+ public static boolean containsLike(Post post, User user) throws IOException {
+ Object[] users = JsonParser.convertArray(new JSONObject(UrlConnectionManager.get(
+ url.formatted(Method.WALL_GET_LIKES.name, "post_id=" + post.id())
+ )).getJSONObject("response").getJSONArray("users").toString(),
+ Liker.class
+ );
+
+ for (Object userObject : users) {
+ if (((Liker) userObject).getUid() == user.getId()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}