diff options
author | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-06-10 16:52:15 +0200 |
---|---|---|
committer | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-06-10 16:52:15 +0200 |
commit | 8e24819d8638110a4112f6898bd8d2e527a68db2 (patch) | |
tree | 7e9b2da85d6ceccd0bf5febbfc7cc77688f71b03 | |
parent | 9c281a73c0a3470289a9f96cecb42b02554aa44d (diff) | |
download | JRummikub-8e24819d8638110a4112f6898bd8d2e527a68db2.tar JRummikub-8e24819d8638110a4112f6898bd8d2e527a68db2.zip |
Mock ist wieder heile und es gibt Tests für die LoginControl... und eine LoginControl
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@397 72836036-5685-4462-b002-a69064685172
-rw-r--r-- | mock/jrummikub/util/MockEvent3.java | 45 | ||||
-rw-r--r-- | mock/jrummikub/view/MockLoginPanel.java | 24 | ||||
-rw-r--r-- | mock/jrummikub/view/MockView.java | 32 | ||||
-rw-r--r-- | src/jrummikub/control/network/LoginControl.java | 26 | ||||
-rw-r--r-- | test/jrummikub/control/network/LoginControlTest.java | 70 |
5 files changed, 193 insertions, 4 deletions
diff --git a/mock/jrummikub/util/MockEvent3.java b/mock/jrummikub/util/MockEvent3.java new file mode 100644 index 0000000..fa1d105 --- /dev/null +++ b/mock/jrummikub/util/MockEvent3.java @@ -0,0 +1,45 @@ +package jrummikub.util; + +import java.util.HashSet; + +/** + * Mock class for Event2s + * + * @param <T1> + * first event type + * @param <T2> + * second event type + */ +public class MockEvent3<T1, T2, T3> implements IEvent3<T1, T2, T3> { + /** */ + public HashSet<IListener3<T1, T2, T3>> listeners = new HashSet<IListener3<T1, T2, T3>>(); + + @Override + public Connection add(final IListener3<T1, T2, T3> listener) { + listeners.add(listener); + return new Connection() { + + @Override + public void remove() { + MockEvent3.this.remove(listener); + } + }; + } + + @Override + public void remove(IListener3<T1, T2, T3> listener) { + listeners.remove(listener); + } + + /** + * @param value1 + * the first event parameter + * @param value2 + * the second event parameter + */ + public void emit(T1 value1, T2 value2, T3 value3) { + for (IListener3<T1, T2, T3> listener : listeners) { + listener.handle(value1, value2, value3); + } + } +} diff --git a/mock/jrummikub/view/MockLoginPanel.java b/mock/jrummikub/view/MockLoginPanel.java new file mode 100644 index 0000000..dee37ef --- /dev/null +++ b/mock/jrummikub/view/MockLoginPanel.java @@ -0,0 +1,24 @@ +package jrummikub.view; + +import jrummikub.util.IEvent; +import jrummikub.util.IEvent3; +import jrummikub.util.MockEvent; +import jrummikub.util.MockEvent3; +/** */ +public class MockLoginPanel implements ILoginPanel { + /** */ + public MockEvent3<String, String, String> loginEvent = new MockEvent3<String, String, String>(); + /** */ + public MockEvent cancelEvent = new MockEvent(); + + @Override + public IEvent3<String, String, String> getLoginEvent() { + return loginEvent; + } + + @Override + public IEvent getCancelEvent() { + return cancelEvent; + } + +} diff --git a/mock/jrummikub/view/MockView.java b/mock/jrummikub/view/MockView.java index fd7b896..2b716e2 100644 --- a/mock/jrummikub/view/MockView.java +++ b/mock/jrummikub/view/MockView.java @@ -24,6 +24,14 @@ public class MockView implements IView { public MockTablePanel tablePanel = new MockTablePanel(); /** */ public MockHandPanel handPanel = new MockHandPanel(); + /** */ + public MockLoginPanel loginPanel = new MockLoginPanel(); + /** */ + public boolean isSettingsPanelVisible = false; + /** */ + public boolean isScorePanelVisible = false; + /** */ + public boolean isLoginPanelVisible = false; /** */ public Collection<Stone> selectedStones; @@ -53,6 +61,8 @@ public class MockView implements IView { public MockEvent pauseEvent = new MockEvent(); /** */ public MockEvent endPauseEvent = new MockEvent(); + /** */ + public MockEvent networkGameEvent = new MockEvent(); @Override public MockTablePanel getTablePanel() { @@ -101,8 +111,7 @@ public class MockView implements IView { @Override public void showSettingsPanel(boolean show) { - // TODO Auto-generated method stub - + isSettingsPanelVisible = show; } @Override @@ -112,8 +121,7 @@ public class MockView implements IView { @Override public void showScorePanel(boolean show) { - // TODO Auto-generated method stub - + isScorePanelVisible = show; } @Override @@ -177,4 +185,20 @@ public class MockView implements IView { public IEvent getEndPauseEvent() { return endPauseEvent; } + + @Override + public IEvent getNetworkGameEvent() { + return networkGameEvent; + } + + @Override + public ILoginPanel getLoginPanel() { + return loginPanel; + } + + @Override + public void showLoginPanel(boolean show) { + isLoginPanelVisible = show; + + } } diff --git a/src/jrummikub/control/network/LoginControl.java b/src/jrummikub/control/network/LoginControl.java new file mode 100644 index 0000000..a9dd5e8 --- /dev/null +++ b/src/jrummikub/control/network/LoginControl.java @@ -0,0 +1,26 @@ +package jrummikub.control.network; + +import jrummikub.util.Event; +import jrummikub.util.Event3; +import jrummikub.util.IEvent; +import jrummikub.util.IEvent3; +import jrummikub.view.IView; + +public class LoginControl { + private IView view; + private Event3<String, String, String> loginEvent = new Event3<String, String, String>(); + private Event cancelEvent = new Event(); + + public LoginControl(IView view) { + this.view = view; + } + + public IEvent3<String, String, String> getLoginEvent() { + return loginEvent; + } + + public IEvent getCancelEvent() { + return cancelEvent; + } + +} diff --git a/test/jrummikub/control/network/LoginControlTest.java b/test/jrummikub/control/network/LoginControlTest.java new file mode 100644 index 0000000..21c3eed --- /dev/null +++ b/test/jrummikub/control/network/LoginControlTest.java @@ -0,0 +1,70 @@ +package jrummikub.control.network; + +import static org.junit.Assert.*; +import jrummikub.util.IListener; +import jrummikub.util.IListener3; +import jrummikub.view.MockView; + +import org.junit.Before; +import org.junit.Test; + +/** */ +public class LoginControlTest { + MockView view; + LoginControl loginControl; + boolean handled = false; + + /** */ + @Before + public void setup() { + view = new MockView(); + loginControl = new LoginControl(view); + } + + /** */ + @Test + public void panelVisibleTest() { + assertFalse(view.isSettingsPanelVisible); + assertTrue(view.isLoginPanelVisible); + assertFalse(view.isScorePanelVisible); + } + + /** */ + @Test + public void loginEventTest() { + loginControl.getLoginEvent().add( + new IListener3<String, String, String>() { + @Override + public void handle(String value1, String value2, + String value3) { + assertEquals("a", value1); + assertEquals("b", value2); + assertEquals("c", value3); + handled = true; + } + }); + view.loginPanel.loginEvent.emit("a", "b", "c"); + assertTrue(handled); + assertFalse(view.isLoginPanelVisible); + assertFalse(view.isScorePanelVisible); + assertFalse(view.isSettingsPanelVisible); + } + + /** */ + @Test + public void cancelEventTest() { + loginControl.getCancelEvent().add( + new IListener() { + @Override + public void handle() { + handled = true; + } + }); + view.loginPanel.cancelEvent.emit(); + assertTrue(handled); + assertFalse(view.isLoginPanelVisible); + assertFalse(view.isScorePanelVisible); + assertFalse(view.isSettingsPanelVisible); + + } +} |