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}