diff options
Diffstat (limited to 'src/main/java/com/mavlushechka/a1qa/utils')
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()); + } + +} |