package candiedOrange.plugin; import candiedOrange.plugin.usecases.ButtonPushUseCaseInteractor; import candiedOrange.plugin.usecases.ButtonUseCaseInputPort; import candiedOrange.plugin.usecases.ButtonUseCaseOutputPort; import org.junit.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class TestUseCases { public static class PushMock implements ButtonUseCaseInputPort, ButtonUseCaseOutputPort { boolean pushed; public boolean isPushed() { return pushed; } public void push() { this.pushed = true; } } @Test public void testInteractor() { PushMock presentorMock = new PushMock(); assertFalse( presentorMock.isPushed() ); new ButtonPushUseCaseInteractor(presentorMock).push(); assertTrue( presentorMock.isPushed() ); } }
package candiedOrange.plugin; import candiedOrange.plugin.adapters.ButtonControler; import candiedOrange.plugin.adapters.ButtonPresenter; import candiedOrange.plugin.usecases.ButtonPushUseCaseInteractor; import candiedOrange.plugin.usecases.ButtonUseCaseInputPort; import candiedOrange.plugin.usecases.ButtonUseCaseOutputPort; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class TestAdapters { private final ByteArrayOutputStream outContent = new ByteArrayOutputStream(); private PrintStream oldStdOut; @Before public void setUpStreams() { oldStdOut = System.out; System.setOut( new PrintStream(outContent) ); } @After public void cleanUpStreams() { System.setOut(oldStdOut); } @Test public void testOut() { System.out.print("hello"); assertEquals( "hello", outContent.toString() ); } @Test public void testPresenter() { outContent.reset(); new ButtonPresenter().push(); assertEquals( "push", outContent.toString() ); } @Test public void testControler() { TestUseCases.PushMock interactorMock = new TestUseCases.PushMock(); assertFalse( interactorMock.isPushed() ); new ButtonControler(interactorMock).push(); assertTrue( interactorMock.isPushed() ); } @Test public void testEndToEnd() { outContent.reset(); new ButtonControler( new ButtonPushUseCaseInteractor( new ButtonPresenter() ) ).push(); assertEquals( "push", outContent.toString() ); } }