diff --git a/Swing/src/main/java/org/codecop/loginform/LoginButtonListener.java b/Swing/src/main/java/org/codecop/loginform/LoginButtonListener.java deleted file mode 100644 index 696f6a0..0000000 --- a/Swing/src/main/java/org/codecop/loginform/LoginButtonListener.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.codecop.loginform; - -public interface LoginButtonListener { - - void loginButtonClicked(); - -} diff --git a/Swing/src/main/java/org/codecop/loginform/LoginListener.java b/Swing/src/main/java/org/codecop/loginform/LoginListener.java new file mode 100644 index 0000000..34ac70f --- /dev/null +++ b/Swing/src/main/java/org/codecop/loginform/LoginListener.java @@ -0,0 +1,11 @@ +package org.codecop.loginform; + +public interface LoginListener { + + void lookupChanged(String lookup); + + void passwordChanged(String password); + + void loginButtonClicked(); + +} diff --git a/Swing/src/main/java/org/codecop/loginform/LoginView.java b/Swing/src/main/java/org/codecop/loginform/LoginView.java index 52e77fa..b8750e6 100644 --- a/Swing/src/main/java/org/codecop/loginform/LoginView.java +++ b/Swing/src/main/java/org/codecop/loginform/LoginView.java @@ -6,5 +6,5 @@ public interface LoginView { void showError(String message); - void registerLoginButtonListener(LoginButtonListener listener); + void registerLoginListener(LoginListener listener); } diff --git a/Swing/src/main/java/org/codecop/loginform/SwingLoginPanel.java b/Swing/src/main/java/org/codecop/loginform/SwingLoginPanel.java index 2f28b32..a0db7fb 100644 --- a/Swing/src/main/java/org/codecop/loginform/SwingLoginPanel.java +++ b/Swing/src/main/java/org/codecop/loginform/SwingLoginPanel.java @@ -25,7 +25,7 @@ public void showError(String message) { } @Override - public void registerLoginButtonListener(LoginButtonListener listener) { + public void registerLoginListener(LoginListener listener) { loginButton.addActionListener(ae -> listener.loginButtonClicked()); } diff --git a/Swing/src/test/java/org/codecop/loginform/SwingLoginViewTest.java b/Swing/src/test/java/org/codecop/loginform/SwingLoginViewTest.java index b3a84f6..c00a4bd 100644 --- a/Swing/src/test/java/org/codecop/loginform/SwingLoginViewTest.java +++ b/Swing/src/test/java/org/codecop/loginform/SwingLoginViewTest.java @@ -3,14 +3,15 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import java.awt.Color; - import javax.swing.JButton; import javax.swing.JPanel; +import javax.swing.JPasswordField; +import javax.swing.JTextField; import abbot.finder.ComponentSearchException; import abbot.finder.matchers.NameMatcher; import abbot.tester.JButtonTester; +import abbot.tester.JTextFieldTester; import junit.extensions.abbot.ComponentTestFixture; public class SwingLoginViewTest extends ComponentTestFixture { @@ -35,8 +36,8 @@ private JButton findLoginButton() throws ComponentSearchException { } public void testSendButtonClickToPresenter() throws ComponentSearchException { - LoginButtonListener listener = mock(LoginButtonListener.class); - view.registerLoginButtonListener(listener); + LoginListener listener = mock(LoginListener.class); + view.registerLoginListener(listener); JButton loginButton = findLoginButton(); JButtonTester tester = new JButtonTester(); @@ -44,4 +45,43 @@ public void testSendButtonClickToPresenter() throws ComponentSearchException { verify(listener).loginButtonClicked(); } + + // --- input fields + + public void testHasLookupFieldsWithStyle() throws ComponentSearchException { + LoginListener listener = mock(LoginListener.class); + + showFrame((JPanel) view); + JTextField lookupField = findLookupField(); + + assertEquals(20, lookupField.getColumns()); + + JTextFieldTester tester = new JTextFieldTester(); + tester.actionEnterText(lookupField, "user"); + + verify(listener).lookupChanged("user"); + } + + private JTextField findLookupField() throws ComponentSearchException { + return (JTextField) getFinder().find(new NameMatcher("LookupField")); + } + + public void testHasPasswordFieldsWithStyle() throws ComponentSearchException { + LoginListener listener = mock(LoginListener.class); + + showFrame((JPanel) view); + JPasswordField passwordField = findPasswordField(); + + assertEquals(20, passwordField.getColumns()); + + JTextFieldTester tester = new JTextFieldTester(); + tester.actionEnterText(passwordField, "secret"); + + verify(listener).passwordChanged("secret"); + } + + private JPasswordField findPasswordField() throws ComponentSearchException { + return (JPasswordField) getFinder().find(new NameMatcher("PasswordField")); + } + }