001package com.thed.zblast.parser;
002
003import com.thed.zblast.parser.model.TestCase;
004import com.thed.zblast.parser.model.TestSuite;
005import org.json.JSONArray;
006import org.json.JSONObject;
007
008import java.io.File;
009import java.io.FileReader;
010import java.util.ArrayList;
011import java.util.List;
012
013public class CucumberJsonResultParserImpl {
014
015        public static List<TestSuite> getAllSuites(String Path) {
016                List<TestSuite> testSuites = new ArrayList<TestSuite>();
017                String absoluteFilePath = Path;
018
019                File reportFile = new File(absoluteFilePath);
020                if (reportFile.isFile() && reportFile.exists()) {
021                        try {
022
023                                FileReader jsonFileContents = new FileReader(reportFile);
024                                JSONArray jArr = new JSONArray(jsonFileContents);
025                                System.out.println(jArr.toString());
026                                JSONArray jsonArray = new JSONArray(jArr.toString());
027                                JSONObject jsonObject = (JSONObject) jsonArray.get(0);
028                                JSONArray elementsArray = jsonObject.getJSONArray("elements");
029                                for (int i = 0; i <= elementsArray.length() - 1; i++) {
030                                        TestSuite tempTestSuite = new TestSuite();
031                                        List<TestCase> testCases = new ArrayList<TestCase>();
032                                        String name = (String) elementsArray.getJSONObject(i).get("name");
033                                        String keyword = (String) elementsArray.getJSONObject(i).get("keyword");
034                                        JSONArray testcasesArray = elementsArray.getJSONObject(i).getJSONArray("steps");
035                                        System.out.println("Name: " + name);
036                                        System.out.println("Author: " + keyword);
037                                        System.out.println("\nCompany List:" + testcasesArray.toString());
038                                        tempTestSuite.setName(name);
039                                        for (int j = 0; j <= testcasesArray.length() - 1; j++) {
040                                                TestCase tempTestCase = new TestCase();
041                                                String testName = (String) testcasesArray.getJSONObject(i).get("name");
042                                                String testKeyword = (String) testcasesArray.getJSONObject(i).get("keyword");
043                                                String testStatus = (String) testcasesArray.getJSONObject(i).getJSONObject("result")
044                                                                .get("status");
045                                                tempTestCase.setName(testName);
046                                                tempTestCase.setDescription(testKeyword);
047                                                tempTestCase.setStatus(testStatus);
048                                                testCases.add(tempTestCase);
049                                        }
050                                        tempTestSuite.setSuiteTestCaseMap(name, testCases);
051                                        testSuites.add(tempTestSuite);
052                                }
053
054                        } catch (Exception e) {
055                                e.printStackTrace();
056                        }
057                }
058                return testSuites;
059        }
060}