From 8e24819d8638110a4112f6898bd8d2e527a68db2 Mon Sep 17 00:00:00 2001 From: Ida Massow Date: Fri, 10 Jun 2011 16:52:15 +0200 Subject: =?UTF-8?q?Mock=20ist=20wieder=20heile=20und=20es=20gibt=20Tests?= =?UTF-8?q?=20f=C3=BCr=20die=20LoginControl...=20und=20eine=20LoginControl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@397 72836036-5685-4462-b002-a69064685172 --- mock/jrummikub/util/MockEvent3.java | 45 ++++++++++++++ mock/jrummikub/view/MockLoginPanel.java | 24 ++++++++ mock/jrummikub/view/MockView.java | 32 ++++++++-- src/jrummikub/control/network/LoginControl.java | 26 ++++++++ .../control/network/LoginControlTest.java | 70 ++++++++++++++++++++++ 5 files changed, 193 insertions(+), 4 deletions(-) create mode 100644 mock/jrummikub/util/MockEvent3.java create mode 100644 mock/jrummikub/view/MockLoginPanel.java create mode 100644 src/jrummikub/control/network/LoginControl.java create mode 100644 test/jrummikub/control/network/LoginControlTest.java 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 + * first event type + * @param + * second event type + */ +public class MockEvent3 implements IEvent3 { + /** */ + public HashSet> listeners = new HashSet>(); + + @Override + public Connection add(final IListener3 listener) { + listeners.add(listener); + return new Connection() { + + @Override + public void remove() { + MockEvent3.this.remove(listener); + } + }; + } + + @Override + public void remove(IListener3 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 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 loginEvent = new MockEvent3(); + /** */ + public MockEvent cancelEvent = new MockEvent(); + + @Override + public IEvent3 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 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 loginEvent = new Event3(); + private Event cancelEvent = new Event(); + + public LoginControl(IView view) { + this.view = view; + } + + public IEvent3 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() { + @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); + + } +} -- cgit v1.2.3