Skip to content

Commit 9adcb1f

Browse files
committed
fixes #211 NPE on RemoveTest that does not exist
1 parent 57db72b commit 9adcb1f

File tree

4 files changed

+35
-7
lines changed

4 files changed

+35
-7
lines changed

ExtentReports.Tests/Core/ExtentReportsRemoveTestTest.cs

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,30 @@ public void Setup()
1919
[Test]
2020
public void RemoveTest()
2121
{
22+
_extent.RemoveTest(_test);
23+
Assert.AreEqual(0, _extent.Report.Tests.Count);
24+
}
25+
26+
[Test]
27+
public void RemoveTestThatDoesNotExist()
28+
{
29+
_extent.RemoveTest("Default");
2230
Assert.AreEqual(1, _extent.Report.Tests.Count);
31+
2332
_extent.RemoveTest(_test);
2433
Assert.AreEqual(0, _extent.Report.Tests.Count);
2534
}
2635

2736
[Test]
2837
public void RemoveTestByName()
2938
{
30-
Assert.AreEqual(1, _extent.Report.Tests.Count);
3139
_extent.RemoveTest("Test");
3240
Assert.AreEqual(0, _extent.Report.Tests.Count);
3341
}
3442

3543
[Test]
3644
public void RemoveTestByID()
3745
{
38-
Assert.AreEqual(1, _extent.Report.Tests.Count);
3946
_extent.RemoveTest(_test.Test.Id);
4047
Assert.AreEqual(0, _extent.Report.Tests.Count);
4148
}
@@ -51,6 +58,22 @@ public void RemoveNode()
5158
Assert.AreEqual(0, _extent.Report.Tests.ToList()[0].Children.Count);
5259
}
5360

61+
[Test]
62+
public void RemoveNodeThatDoesNotExist()
63+
{
64+
var node = _test.CreateNode("Node");
65+
Assert.AreEqual(1, _extent.Report.Tests.Count);
66+
Assert.AreEqual(1, _extent.Report.Tests.ToList()[0].Children.Count);
67+
68+
_extent.RemoveTest("DefaultNode");
69+
Assert.AreEqual(1, _extent.Report.Tests.Count);
70+
Assert.AreEqual(1, _extent.Report.Tests.ToList()[0].Children.Count);
71+
72+
_extent.RemoveTest(node);
73+
Assert.AreEqual(1, _extent.Report.Tests.Count);
74+
Assert.AreEqual(0, _extent.Report.Tests.ToList()[0].Children.Count);
75+
}
76+
5477
[Test]
5578
public void RemoveNodeByName()
5679
{

ExtentReports.Tests/Reporter/SparkReporterTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ public void SparkOffline()
140140
[Test]
141141
public void SparkXMLConfig()
142142
{
143-
var xmlConfigPath = Path.Combine(@"..\..\..\..\", @"config\spark-config.xml");
143+
var xmlConfigPath = Path.Combine(@"../../../../", @"config/spark-config.xml");
144144
var spark = new ExtentSparkReporter("Spark.html");
145145
spark.LoadXMLConfig(xmlConfigPath);
146146
Assert.AreEqual(spark.Config.Theme, Theme.Standard);
@@ -151,7 +151,7 @@ public void SparkXMLConfig()
151151
[Test]
152152
public void SparkJSONConfig()
153153
{
154-
var xmlConfigPath = Path.Combine(@"..\..\..\..\", @"config\spark-config.json");
154+
var xmlConfigPath = Path.Combine(@"../../../../", @"config/spark-config.json");
155155
var spark = new ExtentSparkReporter("Spark.html");
156156
spark.LoadJSONConfig(xmlConfigPath);
157157
Assert.AreEqual(spark.Config.Theme, Theme.Standard);

ExtentReports/Core/AbstractProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ protected internal void OnMediaAdded(Media m, Log log, Test test)
4545

4646
private void TryResolveMediaPath(Media media)
4747
{
48-
if (_mediaResolverPath == null || (media is ScreenCapture && ((ScreenCapture)media).Base64 != null))
48+
if (_mediaResolverPath == null || (media is ScreenCapture capture && capture.Base64 != null))
4949
{
5050
return;
5151
}

ExtentReports/Model/Report.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,14 @@ public void AddTest(Test test)
7474

7575
public void RemoveTest(IList<Test> tests, Test test, bool deep = true)
7676
{
77-
var item = tests.SingleOrDefault(x => x.Id == test.Id);
77+
if (test == null)
78+
{
79+
return;
80+
}
81+
82+
var match = tests.Any(x => x.Id == test.Id);
7883

79-
if (item == null && deep)
84+
if (!match && deep)
8085
{
8186
foreach (Test t in tests)
8287
{

0 commit comments

Comments
 (0)