Advertisement
Guest User

Untitled

a guest
Apr 16th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.24 KB | None | 0 0
  1. SwingUtilities.invokeLater(() -> {
  2. JFrame mainWindow = new JFrame();
  3. mainWindow = new JFrame("MainFenster");
  4. mainWindow.setSize(500, 500);
  5. mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  6. mainWindow.setLocationRelativeTo(null);
  7. mainWindow.setLayout(new BorderLayout());
  8. LoginView loginView = new SwingLoginView(mainWindow);
  9.  
  10. LoginModel loginModel = new LoginModelImpl();
  11. LoginService loginService = new LoginServiceImpl(loginModel);
  12.  
  13. LoginPresenter presenter = new LoginPresenter(loginView, loginService);
  14. loginView.setPresenter(presenter);
  15.  
  16. mainWindow.setVisible(true);
  17.  
  18. });
  19.  
  20. public interface View {
  21. // Not sure what woudl go here, but just in case...
  22. }
  23.  
  24. public interface LoginView extends View {
  25.  
  26. void setErrorMessage(String errorMessage);
  27.  
  28. void setNotificationMessage(String message);
  29.  
  30. void navigateToHome(); // Should go here?
  31.  
  32. void setPresenter(LoginPresenter presenter);
  33.  
  34. interface LoginViewEventListener {
  35. void loginButtonClicked(String username, String password);
  36. }
  37.  
  38. }
  39.  
  40. public class SwingLoginView implements LoginView {
  41.  
  42. private JFrame mainFrame;
  43. private LoginPresenter presenter;
  44. private JTextArea errorMessage;
  45. private JTextArea password;
  46. private JTextArea username;
  47. private JTextArea notificationMessage;
  48. private JPanel panel;
  49.  
  50. public SwingLoginView(JFrame mainWindow) {
  51. this.mainFrame = mainWindow;
  52. inititialize();
  53.  
  54. }
  55.  
  56. private void inititialize() {
  57.  
  58. initializeComponents();
  59.  
  60. }
  61.  
  62. private void initializeComponents() {
  63. errorMessage = new JTextArea();
  64. errorMessage.setText("Hello");
  65.  
  66. notificationMessage = new JTextArea();
  67. notificationMessage.setText("UU");
  68.  
  69. password = new JTextArea();
  70. password.setText("password");
  71.  
  72. username = new JTextArea();
  73. username.setText("username");
  74.  
  75. JButton loginButton = new JButton("Press");
  76. loginButton.addActionListener((e) -> {
  77. // Could validation go here?
  78. presenter.loginButtonClicked(username.getText(), password.getText());
  79. });
  80. panel = new JPanel();
  81. panel.add(loginButton);
  82.  
  83. panel.add(errorMessage);
  84. panel.add(notificationMessage);
  85. panel.add(password);
  86. panel.add(username);
  87. mainFrame.add(panel, BorderLayout.NORTH);
  88. }
  89.  
  90. @Override
  91. public void setErrorMessage(String errorMessage) {
  92. this.errorMessage.setText(errorMessage);
  93. }
  94.  
  95. @Override
  96. public void setNotificationMessage(String message) {
  97. this.notificationMessage.setText(message);
  98.  
  99. }
  100.  
  101. @Override
  102. public void navigateToHome() {
  103. // TODO Auto-generated method stub
  104.  
  105. }
  106.  
  107. @Override
  108. public void setPresenter(LoginPresenter presenter) {
  109. this.presenter = presenter;
  110.  
  111. }
  112. }
  113.  
  114. public class LoginPresenter implements Presenter, LoginView.LoginViewEventListener {
  115.  
  116. private LoginView referenceToLoginView;
  117. private LoginService referenceToLoginService;
  118.  
  119. public LoginPresenter(LoginView referenceToLoginView, LoginService loginService) {
  120. this.referenceToLoginView = referenceToLoginView;
  121. this.referenceToLoginService = loginService;
  122. }
  123.  
  124. @Override
  125. public void loginButtonClicked(String username, String password) {
  126. System.out.println("presenter called");
  127.  
  128. if (username.equals("") || password.equals("")) {
  129. this.referenceToLoginView.setErrorMessage("Password and or username empty");
  130. return; // OK?
  131. }
  132.  
  133. LoginModel loginModel = referenceToLoginService.login(username, password);
  134.  
  135. referenceToLoginView.setNotificationMessage("NEU");
  136.  
  137. }
  138.  
  139. @Override
  140. public View getView() {
  141. return referenceToLoginView;
  142. }
  143. }
  144.  
  145. @RunWith(MockitoJUnitRunner.class)
  146. public class LoginTest {
  147.  
  148. @Mock
  149. private LoginView mockLoginView;
  150. @Mock
  151. private LoginService mockLoginService;
  152. private LoginPresenter loginPresenter;
  153.  
  154. @Before
  155. public void setUp() {
  156. loginPresenter = new LoginPresenter(mockLoginView, mockLoginService);
  157. mockLoginView.setPresenter(loginPresenter);
  158. }
  159.  
  160. @Test
  161. public void loginShouldFailIfCredentialsAreEmpty() {
  162. loginPresenter.loginButtonClicked("", "");
  163. Mockito.verify(mockLoginView).setErrorMessage("Password and or username empty");
  164. }
  165.  
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement