summaryrefslogtreecommitdiff
path: root/src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java
diff options
context:
space:
mode:
authorMavlushechka <mavlushechka@gmail.com>2022-09-20 21:13:24 +0500
committerMavlushechka <mavlushechka@gmail.com>2022-09-20 21:13:24 +0500
commit3b1af3333d687e354ab9fa0a475ae7ef74b740f9 (patch)
tree3341bf5457adbc3f317fdbd6120036dc19bd7551 /src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java
parent528fbeb1542ffba584eecf8bc07528d1633f4fa5 (diff)
Add testing framework
Diffstat (limited to 'src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java')
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/JSONParser.java53
1 files changed, 53 insertions, 0 deletions
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]);
+ }
+ }
+ }
+
+}