summaryrefslogtreecommitdiffstats
path: root/test/jrummikub/control/network/NetworkControlTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/jrummikub/control/network/NetworkControlTest.java')
-rw-r--r--test/jrummikub/control/network/NetworkControlTest.java70
1 files changed, 70 insertions, 0 deletions
diff --git a/test/jrummikub/control/network/NetworkControlTest.java b/test/jrummikub/control/network/NetworkControlTest.java
index 6d772ff..f22fd74 100644
--- a/test/jrummikub/control/network/NetworkControlTest.java
+++ b/test/jrummikub/control/network/NetworkControlTest.java
@@ -10,8 +10,11 @@ import jrummikub.model.GameSettings;
import jrummikub.model.PlayerSettings;
import jrummikub.model.PlayerSettings.Type;
import jrummikub.util.GameData;
+import jrummikub.util.IListener;
import jrummikub.util.LoginData;
import jrummikub.view.ISettingsPanel.SettingsMode;
+import jrummikub.view.IView.BottomPanelType;
+import jrummikub.view.LoginError;
import jrummikub.view.MockView;
import org.junit.Before;
@@ -28,6 +31,7 @@ public class NetworkControlTest {
UUID id1 = UUID.randomUUID();
UUID id2 = UUID.randomUUID();
UUID id3 = UUID.randomUUID();
+ boolean backToLoginFired;
/** */
@Before
@@ -38,6 +42,7 @@ public class NetworkControlTest {
loginData = new LoginData("Karl", "server", "password", "channel");
networkControl = new NetworkControl(loginData, mockConnection, new SaveControl(view), view);
networkControl.startNetwork();
+ backToLoginFired = false;
}
/** */
@@ -92,6 +97,18 @@ public class NetworkControlTest {
assertTrue(view.isSettingsPanelVisible);
assertEquals(SettingsMode.NETWORK_JOIN, view.settingsPanel.settingsMode);
}
+
+ /** */
+ @Test
+ public void joinGameNackTest() {
+ mockConnection.connectedEvent.emit();
+ GameData data = offerTestGame(id1, "Berta");
+ view.gameListPanel.joinEvent.emit(data);
+ assertSame(data, mockConnection.joinedGame);
+ mockConnection.gameJoinAckEvent.emit(false);
+ assertFalse(view.isSettingsPanelVisible);
+ assertTrue(view.isGameListPanelVisible);
+ }
/** */
@Test
@@ -182,5 +199,58 @@ public class NetworkControlTest {
view.settingsPanel.startGameEvent.emit();
assertTrue(mockConnection.startRoundCalled);
+ assertTrue(networkControl.isGameRunning());
+ }
+
+ /** */
+ @Test
+ public void connectionLostTest() {
+ mockConnection.connectedEvent.emit();
+ GameData data = offerTestGame(id1, "Berta");
+ view.gameListPanel.joinEvent.emit(data);
+ assertSame(data, mockConnection.joinedGame);
+ mockConnection.gameJoinAckEvent.emit(true);
+
+ mockConnection.connectionLostEvent.emit();
+ assertSame(BottomPanelType.NETWORK_SERVER_CONNECTION_LOST_PANEL, view.bottomPanelType);
+ }
+
+ /** */
+ @Test
+ public void connectionFailedTest() {
+ mockConnection.connectionFailedEvent.emit(LoginError.UNKNOWN_ERROR);
+ assertTrue(view.isConnectPanelVisible);
+ assertSame(LoginError.UNKNOWN_ERROR, view.connectPanel.errorMode);
}
+
+ /** */
+ @Test
+ public void connectionCancelTest() {
+ networkControl.getBackToLoginEvent().add(new IListener() {
+ @Override
+ public void handle() {
+ backToLoginFired = true;
+ }
+ });
+
+ view.connectPanel.cancelEvent.emit();
+ assertTrue(backToLoginFired);
+ }
+
+ /** */
+ @Test
+ public void backToGameListTest() {
+ mockConnection.connectedEvent.emit();
+ GameData data = offerTestGame(id1, "Berta");
+ view.gameListPanel.joinEvent.emit(data);
+ assertSame(data, mockConnection.joinedGame);
+ mockConnection.gameJoinAckEvent.emit(true);
+ assertTrue(view.isSettingsPanelVisible);
+ assertEquals(SettingsMode.NETWORK_JOIN, view.settingsPanel.settingsMode);
+ mockConnection.gameStartEvent.emit();
+
+ view.newGameEvent.emit();
+ assertTrue(view.isGameListPanelVisible);
+ }
+
}