Skip to content

Commit b193c03

Browse files
committed
fixes #366
1 parent 548ee3d commit b193c03

File tree

6 files changed

+50
-30
lines changed

6 files changed

+50
-30
lines changed

src/main/java/com/aventstack/extentreports/AbstractProcessor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ protected void onTestCreated(Test test) {
3232
@Override
3333
protected void onTestRemoved(Test test) {
3434
TestService.deleteTest(getReport().getTestList(), test);
35+
getReport().getAuthorCtx().removeTest(test);
36+
getReport().getCategoryCtx().removeTest(test);
37+
getReport().getDeviceCtx().removeTest(test);
3538
super.onTestRemoved(test);
3639
}
3740

src/main/java/com/aventstack/extentreports/Status.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public static List<Status> getResolvedHierarchy(List<Status> status) {
2828
}
2929

3030
private static void resolveHierarchy(List<Status> status) {
31-
status.sort((Status s1, Status s2) -> s1.getLevel().compareTo(s2.getLevel()));
31+
status.sort(Comparator.comparing(Status::getLevel));
3232
}
3333

3434
public static Status max(Collection<Status> status) {

src/main/java/com/aventstack/extentreports/model/Test.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.util.Date;
1010
import java.util.HashMap;
1111
import java.util.HashSet;
12-
import java.util.Iterator;
1312
import java.util.List;
1413
import java.util.Map;
1514
import java.util.Set;
@@ -208,25 +207,23 @@ public void updateResult() {
208207

209208
private class StatusDeterminator {
210209
public void computeTestStatus() {
211-
List<Test> leafList = getLeafList(Test.this);
210+
List<Test> leafList = getLeafNodes(Test.this);
212211
computeStatus(leafList);
213212
}
214213

215-
private List<Test> getLeafList(Test test) {
216-
List<Test> testList = new ArrayList<>();
217-
if (test.isLeaf())
218-
testList.add(test);
219-
else
220-
for (Test t : test.getChildren())
221-
if (t.isLeaf())
222-
testList.add(t);
223-
else
224-
testList.addAll(getLeafList(t));
225-
return testList;
214+
private List<Test> getLeafNodes(Test test) {
215+
List<Test> tests = new ArrayList<>();
216+
if (test.isLeaf()) {
217+
tests.add(test);
218+
}
219+
for (Test t : test.getChildren()) {
220+
tests.addAll(getLeafNodes(t));
221+
}
222+
return tests;
226223
}
227224

228-
private void computeStatus(List<Test> testList) {
229-
testList.forEach(this::computeStatus);
225+
private void computeStatus(List<Test> tests) {
226+
tests.forEach(this::computeStatus);
230227
}
231228

232229
private void computeStatus(Test t) {

src/main/java/com/aventstack/extentreports/model/context/NamedAttributeContext.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
import java.util.HashMap;
77
import java.util.List;
88
import java.util.Map;
9+
import java.util.stream.Collectors;
910

1011
import com.aventstack.extentreports.Status;
1112
import com.aventstack.extentreports.model.NamedAttribute;
1213
import com.aventstack.extentreports.model.Test;
14+
import com.aventstack.extentreports.model.service.TestService;
1315
import com.aventstack.extentreports.util.Assert;
1416

1517
import lombok.Getter;
@@ -36,6 +38,12 @@ public void addTest(Test test) {
3638
refresh(test);
3739
}
3840

41+
public void removeTest(Test test) {
42+
Assert.notNull(test, "Test must not be null");
43+
TestService.deleteTest(testList, test);
44+
refresh();
45+
}
46+
3947
private synchronized void refresh(Test test) {
4048
statusDist.merge(test.getStatus(), 1, Integer::sum);
4149
}

src/main/java/com/aventstack/extentreports/reporter/AbstractFileReporter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public abstract class AbstractFileReporter extends AbstractFilterableReporter {
3030
private static final Logger LOG = Logger.getLogger(AbstractFileReporter.class.getName());
3131
protected static final String PATH_SEP = "/";
3232

33-
private File file;
33+
private final File file;
3434
private Map<String, Object> templateModel;
3535
private Configuration freemarkerConfig;
3636

@@ -88,12 +88,12 @@ protected String getFileNameAsExt(String fileName, String[] checkExt) {
8888
return fileName;
8989
String path = getFile().getPath();
9090
final String filePath = (getFile().isDirectory()
91-
|| path.indexOf(".") == -1)
92-
&& !Arrays.stream(checkExt).anyMatch(x -> path.endsWith(x))
91+
|| !path.contains("."))
92+
&& Arrays.stream(checkExt).noneMatch(path::endsWith)
9393
? getFile().getAbsolutePath()
9494
+ PATH_SEP + fileName
9595
: getFile().getAbsolutePath();
96-
boolean b = Arrays.stream(checkExt).anyMatch(x -> filePath.endsWith(x));
96+
boolean b = Arrays.stream(checkExt).anyMatch(filePath::endsWith);
9797
String resolved = b ? filePath : filePath + checkExt[0];
9898
new File(resolved).getParentFile().mkdirs();
9999
return resolved;

src/test/java/com/aventstack/extentreports/ExtentReportsRemoveTest.java

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,48 @@
11
package com.aventstack.extentreports;
22

33
import org.testng.Assert;
4+
import org.testng.annotations.BeforeMethod;
5+
import org.testng.annotations.Test;
46

57
public class ExtentReportsRemoveTest {
68
private static final String TEST_NAME = "TEST";
9+
private static final String TAG = "tag";
710

8-
private ExtentReports extent() {
9-
return new ExtentReports();
11+
private ExtentReports extent;
12+
13+
@BeforeMethod
14+
private void beforeMethod() {
15+
extent = new ExtentReports();
1016
}
1117

12-
@org.testng.annotations.Test
18+
@Test
1319
public void removeTest() {
14-
ExtentReports extent = extent();
1520
ExtentTest test = extent.createTest(TEST_NAME);
1621
Assert.assertEquals(extent.getReport().getTestList().size(), 1);
1722
extent.removeTest(test);
1823
Assert.assertEquals(extent.getReport().getTestList().size(), 0);
1924
}
2025

21-
@org.testng.annotations.Test
26+
@Test
2227
public void removeTestByName() {
23-
ExtentReports extent = extent();
2428
extent.createTest(TEST_NAME);
2529
Assert.assertEquals(extent.getReport().getTestList().size(), 1);
2630
extent.removeTest(TEST_NAME);
2731
Assert.assertEquals(extent.getReport().getTestList().size(), 0);
2832
}
2933

30-
@org.testng.annotations.Test
34+
@Test
35+
public void removeTestWithTag() {
36+
extent.createTest(TEST_NAME).assignCategory(TAG);
37+
Assert.assertEquals(extent.getReport().getTestList().size(), 1);
38+
Assert.assertEquals(extent.getReport().getCategoryCtx().getSet().size(), 1);
39+
extent.removeTest(TEST_NAME);
40+
Assert.assertEquals(extent.getReport().getTestList().size(), 0);
41+
Assert.assertEquals(extent.getReport().getCategoryCtx().hasItems(), false);
42+
}
43+
44+
@Test
3145
public void removeNode() {
32-
ExtentReports extent = extent();
3346
ExtentTest test = extent.createTest(TEST_NAME);
3447
ExtentTest node = test.createNode(TEST_NAME);
3548
Assert.assertEquals(extent.getReport().getTestList().size(), 1);
@@ -39,9 +52,8 @@ public void removeNode() {
3952
Assert.assertEquals(extent.getReport().getTestList().get(0).getChildren().size(), 0);
4053
}
4154

42-
@org.testng.annotations.Test
55+
@Test
4356
public void removeNodeByName() {
44-
ExtentReports extent = extent();
4557
ExtentTest test = extent.createTest(TEST_NAME + "Parent");
4658
test.createNode(TEST_NAME);
4759
Assert.assertEquals(extent.getReport().getTestList().size(), 1);

0 commit comments

Comments
 (0)