Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package candiedOrange.plugin.adapters;
- import candiedOrange.plugin.usecases.ButtonUseCaseInputPort;
- public class ButtonControler {
- ButtonUseCaseInputPort button;
- public ButtonControler(ButtonUseCaseInputPort button) {
- this.button = button;
- }
- public void push() {
- button.push();
- }
- }
- package candiedOrange.plugin.usecases;
- public interface ButtonUseCaseInputPort {
- void push();
- }
- package candiedOrange.plugin.usecases;
- public class ButtonPushUseCaseInteractor implements ButtonUseCaseInputPort {
- ButtonUseCaseOutputPort outputPort;
- public ButtonPushUseCaseInteractor(ButtonUseCaseOutputPort outputPort){
- this.outputPort = outputPort;
- }
- @Override
- public void push() {
- outputPort.push();
- }
- }
- package candiedOrange.plugin.usecases;
- public interface ButtonUseCaseOutputPort {
- void push();
- }
- package candiedOrange.plugin.adapters;
- import candiedOrange.plugin.usecases.ButtonUseCaseOutputPort;
- public class ButtonPresenter implements ButtonUseCaseOutputPort{
- @Override
- public void push() {
- System.out.print("push");
- }
- }
- 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());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement