Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue #2469 #2470

Merged
merged 5 commits into from Feb 3, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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);
aditya-qapitol marked this conversation as resolved.
Show resolved Hide resolved

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) {
aditya-qapitol marked this conversation as resolved.
Show resolved Hide resolved
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));
aditya-qapitol marked this conversation as resolved.
Show resolved Hide resolved
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>