package org.teachingextensions.approvals.lite.reporters; import junit.framework.TestCase; public class ReporterChainingTest extends TestCase { public static class NonWorkingReporter implements EnvironmentAwareReporter { @Override public void report(String received, String approved) throws Exception { } @Override public boolean isWorkingInThisEnvironment(String forFile) { return false; } } public static class WorkingReporter implements EnvironmentAwareReporter { public String received; @Override public void report(String received, String approved) throws Exception { this.received = received; } @Override public boolean isWorkingInThisEnvironment(String forFile) { return true; } } public void testFirstWorkingReporter() throws Exception { WorkingReporter workingReporter = new WorkingReporter(); WorkingReporter workingReporter2 = new WorkingReporter(); FirstWorkingReporter reporter = new FirstWorkingReporter(new NonWorkingReporter(), workingReporter, workingReporter2); reporter.report("Hello", "world"); assertEquals("Hello", workingReporter.received); assertNull(workingReporter2.received); assertTrue(reporter.isWorkingInThisEnvironment("")); } }