Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. package candiedOrange.plugin.adapters;
  2.  
  3. import candiedOrange.plugin.usecases.ButtonUseCaseInputPort;
  4.  
  5. public class ButtonControler {
  6. ButtonUseCaseInputPort button;
  7.  
  8. public ButtonControler(ButtonUseCaseInputPort button) {
  9. this.button = button;
  10. }
  11.  
  12. public void push() {
  13. button.push();
  14. }
  15. }
  16.  
  17. package candiedOrange.plugin.usecases;
  18.  
  19. public interface ButtonUseCaseInputPort {
  20. void push();
  21. }
  22.  
  23. package candiedOrange.plugin.usecases;
  24.  
  25. public class ButtonPushUseCaseInteractor implements ButtonUseCaseInputPort {
  26. ButtonUseCaseOutputPort outputPort;
  27.  
  28. public ButtonPushUseCaseInteractor(ButtonUseCaseOutputPort outputPort){
  29. this.outputPort = outputPort;
  30. }
  31.  
  32. @Override
  33. public void push() {
  34. outputPort.push();
  35. }
  36. }
  37.  
  38. package candiedOrange.plugin.usecases;
  39.  
  40. public interface ButtonUseCaseOutputPort {
  41. void push();
  42. }
  43.  
  44. package candiedOrange.plugin.adapters;
  45.  
  46. import candiedOrange.plugin.usecases.ButtonUseCaseOutputPort;
  47.  
  48. public class ButtonPresenter implements ButtonUseCaseOutputPort{
  49.  
  50. @Override
  51. public void push() {
  52. System.out.print("push");
  53. }
  54. }
  55.  
  56. package candiedOrange.plugin;
  57.  
  58. import candiedOrange.plugin.usecases.ButtonPushUseCaseInteractor;
  59. import candiedOrange.plugin.usecases.ButtonUseCaseInputPort;
  60. import candiedOrange.plugin.usecases.ButtonUseCaseOutputPort;
  61. import org.junit.Test;
  62.  
  63. import static org.junit.Assert.assertFalse;
  64. import static org.junit.Assert.assertTrue;
  65.  
  66. public class TestUseCases {
  67.  
  68. public static class PushMock implements ButtonUseCaseInputPort, ButtonUseCaseOutputPort {
  69. boolean pushed;
  70. public boolean isPushed() { return pushed; }
  71. public void push() { this.pushed = true; }
  72. }
  73.  
  74. @Test
  75. public void testInteractor() {
  76. PushMock presentorMock = new PushMock();
  77. assertFalse(presentorMock.isPushed());
  78. new ButtonPushUseCaseInteractor(presentorMock).push();
  79. assertTrue(presentorMock.isPushed());
  80. }
  81. }
  82.  
  83. package candiedOrange.plugin;
  84.  
  85. import candiedOrange.plugin.adapters.ButtonControler;
  86. import candiedOrange.plugin.adapters.ButtonPresenter;
  87. import candiedOrange.plugin.usecases.ButtonPushUseCaseInteractor;
  88. import candiedOrange.plugin.usecases.ButtonUseCaseInputPort;
  89. import candiedOrange.plugin.usecases.ButtonUseCaseOutputPort;
  90. import org.junit.After;
  91. import org.junit.Before;
  92. import org.junit.Test;
  93.  
  94. import java.io.ByteArrayOutputStream;
  95. import java.io.PrintStream;
  96.  
  97. import static org.junit.Assert.assertEquals;
  98. import static org.junit.Assert.assertFalse;
  99. import static org.junit.Assert.assertTrue;
  100.  
  101. public class TestAdapters {
  102.  
  103. private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
  104.  
  105. private PrintStream oldStdOut;
  106.  
  107. @Before
  108. public void setUpStreams() {
  109. oldStdOut = System.out;
  110. System.setOut(new PrintStream(outContent));
  111. }
  112.  
  113. @After
  114. public void cleanUpStreams() {
  115. System.setOut(oldStdOut);
  116. }
  117.  
  118. @Test
  119. public void testOut() {
  120. System.out.print("hello");
  121. assertEquals("hello", outContent.toString());
  122. }
  123.  
  124. @Test
  125. public void testPresenter() {
  126. outContent.reset();
  127. new ButtonPresenter().push();
  128. assertEquals("push", outContent.toString());
  129. }
  130.  
  131. @Test
  132. public void testControler() {
  133. TestUseCases.PushMock interactorMock = new TestUseCases.PushMock();
  134. assertFalse(interactorMock.isPushed());
  135. new ButtonControler(interactorMock).push();
  136. assertTrue(interactorMock.isPushed());
  137. }
  138.  
  139. @Test
  140. public void testEndToEnd() {
  141. outContent.reset();
  142. new ButtonControler(new ButtonPushUseCaseInteractor(new ButtonPresenter())).push();
  143. assertEquals("push", outContent.toString());
  144. }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement