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/DoubleUtils.java9
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/IntegerUtils.java21
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java53
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/LoggerUtils.java46
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/StringUtils.java43
5 files changed, 172 insertions, 0 deletions
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/DoubleUtils.java b/src/main/java/com/mavlushechka/a1qa/utils/DoubleUtils.java
new file mode 100644
index 0000000..d68b18c
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/utils/DoubleUtils.java
@@ -0,0 +1,9 @@
+package com.mavlushechka.a1qa.utils;
+
+public class DoubleUtils {
+
+ public static double getPercentageOf(double number, double percentage) {
+ return number / 100 * percentage;
+ }
+
+}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/IntegerUtils.java b/src/main/java/com/mavlushechka/a1qa/utils/IntegerUtils.java
new file mode 100644
index 0000000..37f3eb8
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/utils/IntegerUtils.java
@@ -0,0 +1,21 @@
+package com.mavlushechka.a1qa.utils;
+
+import java.util.OptionalInt;
+import java.util.Random;
+
+public class IntegerUtils {
+
+ private IntegerUtils() {
+ }
+
+ public static int getRandomNumber(int min, int max) {
+ OptionalInt randomNumber = new Random().ints(min, max).findFirst();
+
+ if (randomNumber.isPresent()) {
+ return randomNumber.getAsInt();
+ }
+ LoggerUtils.error("Incorrect min and max arguments.");
+ throw new IllegalArgumentException("Incorrect min and max arguments.");
+ }
+
+}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java b/src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java
new file mode 100644
index 0000000..b98fcec
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java
@@ -0,0 +1,53 @@
+package com.mavlushechka.a1qa.utils;
+
+import org.json.simple.JSONObject;
+import org.json.simple.parser.ParseException;
+
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Map;
+import java.util.Optional;
+import java.util.TreeMap;
+
+public class JSONParser {
+
+ private final static org.json.simple.parser.JSONParser jsonParser = new org.json.simple.parser.JSONParser();
+ private final static TreeMap<String, String> parsedData = new TreeMap<>();
+
+
+ public static String parse(String filename, String key) {
+ Map.Entry<String, String> ceilingEntry = parsedData.ceilingEntry(filename + ".");
+ String requiredData;
+
+ if (ceilingEntry == null || !ceilingEntry.getKey().startsWith(filename + ".")) {
+ parseFile(filename);
+ }
+ requiredData = parsedData.get(filename + "." + key);
+
+ return Optional.ofNullable(requiredData).orElseThrow(() -> new IllegalArgumentException("Cannot find required data."));
+ }
+
+ private static void parseFile(String filename) {
+ JSONObject jsonObject;
+
+ try (FileReader fileReader = new FileReader("src/main/resources/" + filename + ".json")) {
+ jsonObject = (JSONObject) jsonParser.parse(fileReader);
+ } catch (ParseException | IOException e) {
+ throw new IllegalArgumentException("Cannot find required file.");
+ }
+ putToParsedData(jsonObject, filename);
+ }
+
+ private static void putToParsedData(JSONObject jsonObject, String filename) {
+ for (int i = 0; i < jsonObject.keySet().size(); i++) {
+ String[] keyValues = jsonObject.values().toArray()[i].toString().replaceAll("[{}\"\\\\]", "").split(",");
+
+ for (String keyValue : keyValues) {
+ String[] splitKeyValue = keyValue.split(":", 2);
+
+ parsedData.put(filename + "." + jsonObject.keySet().toArray()[i] + "." + splitKeyValue[0], splitKeyValue[1]);
+ }
+ }
+ }
+
+}
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/LoggerUtils.java b/src/main/java/com/mavlushechka/a1qa/utils/LoggerUtils.java
new file mode 100644
index 0000000..51d49ae
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/utils/LoggerUtils.java
@@ -0,0 +1,46 @@
+package com.mavlushechka.a1qa.utils;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.ConfigurationSource;
+import org.apache.logging.log4j.core.config.Configurator;
+import org.apache.logging.log4j.core.config.xml.XmlConfiguration;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+public class LoggerUtils {
+
+ private final static File CONFIGURATION_FILE = new File("src/main/resources/log4j2.xml");
+ private static Logger logger;
+ private static int step = 0;
+
+
+ private LoggerUtils() {
+ }
+
+ public static void initialize() {
+ try {
+ Configurator.initialize(new XmlConfiguration(null, new ConfigurationSource(new FileInputStream(CONFIGURATION_FILE))));
+ } catch (IOException ioException) {
+ throw new RuntimeException(ioException);
+ }
+ logger = LogManager.getLogger();
+ }
+
+ public static void info(String text) {
+ logger.log(Level.INFO, text);
+ }
+
+ public static void error(String text) {
+ 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/StringUtils.java b/src/main/java/com/mavlushechka/a1qa/utils/StringUtils.java
new file mode 100644
index 0000000..cbce72f
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/utils/StringUtils.java
@@ -0,0 +1,43 @@
+package com.mavlushechka.a1qa.utils;
+
+import java.util.Random;
+
+public class StringUtils {
+
+ private StringUtils() {
+ }
+
+ public static String convertToConstantCase(String text) {
+ StringBuilder stringBuilder = new StringBuilder();
+ String[] words = text.split(" ");
+
+ for (int i = 0; i < words.length; i++) {
+ stringBuilder.append(words[i].toUpperCase());
+ if (i != words.length-1) {
+ stringBuilder.append("_");
+ }
+ }
+
+ return stringBuilder.toString();
+ }
+
+ public static String capitalizeFirstLetter(String text) {
+ return text.substring(0, 1).toUpperCase() + text.substring(1);
+ }
+
+ public static int removeNonDigits(String text) {
+ return Integer.parseInt(text.replaceAll("[^0-9]+", ""));
+ }
+
+ public static String generateRandomText(int lettersLowerBound, int lettersUpperBound, int length) {
+ return new Random().ints(lettersLowerBound, lettersUpperBound + 1)
+ .limit(length)
+ .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
+ .toString();
+ }
+
+ public static String replaceByStars(String text) {
+ return "*".repeat(text.length());
+ }
+
+}