From 2838b32e2704c9aac335eaeda6559c1ca4c4361e Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Tue, 20 Aug 2024 18:25:08 +0530 Subject: [PATCH 01/25] WIP: [Issue #207] Implementing Feature : Meta Data section in the scenario JSON (unit test java file and assertion json file added) --- .../tests/MetaDataTest/MetaDataTest.java | 17 ++++++++++++ .../resources/MetaDataTest/MetaDataTest.json | 27 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java create mode 100644 http-testing/src/test/resources/MetaDataTest/MetaDataTest.json diff --git a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java new file mode 100644 index 00000000..b7366632 --- /dev/null +++ b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java @@ -0,0 +1,17 @@ +package org.jsmart.zerocode.testhelp.tests.metadatatest; + +import org.jsmart.zerocode.core.domain.JsonTestCase; +import org.jsmart.zerocode.core.domain.TargetEnv; +import org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner; +import org.junit.Test; +import org.junit.runner.RunWith; + +@TargetEnv("github_host.properties") +@RunWith(ZeroCodeUnitRunner.class) +public class MetaDataTest { + @Test + @JsonTestCase("metadatatest/MetaDataTestAssertion.json") + public void testmetadata() throws Exception { + + } +} \ No newline at end of file diff --git a/http-testing/src/test/resources/MetaDataTest/MetaDataTest.json b/http-testing/src/test/resources/MetaDataTest/MetaDataTest.json new file mode 100644 index 00000000..05b5d290 --- /dev/null +++ b/http-testing/src/test/resources/MetaDataTest/MetaDataTest.json @@ -0,0 +1,27 @@ +{ + "scenarioName": "Scenario - Get GitHub User Details with Metadata", + "steps": [ + { + "name": "get_user_details", + "url": "/users/octocat", + "method": "GET", + "request": { + }, + "assertions": { + "status": 200, + "body": { + "login": "octocat", + "id": 583231, + "type": "User" + } + } + } + ], + "meta": { + "authors": ["Emma", "Sidd", "Krish"], + "tickets": ["ISSUE-519", "GT-312"], + "categories": ["api", "regression"], + "description": ["This test verifies the GitHub user API"], + "last_updated": ["2023-05-15"] + } +} \ No newline at end of file From 12b862c7cf77123d15f75fe0ea40d5041bc8838c Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Tue, 20 Aug 2024 18:53:44 +0530 Subject: [PATCH 02/25] test commit --- .../zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java index b7366632..88aa0a34 100644 --- a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java +++ b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java @@ -5,7 +5,7 @@ import org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner; import org.junit.Test; import org.junit.runner.RunWith; - +// @TargetEnv("github_host.properties") @RunWith(ZeroCodeUnitRunner.class) public class MetaDataTest { From 0bb474422200673c60f3d86b933412f7cd2b1207 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 14:55:49 +0530 Subject: [PATCH 03/25] json file path corrected in metadatatest.java --- .../zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java index 88aa0a34..dd00f4c9 100644 --- a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java +++ b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java @@ -1,16 +1,16 @@ -package org.jsmart.zerocode.testhelp.tests.metadatatest; +package org.jsmart.zerocode.testhelp.tests.MetaDataTest; import org.jsmart.zerocode.core.domain.JsonTestCase; import org.jsmart.zerocode.core.domain.TargetEnv; import org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner; import org.junit.Test; import org.junit.runner.RunWith; -// + @TargetEnv("github_host.properties") @RunWith(ZeroCodeUnitRunner.class) public class MetaDataTest { @Test - @JsonTestCase("metadatatest/MetaDataTestAssertion.json") + @JsonTestCase("MetaDataTest/MetaDataTest.json") public void testmetadata() throws Exception { } From 06a9cd4535771373fc44aa7c32704b3144dec4e8 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 14:57:18 +0530 Subject: [PATCH 04/25] getters and setters for meta data in ScenarioSpec.java --- .../zerocode/core/domain/ScenarioSpec.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java b/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java index 9c06ffa1..d61b0af0 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Map; @JsonInclude(JsonInclude.Include.NON_NULL) public class ScenarioSpec { @@ -15,6 +16,15 @@ public class ScenarioSpec { private final String scenarioName; private final List steps; private final Parameterized parameterized; + private Map> meta; + + // Add getter and setter for meta + public Map> getMeta() { + return meta; + } + public void setMeta(Map> meta) { + this.meta = meta; + } @JsonCreator public ScenarioSpec( @@ -22,12 +32,14 @@ public ScenarioSpec( @JsonProperty("ignoreStepFailures") Boolean ignoreStepFailures, @JsonProperty("scenarioName") String scenarioName, @JsonProperty("steps") List steps, - @JsonProperty("parameterized") Parameterized parameterized) { + @JsonProperty("parameterized") Parameterized parameterized, + @JsonProperty("meta") Map> meta) { this.loop = loop; this.ignoreStepFailures = ignoreStepFailures; this.scenarioName = scenarioName; this.steps = steps; this.parameterized = parameterized; + this.meta=meta; } public Integer getLoop() { @@ -58,6 +70,8 @@ public String toString() { ", scenarioName='" + scenarioName + '\'' + ", steps=" + steps + ", parameterized=" + parameterized + + ", meta=" + meta + '}'; } + } From 2fff349eb898253c4b46d9a0972f6984b71b6fa4 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 16:29:33 +0530 Subject: [PATCH 05/25] Add meta data support to ZeroCodeExecResult --- .../core/domain/reports/ZeroCodeExecResult.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java index ae17016b..54a3da25 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java @@ -6,13 +6,15 @@ import java.util.ArrayList; import java.util.List; +import java.util.Map; @JsonInclude(JsonInclude.Include.NON_NULL) public class ZeroCodeExecResult { private String scenarioName; private Integer loop; private List steps = new ArrayList<>(); - + private Map> meta; + @JsonCreator public ZeroCodeExecResult( @JsonProperty("scenarioName")String scenarioName, @@ -47,4 +49,12 @@ public String toString() { ", steps=" + steps + '}'; } + + public Map> getMeta() { + return meta; + } + + public void setMeta(Map> meta) { + this.meta = meta; + } } From 3525da1ac9f30a263127433d20572148374b0cf5 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 16:29:56 +0530 Subject: [PATCH 06/25] Update ZeroCodeReportGeneratorImpl to include meta data in reports --- .../report/ZeroCodeReportGeneratorImpl.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java index e80fb076..6531fbf8 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java +++ b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java @@ -4,6 +4,7 @@ import com.aventstack.extentreports.ExtentTest; import com.aventstack.extentreports.Status; import com.aventstack.extentreports.markuputils.CodeLanguage; +import com.aventstack.extentreports.markuputils.ExtentColor; import com.aventstack.extentreports.markuputils.MarkupHelper; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; @@ -98,6 +99,15 @@ public void generateExtentReport() { thisReport.getResults().forEach(thisScenario -> { ExtentTest test = extentReports.createTest(thisScenario.getScenarioName()); + // Add meta information to the test + if (thisScenario.getMeta() != null) { + for (Map.Entry> entry : thisScenario.getMeta().entrySet()) { + String key = entry.getKey(); + List values = entry.getValue(); + test.info(MarkupHelper.createLabel(key + ": " + String.join(", ", values), ExtentColor.BLUE)); + } + } + // Assign Category test.assignCategory(DEFAULT_REGRESSION_CATEGORY); //Super set String[] hashTagsArray = optionalCategories(thisScenario.getScenarioName()).toArray(new String[0]); @@ -276,6 +286,10 @@ public void generateCsvReport(List zeroCodeCsvReportRows) { .addColumn("responseTimeStamp") .addColumn("result") .addColumn("method") + .addColumn("metaAuthors") + .addColumn("metaTickets") + .addColumn("metaCategories") + .addColumn("metaOthers") .build(); CsvMapper csvMapper = new CsvMapper(); @@ -310,6 +324,15 @@ public List buildCsvRows() { csvFileBuilder.scenarioLoop(thisResult.getLoop()); csvFileBuilder.scenarioName(thisResult.getScenarioName()); + // Add meta information + Map> meta = thisResult.getMeta(); + if (meta != null) { + csvFileBuilder.metaAuthors(String.join(", ", meta.getOrDefault("authors", Collections.emptyList()))); + csvFileBuilder.metaTickets(String.join(", ", meta.getOrDefault("tickets", Collections.emptyList()))); + csvFileBuilder.metaCategories(String.join(", ", meta.getOrDefault("categories", Collections.emptyList()))); + csvFileBuilder.metaOthers(String.join(", ", meta.getOrDefault("others", Collections.emptyList()))); + } + thisResult.getSteps().forEach(thisStep -> { csvFileBuilder.stepLoop(thisStep.getLoop()); csvFileBuilder.stepName(thisStep.getName()); From 7f6e05b23a0d2743201801733035babc4ecac4be Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 16:30:20 +0530 Subject: [PATCH 07/25] Modify ZeroCodeCsvReportBuilder for meta data --- .../builders/ZeroCodeCsvReportBuilder.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java index 9346fa9c..4df65e2b 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java @@ -13,6 +13,10 @@ public class ZeroCodeCsvReportBuilder { String requestTimeStamp; String responseTimeStamp; private Double responseDelayMilliSec; + private String metaAuthors; + private String metaTickets; + private String metaCategories; + private String metaOthers; public static ZeroCodeCsvReportBuilder newInstance() { return new ZeroCodeCsvReportBuilder(); @@ -21,6 +25,10 @@ public static ZeroCodeCsvReportBuilder newInstance() { public ZeroCodeCsvReport build() { ZeroCodeCsvReport built = new ZeroCodeCsvReport(scenarioName,scenarioLoop,stepName, stepLoop, correlationId, result, method, requestTimeStamp, responseTimeStamp, responseDelayMilliSec); + built.setMetaAuthors(metaAuthors); + built.setMetaTickets(metaTickets); + built.setMetaCategories(metaCategories); + built.setMetaOthers(metaOthers); return built; } @@ -73,4 +81,24 @@ public ZeroCodeCsvReportBuilder responseDelayMilliSec(Double responseDelayMilliS this.responseDelayMilliSec = responseDelayMilliSec; return this; } + + public ZeroCodeCsvReportBuilder metaAuthors(String metaAuthors) { + this.metaAuthors = metaAuthors; + return this; + } + + public ZeroCodeCsvReportBuilder metaTickets(String metaTickets) { + this.metaTickets = metaTickets; + return this; + } + + public ZeroCodeCsvReportBuilder metaCategories(String metaCategories) { + this.metaCategories = metaCategories; + return this; + } + + public ZeroCodeCsvReportBuilder metaOthers(String metaOthers) { + this.metaOthers = metaOthers; + return this; + } } From e418774a9fcf83d942358326c3e6bc793c998834 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 16:30:37 +0530 Subject: [PATCH 08/25] Modify ZeroCodeCsv for meta data --- .../domain/reports/csv/ZeroCodeCsvReport.java | 46 +++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java index 9d694164..ab107cbe 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java @@ -11,6 +11,10 @@ public class ZeroCodeCsvReport { String requestTimeStamp; String responseTimeStamp; private Double responseDelayMilliSec; + private String metaAuthors; + private String metaTickets; + private String metaCategories; + private String metaOthers; public ZeroCodeCsvReport(String scenarioName, Integer scenarioLoop, String stepName, Integer stepLoop, String correlationId, String result, String method, String requestTimeStamp, @@ -67,6 +71,38 @@ public String getResponseTimeStamp() { return responseTimeStamp; } + public String getMetaAuthors() { + return metaAuthors; + } + + public void setMetaAuthors(String metaAuthors) { + this.metaAuthors = metaAuthors; + } + + public String getMetaTickets() { + return metaTickets; + } + + public void setMetaTickets(String metaTickets) { + this.metaTickets = metaTickets; + } + + public String getMetaCategories() { + return metaCategories; + } + + public void setMetaCategories(String metaCategories) { + this.metaCategories = metaCategories; + } + + public String getMetaOthers() { + return metaOthers; + } + + public void setMetaOthers(String metaOthers) { + this.metaOthers = metaOthers; + } + @Override public String toString() { return "ZeroCodeCsvReport{" + @@ -75,11 +111,15 @@ public String toString() { ", stepName='" + stepName + '\'' + ", stepLoop=" + stepLoop + ", correlationId='" + correlationId + '\'' + + ", requestTimeStamp='" + requestTimeStamp + '\'' + + ", responseDelayMilliSec=" + responseDelayMilliSec + + ", responseTimeStamp='" + responseTimeStamp + '\'' + ", result='" + result + '\'' + ", method='" + method + '\'' + - ", requestTimeStamp=" + requestTimeStamp + - ", responseTimeStamp=" + responseTimeStamp + - ", responseDelayMilliSec=" + responseDelayMilliSec + + ", metaAuthors='" + metaAuthors + '\'' + + ", metaTickets='" + metaTickets + '\'' + + ", metaCategories='" + metaCategories + '\'' + + ", metaOthers='" + metaOthers + '\'' + '}'; } } From 5a63d3371def5f7d36573968e5966c359a2d8d59 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Thu, 22 Aug 2024 12:01:29 +0530 Subject: [PATCH 09/25] important comments added --- .../core/domain/reports/csv/ZeroCodeCsvReport.java | 3 +++ .../zerocode/core/report/ZeroCodeReportGeneratorImpl.java | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java index ab107cbe..2c3e845d 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java @@ -11,6 +11,7 @@ public class ZeroCodeCsvReport { String requestTimeStamp; String responseTimeStamp; private Double responseDelayMilliSec; + // defining meta data fields private String metaAuthors; private String metaTickets; private String metaCategories; @@ -71,6 +72,8 @@ public String getResponseTimeStamp() { return responseTimeStamp; } + // defining meta data field setters and getters + public String getMetaAuthors() { return metaAuthors; } diff --git a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java index 6531fbf8..4094404a 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java +++ b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java @@ -99,7 +99,9 @@ public void generateExtentReport() { thisReport.getResults().forEach(thisScenario -> { ExtentTest test = extentReports.createTest(thisScenario.getScenarioName()); - // Add meta information to the test + /**This code checks if the scenario has meta data. + If it does, it iterates through each meta data entry and adds it to + the Extent report as an info label.**/ if (thisScenario.getMeta() != null) { for (Map.Entry> entry : thisScenario.getMeta().entrySet()) { String key = entry.getKey(); @@ -286,6 +288,7 @@ public void generateCsvReport(List zeroCodeCsvReportRows) { .addColumn("responseTimeStamp") .addColumn("result") .addColumn("method") + // This adds new columns to the CSV schema for each type of meta data. .addColumn("metaAuthors") .addColumn("metaTickets") .addColumn("metaCategories") @@ -327,6 +330,9 @@ public List buildCsvRows() { // Add meta information Map> meta = thisResult.getMeta(); if (meta != null) { + /**This code retrieves the meta data from the test result. If meta data exists, + * it joins the list of values for each meta data type into a comma-separated + * string and adds it to the CSV row.**/ csvFileBuilder.metaAuthors(String.join(", ", meta.getOrDefault("authors", Collections.emptyList()))); csvFileBuilder.metaTickets(String.join(", ", meta.getOrDefault("tickets", Collections.emptyList()))); csvFileBuilder.metaCategories(String.join(", ", meta.getOrDefault("categories", Collections.emptyList()))); From d80395e6d6915873902e84e1f4857a81ae53aeb8 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Fri, 23 Aug 2024 16:14:43 +0530 Subject: [PATCH 10/25] meta data visible in csv reports --- .../java/org/jsmart/zerocode/core/domain/ScenarioSpec.java | 4 ++-- .../core/domain/builders/ZeroCodeExecReportBuilder.java | 6 ++++-- .../zerocode/core/domain/reports/ZeroCodeExecResult.java | 4 +++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java b/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java index d61b0af0..d2425eb3 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java @@ -16,10 +16,10 @@ public class ScenarioSpec { private final String scenarioName; private final List steps; private final Parameterized parameterized; - private Map> meta; + private static Map> meta; // Add getter and setter for meta - public Map> getMeta() { + public static Map> getMeta() { return meta; } public void setMeta(Map> meta) { diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java index 63a8f4d8..ad1ea279 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java @@ -2,22 +2,24 @@ import org.jsmart.zerocode.core.domain.reports.ZeroCodeReportStep; import org.jsmart.zerocode.core.domain.reports.ZeroCodeExecResult; +import org.jsmart.zerocode.core.domain.ScenarioSpec; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; public class ZeroCodeExecReportBuilder { private String scenarioName; private Integer loop; private List steps = Collections.synchronizedList(new ArrayList()); - + private Map> meta = ScenarioSpec.getMeta(); public static ZeroCodeExecReportBuilder newInstance() { return new ZeroCodeExecReportBuilder(); } public ZeroCodeExecResult build() { - ZeroCodeExecResult built = new ZeroCodeExecResult(scenarioName, loop, steps); + ZeroCodeExecResult built = new ZeroCodeExecResult(scenarioName, loop, steps, meta); return built; } diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java index 54a3da25..7c0951b4 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java @@ -19,10 +19,12 @@ public class ZeroCodeExecResult { public ZeroCodeExecResult( @JsonProperty("scenarioName")String scenarioName, @JsonProperty("stepLoop")Integer loop, - @JsonProperty("steps")List steps) { + @JsonProperty("steps")List steps, + @JsonProperty("meta") Map> meta) { this.scenarioName = scenarioName; this.loop = loop; this.steps = steps; + this.meta = meta; } public String getScenarioName() { From 3228933aacc9c9f22db910c6a540b030c40bdbc7 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Fri, 23 Aug 2024 16:23:40 +0530 Subject: [PATCH 11/25] unused setMeta removed from ZeroCodeExecResult.java --- .../core/domain/builders/ZeroCodeExecReportBuilder.java | 1 + .../zerocode/core/domain/reports/ZeroCodeExecResult.java | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java index ad1ea279..49d79122 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java @@ -14,6 +14,7 @@ public class ZeroCodeExecReportBuilder { private Integer loop; private List steps = Collections.synchronizedList(new ArrayList()); private Map> meta = ScenarioSpec.getMeta(); + public static ZeroCodeExecReportBuilder newInstance() { return new ZeroCodeExecReportBuilder(); } diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java index 7c0951b4..7320c49f 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java @@ -56,7 +56,4 @@ public Map> getMeta() { return meta; } - public void setMeta(Map> meta) { - this.meta = meta; - } } From d713fc9a9123a31713905d69d4cb4df17c1cc0b7 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Tue, 20 Aug 2024 18:25:08 +0530 Subject: [PATCH 12/25] WIP: [Issue #207] Implementing Feature : Meta Data section in the scenario JSON (unit test java file and assertion json file added) --- .../tests/MetaDataTest/MetaDataTest.java | 17 ++++++++++++ .../resources/MetaDataTest/MetaDataTest.json | 27 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java create mode 100644 http-testing/src/test/resources/MetaDataTest/MetaDataTest.json diff --git a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java new file mode 100644 index 00000000..b7366632 --- /dev/null +++ b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java @@ -0,0 +1,17 @@ +package org.jsmart.zerocode.testhelp.tests.metadatatest; + +import org.jsmart.zerocode.core.domain.JsonTestCase; +import org.jsmart.zerocode.core.domain.TargetEnv; +import org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner; +import org.junit.Test; +import org.junit.runner.RunWith; + +@TargetEnv("github_host.properties") +@RunWith(ZeroCodeUnitRunner.class) +public class MetaDataTest { + @Test + @JsonTestCase("metadatatest/MetaDataTestAssertion.json") + public void testmetadata() throws Exception { + + } +} \ No newline at end of file diff --git a/http-testing/src/test/resources/MetaDataTest/MetaDataTest.json b/http-testing/src/test/resources/MetaDataTest/MetaDataTest.json new file mode 100644 index 00000000..05b5d290 --- /dev/null +++ b/http-testing/src/test/resources/MetaDataTest/MetaDataTest.json @@ -0,0 +1,27 @@ +{ + "scenarioName": "Scenario - Get GitHub User Details with Metadata", + "steps": [ + { + "name": "get_user_details", + "url": "/users/octocat", + "method": "GET", + "request": { + }, + "assertions": { + "status": 200, + "body": { + "login": "octocat", + "id": 583231, + "type": "User" + } + } + } + ], + "meta": { + "authors": ["Emma", "Sidd", "Krish"], + "tickets": ["ISSUE-519", "GT-312"], + "categories": ["api", "regression"], + "description": ["This test verifies the GitHub user API"], + "last_updated": ["2023-05-15"] + } +} \ No newline at end of file From 93c1b1c387a6fc2141c6866a259a539cf9889c69 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Tue, 20 Aug 2024 18:53:44 +0530 Subject: [PATCH 13/25] test commit --- .../zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java index b7366632..88aa0a34 100644 --- a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java +++ b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java @@ -5,7 +5,7 @@ import org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner; import org.junit.Test; import org.junit.runner.RunWith; - +// @TargetEnv("github_host.properties") @RunWith(ZeroCodeUnitRunner.class) public class MetaDataTest { From c31be3ab923361da6210ab5bd14e58b57d2eafc6 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 14:55:49 +0530 Subject: [PATCH 14/25] json file path corrected in metadatatest.java --- .../zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java index 88aa0a34..dd00f4c9 100644 --- a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java +++ b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java @@ -1,16 +1,16 @@ -package org.jsmart.zerocode.testhelp.tests.metadatatest; +package org.jsmart.zerocode.testhelp.tests.MetaDataTest; import org.jsmart.zerocode.core.domain.JsonTestCase; import org.jsmart.zerocode.core.domain.TargetEnv; import org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner; import org.junit.Test; import org.junit.runner.RunWith; -// + @TargetEnv("github_host.properties") @RunWith(ZeroCodeUnitRunner.class) public class MetaDataTest { @Test - @JsonTestCase("metadatatest/MetaDataTestAssertion.json") + @JsonTestCase("MetaDataTest/MetaDataTest.json") public void testmetadata() throws Exception { } From bdb6f789c2544397fb138354f881a5d04892105a Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 14:57:18 +0530 Subject: [PATCH 15/25] getters and setters for meta data in ScenarioSpec.java --- .../zerocode/core/domain/ScenarioSpec.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java b/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java index 9c06ffa1..d61b0af0 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Map; @JsonInclude(JsonInclude.Include.NON_NULL) public class ScenarioSpec { @@ -15,6 +16,15 @@ public class ScenarioSpec { private final String scenarioName; private final List steps; private final Parameterized parameterized; + private Map> meta; + + // Add getter and setter for meta + public Map> getMeta() { + return meta; + } + public void setMeta(Map> meta) { + this.meta = meta; + } @JsonCreator public ScenarioSpec( @@ -22,12 +32,14 @@ public ScenarioSpec( @JsonProperty("ignoreStepFailures") Boolean ignoreStepFailures, @JsonProperty("scenarioName") String scenarioName, @JsonProperty("steps") List steps, - @JsonProperty("parameterized") Parameterized parameterized) { + @JsonProperty("parameterized") Parameterized parameterized, + @JsonProperty("meta") Map> meta) { this.loop = loop; this.ignoreStepFailures = ignoreStepFailures; this.scenarioName = scenarioName; this.steps = steps; this.parameterized = parameterized; + this.meta=meta; } public Integer getLoop() { @@ -58,6 +70,8 @@ public String toString() { ", scenarioName='" + scenarioName + '\'' + ", steps=" + steps + ", parameterized=" + parameterized + + ", meta=" + meta + '}'; } + } From dc70ba522455f43d739e358769a626ac5385559e Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 16:29:33 +0530 Subject: [PATCH 16/25] Add meta data support to ZeroCodeExecResult --- .../core/domain/reports/ZeroCodeExecResult.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java index ae17016b..54a3da25 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java @@ -6,13 +6,15 @@ import java.util.ArrayList; import java.util.List; +import java.util.Map; @JsonInclude(JsonInclude.Include.NON_NULL) public class ZeroCodeExecResult { private String scenarioName; private Integer loop; private List steps = new ArrayList<>(); - + private Map> meta; + @JsonCreator public ZeroCodeExecResult( @JsonProperty("scenarioName")String scenarioName, @@ -47,4 +49,12 @@ public String toString() { ", steps=" + steps + '}'; } + + public Map> getMeta() { + return meta; + } + + public void setMeta(Map> meta) { + this.meta = meta; + } } From 946e509153cc65092b8aee32b8eb318e1dc6c76a Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 16:29:56 +0530 Subject: [PATCH 17/25] Update ZeroCodeReportGeneratorImpl to include meta data in reports --- .../report/ZeroCodeReportGeneratorImpl.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java index e80fb076..6531fbf8 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java +++ b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java @@ -4,6 +4,7 @@ import com.aventstack.extentreports.ExtentTest; import com.aventstack.extentreports.Status; import com.aventstack.extentreports.markuputils.CodeLanguage; +import com.aventstack.extentreports.markuputils.ExtentColor; import com.aventstack.extentreports.markuputils.MarkupHelper; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; @@ -98,6 +99,15 @@ public void generateExtentReport() { thisReport.getResults().forEach(thisScenario -> { ExtentTest test = extentReports.createTest(thisScenario.getScenarioName()); + // Add meta information to the test + if (thisScenario.getMeta() != null) { + for (Map.Entry> entry : thisScenario.getMeta().entrySet()) { + String key = entry.getKey(); + List values = entry.getValue(); + test.info(MarkupHelper.createLabel(key + ": " + String.join(", ", values), ExtentColor.BLUE)); + } + } + // Assign Category test.assignCategory(DEFAULT_REGRESSION_CATEGORY); //Super set String[] hashTagsArray = optionalCategories(thisScenario.getScenarioName()).toArray(new String[0]); @@ -276,6 +286,10 @@ public void generateCsvReport(List zeroCodeCsvReportRows) { .addColumn("responseTimeStamp") .addColumn("result") .addColumn("method") + .addColumn("metaAuthors") + .addColumn("metaTickets") + .addColumn("metaCategories") + .addColumn("metaOthers") .build(); CsvMapper csvMapper = new CsvMapper(); @@ -310,6 +324,15 @@ public List buildCsvRows() { csvFileBuilder.scenarioLoop(thisResult.getLoop()); csvFileBuilder.scenarioName(thisResult.getScenarioName()); + // Add meta information + Map> meta = thisResult.getMeta(); + if (meta != null) { + csvFileBuilder.metaAuthors(String.join(", ", meta.getOrDefault("authors", Collections.emptyList()))); + csvFileBuilder.metaTickets(String.join(", ", meta.getOrDefault("tickets", Collections.emptyList()))); + csvFileBuilder.metaCategories(String.join(", ", meta.getOrDefault("categories", Collections.emptyList()))); + csvFileBuilder.metaOthers(String.join(", ", meta.getOrDefault("others", Collections.emptyList()))); + } + thisResult.getSteps().forEach(thisStep -> { csvFileBuilder.stepLoop(thisStep.getLoop()); csvFileBuilder.stepName(thisStep.getName()); From 530f838474767484b3b91e1793f132d05bc6666d Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 16:30:20 +0530 Subject: [PATCH 18/25] Modify ZeroCodeCsvReportBuilder for meta data --- .../builders/ZeroCodeCsvReportBuilder.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java index 9346fa9c..4df65e2b 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java @@ -13,6 +13,10 @@ public class ZeroCodeCsvReportBuilder { String requestTimeStamp; String responseTimeStamp; private Double responseDelayMilliSec; + private String metaAuthors; + private String metaTickets; + private String metaCategories; + private String metaOthers; public static ZeroCodeCsvReportBuilder newInstance() { return new ZeroCodeCsvReportBuilder(); @@ -21,6 +25,10 @@ public static ZeroCodeCsvReportBuilder newInstance() { public ZeroCodeCsvReport build() { ZeroCodeCsvReport built = new ZeroCodeCsvReport(scenarioName,scenarioLoop,stepName, stepLoop, correlationId, result, method, requestTimeStamp, responseTimeStamp, responseDelayMilliSec); + built.setMetaAuthors(metaAuthors); + built.setMetaTickets(metaTickets); + built.setMetaCategories(metaCategories); + built.setMetaOthers(metaOthers); return built; } @@ -73,4 +81,24 @@ public ZeroCodeCsvReportBuilder responseDelayMilliSec(Double responseDelayMilliS this.responseDelayMilliSec = responseDelayMilliSec; return this; } + + public ZeroCodeCsvReportBuilder metaAuthors(String metaAuthors) { + this.metaAuthors = metaAuthors; + return this; + } + + public ZeroCodeCsvReportBuilder metaTickets(String metaTickets) { + this.metaTickets = metaTickets; + return this; + } + + public ZeroCodeCsvReportBuilder metaCategories(String metaCategories) { + this.metaCategories = metaCategories; + return this; + } + + public ZeroCodeCsvReportBuilder metaOthers(String metaOthers) { + this.metaOthers = metaOthers; + return this; + } } From 8b237968e1d82fece3dfb41160f7d3bea36b28a0 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Wed, 21 Aug 2024 16:30:37 +0530 Subject: [PATCH 19/25] Modify ZeroCodeCsv for meta data --- .../domain/reports/csv/ZeroCodeCsvReport.java | 46 +++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java index 9d694164..ab107cbe 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java @@ -11,6 +11,10 @@ public class ZeroCodeCsvReport { String requestTimeStamp; String responseTimeStamp; private Double responseDelayMilliSec; + private String metaAuthors; + private String metaTickets; + private String metaCategories; + private String metaOthers; public ZeroCodeCsvReport(String scenarioName, Integer scenarioLoop, String stepName, Integer stepLoop, String correlationId, String result, String method, String requestTimeStamp, @@ -67,6 +71,38 @@ public String getResponseTimeStamp() { return responseTimeStamp; } + public String getMetaAuthors() { + return metaAuthors; + } + + public void setMetaAuthors(String metaAuthors) { + this.metaAuthors = metaAuthors; + } + + public String getMetaTickets() { + return metaTickets; + } + + public void setMetaTickets(String metaTickets) { + this.metaTickets = metaTickets; + } + + public String getMetaCategories() { + return metaCategories; + } + + public void setMetaCategories(String metaCategories) { + this.metaCategories = metaCategories; + } + + public String getMetaOthers() { + return metaOthers; + } + + public void setMetaOthers(String metaOthers) { + this.metaOthers = metaOthers; + } + @Override public String toString() { return "ZeroCodeCsvReport{" + @@ -75,11 +111,15 @@ public String toString() { ", stepName='" + stepName + '\'' + ", stepLoop=" + stepLoop + ", correlationId='" + correlationId + '\'' + + ", requestTimeStamp='" + requestTimeStamp + '\'' + + ", responseDelayMilliSec=" + responseDelayMilliSec + + ", responseTimeStamp='" + responseTimeStamp + '\'' + ", result='" + result + '\'' + ", method='" + method + '\'' + - ", requestTimeStamp=" + requestTimeStamp + - ", responseTimeStamp=" + responseTimeStamp + - ", responseDelayMilliSec=" + responseDelayMilliSec + + ", metaAuthors='" + metaAuthors + '\'' + + ", metaTickets='" + metaTickets + '\'' + + ", metaCategories='" + metaCategories + '\'' + + ", metaOthers='" + metaOthers + '\'' + '}'; } } From c74c743d2a9bc63d90c21af1536f8cc96aaf227a Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Thu, 22 Aug 2024 12:01:29 +0530 Subject: [PATCH 20/25] important comments added --- .../core/domain/reports/csv/ZeroCodeCsvReport.java | 3 +++ .../zerocode/core/report/ZeroCodeReportGeneratorImpl.java | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java index ab107cbe..2c3e845d 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/csv/ZeroCodeCsvReport.java @@ -11,6 +11,7 @@ public class ZeroCodeCsvReport { String requestTimeStamp; String responseTimeStamp; private Double responseDelayMilliSec; + // defining meta data fields private String metaAuthors; private String metaTickets; private String metaCategories; @@ -71,6 +72,8 @@ public String getResponseTimeStamp() { return responseTimeStamp; } + // defining meta data field setters and getters + public String getMetaAuthors() { return metaAuthors; } diff --git a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java index 6531fbf8..4094404a 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java +++ b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java @@ -99,7 +99,9 @@ public void generateExtentReport() { thisReport.getResults().forEach(thisScenario -> { ExtentTest test = extentReports.createTest(thisScenario.getScenarioName()); - // Add meta information to the test + /**This code checks if the scenario has meta data. + If it does, it iterates through each meta data entry and adds it to + the Extent report as an info label.**/ if (thisScenario.getMeta() != null) { for (Map.Entry> entry : thisScenario.getMeta().entrySet()) { String key = entry.getKey(); @@ -286,6 +288,7 @@ public void generateCsvReport(List zeroCodeCsvReportRows) { .addColumn("responseTimeStamp") .addColumn("result") .addColumn("method") + // This adds new columns to the CSV schema for each type of meta data. .addColumn("metaAuthors") .addColumn("metaTickets") .addColumn("metaCategories") @@ -327,6 +330,9 @@ public List buildCsvRows() { // Add meta information Map> meta = thisResult.getMeta(); if (meta != null) { + /**This code retrieves the meta data from the test result. If meta data exists, + * it joins the list of values for each meta data type into a comma-separated + * string and adds it to the CSV row.**/ csvFileBuilder.metaAuthors(String.join(", ", meta.getOrDefault("authors", Collections.emptyList()))); csvFileBuilder.metaTickets(String.join(", ", meta.getOrDefault("tickets", Collections.emptyList()))); csvFileBuilder.metaCategories(String.join(", ", meta.getOrDefault("categories", Collections.emptyList()))); From 80eb7458935fe952795d810d3081280912a03e16 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Fri, 23 Aug 2024 16:14:43 +0530 Subject: [PATCH 21/25] meta data visible in csv reports --- .../java/org/jsmart/zerocode/core/domain/ScenarioSpec.java | 4 ++-- .../core/domain/builders/ZeroCodeExecReportBuilder.java | 6 ++++-- .../zerocode/core/domain/reports/ZeroCodeExecResult.java | 4 +++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java b/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java index d61b0af0..d2425eb3 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/ScenarioSpec.java @@ -16,10 +16,10 @@ public class ScenarioSpec { private final String scenarioName; private final List steps; private final Parameterized parameterized; - private Map> meta; + private static Map> meta; // Add getter and setter for meta - public Map> getMeta() { + public static Map> getMeta() { return meta; } public void setMeta(Map> meta) { diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java index 63a8f4d8..ad1ea279 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java @@ -2,22 +2,24 @@ import org.jsmart.zerocode.core.domain.reports.ZeroCodeReportStep; import org.jsmart.zerocode.core.domain.reports.ZeroCodeExecResult; +import org.jsmart.zerocode.core.domain.ScenarioSpec; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; public class ZeroCodeExecReportBuilder { private String scenarioName; private Integer loop; private List steps = Collections.synchronizedList(new ArrayList()); - + private Map> meta = ScenarioSpec.getMeta(); public static ZeroCodeExecReportBuilder newInstance() { return new ZeroCodeExecReportBuilder(); } public ZeroCodeExecResult build() { - ZeroCodeExecResult built = new ZeroCodeExecResult(scenarioName, loop, steps); + ZeroCodeExecResult built = new ZeroCodeExecResult(scenarioName, loop, steps, meta); return built; } diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java index 54a3da25..7c0951b4 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java @@ -19,10 +19,12 @@ public class ZeroCodeExecResult { public ZeroCodeExecResult( @JsonProperty("scenarioName")String scenarioName, @JsonProperty("stepLoop")Integer loop, - @JsonProperty("steps")List steps) { + @JsonProperty("steps")List steps, + @JsonProperty("meta") Map> meta) { this.scenarioName = scenarioName; this.loop = loop; this.steps = steps; + this.meta = meta; } public String getScenarioName() { From c41088ce8ea041638ae6ec33e66214037677aa50 Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Fri, 23 Aug 2024 16:23:40 +0530 Subject: [PATCH 22/25] unused setMeta removed from ZeroCodeExecResult.java --- .../core/domain/builders/ZeroCodeExecReportBuilder.java | 1 + .../zerocode/core/domain/reports/ZeroCodeExecResult.java | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java index ad1ea279..49d79122 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeExecReportBuilder.java @@ -14,6 +14,7 @@ public class ZeroCodeExecReportBuilder { private Integer loop; private List steps = Collections.synchronizedList(new ArrayList()); private Map> meta = ScenarioSpec.getMeta(); + public static ZeroCodeExecReportBuilder newInstance() { return new ZeroCodeExecReportBuilder(); } diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java index 7c0951b4..7320c49f 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/reports/ZeroCodeExecResult.java @@ -56,7 +56,4 @@ public Map> getMeta() { return meta; } - public void setMeta(Map> meta) { - this.meta = meta; - } } From f6feeaddd8e8e5e1f9d02bdcb0991a75b7d4675b Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Thu, 26 Sep 2024 10:09:55 +0530 Subject: [PATCH 23/25] make folder and file names lowercase for consistency --- .../MetaDataTest.java => metadatatest/metadatatest.java} | 6 +++--- .../MetaDataTest.json => metadatatest/metadatatest.json} | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/{MetaDataTest/MetaDataTest.java => metadatatest/metadatatest.java} (72%) rename http-testing/src/test/resources/{MetaDataTest/MetaDataTest.json => metadatatest/metadatatest.json} (100%) diff --git a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/metadatatest.java similarity index 72% rename from http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java rename to http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/metadatatest.java index dd00f4c9..873953ff 100644 --- a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/MetaDataTest/MetaDataTest.java +++ b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/metadatatest.java @@ -1,4 +1,4 @@ -package org.jsmart.zerocode.testhelp.tests.MetaDataTest; +package org.jsmart.zerocode.testhelp.tests.metadatatest; import org.jsmart.zerocode.core.domain.JsonTestCase; import org.jsmart.zerocode.core.domain.TargetEnv; @@ -8,9 +8,9 @@ @TargetEnv("github_host.properties") @RunWith(ZeroCodeUnitRunner.class) -public class MetaDataTest { +public class metadatatest { @Test - @JsonTestCase("MetaDataTest/MetaDataTest.json") + @JsonTestCase("metadatatest/metadatatest.json") public void testmetadata() throws Exception { } diff --git a/http-testing/src/test/resources/MetaDataTest/MetaDataTest.json b/http-testing/src/test/resources/metadatatest/metadatatest.json similarity index 100% rename from http-testing/src/test/resources/MetaDataTest/MetaDataTest.json rename to http-testing/src/test/resources/metadatatest/metadatatest.json From 0360679c2e09bbf85f0a6f1f3c4465b321948afa Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Fri, 27 Sep 2024 10:31:04 +0530 Subject: [PATCH 24/25] changed class name from metdatatest to MetaDataTest --- .../metadatatest/{metadatatest.java => MetaDataTest.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/{metadatatest.java => MetaDataTest.java} (84%) diff --git a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/metadatatest.java b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/MetaDataTest.java similarity index 84% rename from http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/metadatatest.java rename to http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/MetaDataTest.java index 873953ff..c0a08ccd 100644 --- a/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/metadatatest.java +++ b/http-testing/src/test/java/org/jsmart/zerocode/testhelp/tests/metadatatest/MetaDataTest.java @@ -8,10 +8,10 @@ @TargetEnv("github_host.properties") @RunWith(ZeroCodeUnitRunner.class) -public class metadatatest { +public class MetaDataTest { @Test @JsonTestCase("metadatatest/metadatatest.json") - public void testmetadata() throws Exception { + public void testMetaData() throws Exception { } } \ No newline at end of file From d72a00d93bbd2a4f7baf8fb1ec12d2af97ee087e Mon Sep 17 00:00:00 2001 From: prayascoriolis Date: Fri, 4 Oct 2024 15:00:18 +0530 Subject: [PATCH 25/25] Refactor: Rename meta methods to use 'set' prefix in ZeroCodeCsvReportBuilder --- .../core/domain/builders/ZeroCodeCsvReportBuilder.java | 8 ++++---- .../zerocode/core/report/ZeroCodeReportGeneratorImpl.java | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java index 4df65e2b..97b9bb41 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java +++ b/core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeCsvReportBuilder.java @@ -82,22 +82,22 @@ public ZeroCodeCsvReportBuilder responseDelayMilliSec(Double responseDelayMilliS return this; } - public ZeroCodeCsvReportBuilder metaAuthors(String metaAuthors) { + public ZeroCodeCsvReportBuilder setMetaAuthors(String metaAuthors) { this.metaAuthors = metaAuthors; return this; } - public ZeroCodeCsvReportBuilder metaTickets(String metaTickets) { + public ZeroCodeCsvReportBuilder setMetaTickets(String metaTickets) { this.metaTickets = metaTickets; return this; } - public ZeroCodeCsvReportBuilder metaCategories(String metaCategories) { + public ZeroCodeCsvReportBuilder setMetaCategories(String metaCategories) { this.metaCategories = metaCategories; return this; } - public ZeroCodeCsvReportBuilder metaOthers(String metaOthers) { + public ZeroCodeCsvReportBuilder setMetaOthers(String metaOthers) { this.metaOthers = metaOthers; return this; } diff --git a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java index 4094404a..56398b1a 100644 --- a/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java +++ b/core/src/main/java/org/jsmart/zerocode/core/report/ZeroCodeReportGeneratorImpl.java @@ -333,10 +333,10 @@ public List buildCsvRows() { /**This code retrieves the meta data from the test result. If meta data exists, * it joins the list of values for each meta data type into a comma-separated * string and adds it to the CSV row.**/ - csvFileBuilder.metaAuthors(String.join(", ", meta.getOrDefault("authors", Collections.emptyList()))); - csvFileBuilder.metaTickets(String.join(", ", meta.getOrDefault("tickets", Collections.emptyList()))); - csvFileBuilder.metaCategories(String.join(", ", meta.getOrDefault("categories", Collections.emptyList()))); - csvFileBuilder.metaOthers(String.join(", ", meta.getOrDefault("others", Collections.emptyList()))); + csvFileBuilder.setMetaAuthors(String.join(", ", meta.getOrDefault("authors", Collections.emptyList()))); + csvFileBuilder.setMetaTickets(String.join(", ", meta.getOrDefault("tickets", Collections.emptyList()))); + csvFileBuilder.setMetaCategories(String.join(", ", meta.getOrDefault("categories", Collections.emptyList()))); + csvFileBuilder.setMetaOthers(String.join(", ", meta.getOrDefault("others", Collections.emptyList()))); } thisResult.getSteps().forEach(thisStep -> {