summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mock/jrummikub/util/MockEvent3.java45
-rw-r--r--mock/jrummikub/view/MockLoginPanel.java24
-rw-r--r--mock/jrummikub/view/MockView.java32
-rw-r--r--src/jrummikub/control/network/LoginControl.java26
-rw-r--r--test/jrummikub/control/network/LoginControlTest.java70
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);
+
+ }
+}