package org.teachingextensions.approvals.lite; import junit.framework.TestCase; import org.teachingextensions.approvals.lite.reporters.QuietReporter; import org.teachingextensions.approvals.lite.reporters.UseReporter; @UseReporter(QuietReporter.class) public class ReportInjectionTest extends TestCase { public static class MyReporter implements ApprovalFailureReporter, ApprovalFailureOverrider { @Override public void report(String received, String approved) throws Exception { } @Override public boolean askToChangeReceivedToApproved(String received, String approved) throws Exception { called = getClass(); return true; } } private static Class<? extends MyReporter> called = null; @UseReporter(MyReporter.class) public void testOverrideReporterByParameter() throws Exception { Approvals.verify("some text"); assertEquals(MyReporter.class, called); } }