Skip to content

Commit 7399174

Browse files
committed
- F Options.addReporter(reporter)
1 parent b336f9f commit 7399174

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

approvaltests-tests/src/test/java/org/approvaltests/OptionsTest.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.approvaltests;
22

33
import com.spun.util.ArrayUtils;
4-
import com.spun.util.introspection.Caller;
54
import org.approvaltests.approvers.FileApprover;
65
import org.approvaltests.awt.AwtApprovals;
76
import org.approvaltests.combinations.CombinationApprovals;
@@ -10,6 +9,9 @@
109
import org.approvaltests.core.Options;
1110
import org.approvaltests.core.VerifyResult;
1211
import org.approvaltests.reporters.FirstWorkingReporter;
12+
import org.approvaltests.reporters.Junit4Reporter;
13+
import org.approvaltests.reporters.Junit5Reporter;
14+
import org.approvaltests.reporters.MultiReporter;
1315
import org.approvaltests.reporters.UseReporter;
1416
import org.approvaltests.reporters.UseReporterTest;
1517
import org.approvaltests.velocity.VelocityApprovals;
@@ -195,4 +197,17 @@ void verifyCustomComparator()
195197
{
196198
Approvals.verify("The approval file is empty", new Options().withComparator((a, b) -> VerifyResult.SUCCESS));
197199
}
200+
@Test
201+
void testAddReporter()
202+
{
203+
Options options = new Options().withReporter(new Junit5Reporter()).withReporter(new Junit4Reporter());
204+
ApprovalFailureReporter reporter = options.getReporter();
205+
assertTrue(reporter instanceof Junit4Reporter);
206+
Options options2 = new Options().withReporter(new MultiReporter(new Junit5Reporter(), new Junit4Reporter()));
207+
ApprovalFailureReporter reporter2 = options2.getReporter();
208+
assertEquals(reporter2.toString(), "Junit5Reporter, Junit4Reporter");
209+
Options options3 = new Options().withReporter(new Junit5Reporter()).andReporter(new Junit4Reporter());
210+
ApprovalFailureReporter reporter3 = options3.getReporter();
211+
assertEquals(reporter3.toString(), "Junit5Reporter, Junit4Reporter");
212+
}
198213
}

approvaltests/src/main/java/org/approvaltests/core/Options.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.approvaltests.inline.InlineOptions;
99
import org.approvaltests.namer.ApprovalNamer;
1010
import org.approvaltests.namer.NamerWrapper;
11+
import org.approvaltests.reporters.MultiReporter;
1112
import org.approvaltests.scrubbers.NoOpScrubber;
1213
import org.approvaltests.writers.ApprovalWriterFactory;
1314
import org.approvaltests.writers.DefaultApprovalWriterFactory;
@@ -61,6 +62,10 @@ public Options withReporter(ApprovalFailureReporter reporter)
6162
{
6263
return new Options(fields, Fields.REPORTER, reporter);
6364
}
65+
public Options andReporter(ApprovalFailureReporter reporter)
66+
{
67+
return this.withReporter(new MultiReporter(this.getReporter(), reporter));
68+
}
6469
public Function2<File, File, VerifyResult> getComparator()
6570
{
6671
return ArrayUtils.getOrElse(fields, Fields.COMPARATOR, () -> FileApprover::approveTextFile);

approvaltests/src/main/java/org/approvaltests/reporters/MultiReporter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.approvaltests.reporters;
22

33
import org.approvaltests.core.ApprovalFailureReporter;
4+
import org.lambda.query.Queryable;
45

56
import java.util.ArrayList;
67
import java.util.Arrays;
@@ -40,4 +41,9 @@ public ApprovalFailureReporter[] getReporters()
4041
{
4142
return reporters.toArray(new ApprovalFailureReporter[0]);
4243
}
44+
@Override
45+
public String toString()
46+
{
47+
return Queryable.as(reporters.stream()).join(", ", r -> r.getClass().getSimpleName());
48+
}
4349
}

0 commit comments

Comments
 (0)