diff options
Diffstat (limited to 'src/main/java/com/mavlushechka/a1qa/utils')
-rw-r--r-- | src/main/java/com/mavlushechka/a1qa/utils/HttpUrlConnectionFactory.java | 25 | ||||
-rw-r--r-- | src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPIManager.java | 60 | ||||
-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.java | 10 | ||||
-rw-r--r-- | src/main/java/com/mavlushechka/a1qa/utils/Posts.java | 16 | ||||
-rw-r--r-- | src/main/java/com/mavlushechka/a1qa/utils/StringUtils.java | 2 | ||||
-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.java | 62 |
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; + } + +} |