Skip to content

Commit

Permalink
https://github.com/cbeust/testng/issues/2469
Browse files Browse the repository at this point in the history
  • Loading branch information
aditya-qapitol committed Jan 28, 2021
1 parent 841ae94 commit 965323c
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 5 deletions.
1 change: 1 addition & 0 deletions CHANGES.txt
@@ -1,4 +1,5 @@
Current
Fixed: GITHUB-2469: Parameters added in XmlTest during AlterSuiteListener not available in SuiteListener (C.V.Aditya)
Fixed: GITHUB-2296: Fix for assertEquals not working for sets as order is not guaranteed. (Prashant Maroti)
Fixed: GITHUB-2465: Fix bux where Strings.join returns empty String
Fixed: GITHUB-1632: throwing SkipException sets iTestResult status to Failure instead of Skip (Julien Herr & Krishnan Mahadevan)
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/org/testng/xml/XmlTest.java
Expand Up @@ -426,7 +426,9 @@ public Object clone() {
result.setJUnit(isJUnit());
result.setParallel(getParallel());
result.setVerbose(getVerbose());
result.setParameters(getLocalParameters());
Map<String, String> localParameters = new HashMap<>();
localParameters.putAll(getLocalParameters());
result.setParameters(localParameters);
result.setXmlPackages(getXmlPackages());
result.setTimeOut(getTimeOut());

Expand Down
68 changes: 64 additions & 4 deletions src/test/java/test/listeners/AlterSuiteListenerTest.java
@@ -1,13 +1,12 @@
package test.listeners;

import org.testng.Assert;
import org.testng.IAlterSuiteListener;
import org.testng.TestNG;
import org.testng.*;
import org.testng.annotations.Test;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
import test.SimpleBaseTest;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

Expand All @@ -23,7 +22,7 @@ public void executionListenerWithXml() {

@Test
public void executionListenerWithoutListener() {
XmlSuite suite = runTest(AlterSuiteListener1SampleTest.class, null/*Donot add the listener*/);
XmlSuite suite = runTest(AlterSuiteListener1SampleTest.class);
Assert.assertEquals(suite.getName(), ALTER_SUITE_LISTENER);
}

Expand All @@ -33,6 +32,29 @@ public void executionListenerWithXml2() {
Assert.assertEquals(suite.getTests().size(), 2);
}

@Test(description = "GITHUB-2469")
public void executionListenerWithXml3() {
XmlSuite suite = runTest(AlterSuiteListener1SampleTest.class,
AlterXmlTestWithParameterInSuiteListener.class.getName(), AlteredXmlSuiteReadListener.class.getName());
Assert.assertEquals(suite.getTests().size(), 2);
}

private XmlSuite runTest(Class<?> listenerClass, String... listenerNames) {
XmlSuite s = createXmlSuite(ALTER_SUITE_LISTENER);
createXmlTest(s, "Test", listenerClass.getName());
boolean addListener = (listenerNames != null);

if (addListener) {
for (String listenerName:
listenerNames) {
s.addListener(listenerName);
}
}
TestNG tng = create();
tng.setXmlSuites(Arrays.asList(s));
tng.run();
return s;
}

private XmlSuite runTest(Class<?> listenerClass, String listenerName) {
XmlSuite s = createXmlSuite(ALTER_SUITE_LISTENER);
Expand Down Expand Up @@ -78,4 +100,42 @@ public void alter(List<XmlSuite> suites) {
}
}

public static class AlterXmlTestWithParameterInSuiteListener implements IAlterSuiteListener {

@Override
public void alter(List<XmlSuite> suites) {
XmlSuite suite = suites.get(0);
List<XmlTest> tests = suite.getTests();
XmlTest test = tests.get(0);

List<XmlTest> newXmlTests = new ArrayList<>();
XmlTest newXmlTest = (XmlTest) test.clone();
newXmlTest.setName("name_1");
newXmlTest.addParameter("param", "1");
newXmlTests.add(newXmlTest);

newXmlTest = (XmlTest) test.clone();
newXmlTest.setName("name_2");
newXmlTest.addParameter("param", "2");
newXmlTests.add(newXmlTest);

suite.setTests(newXmlTests);
}
}

public static class AlteredXmlSuiteReadListener implements ISuiteListener {

@Override
public void onStart(ISuite suite) {
XmlSuite xmlSuite = suite.getXmlSuite();
List<XmlTest> tests = xmlSuite.getTests();
int i = 1;
for (XmlTest xmlTest:
tests) {
Assert.assertEquals(xmlTest.getParameter("param"), String.valueOf(i));
i++;
}
}
}

}
6 changes: 6 additions & 0 deletions src/test/resources/testng.xml
Expand Up @@ -995,5 +995,11 @@
<class name="test.timeout.github2440.TimeoutWithNoExecutorTest"/>
</classes>
</test>

<test name="GITHUB-2469">
<classes>
<class name="test.listeners.AlterSuiteListenerTest"/>
</classes>
</test>
</suite>

0 comments on commit 965323c

Please sign in to comment.