summaryrefslogtreecommitdiffstats
path: root/test/jrummikub/control/network
diff options
context:
space:
mode:
Diffstat (limited to 'test/jrummikub/control/network')
-rw-r--r--test/jrummikub/control/network/GameJoinControlTest.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/test/jrummikub/control/network/GameJoinControlTest.java b/test/jrummikub/control/network/GameJoinControlTest.java
index 9e175b1..31f76da 100644
--- a/test/jrummikub/control/network/GameJoinControlTest.java
+++ b/test/jrummikub/control/network/GameJoinControlTest.java
@@ -1,6 +1,86 @@
package jrummikub.control.network;
+import static org.junit.Assert.*;
+import static org.junit.Assert.assertSame;
+
+import java.awt.Color;
+import java.util.UUID;
+
+import jrummikub.model.GameSettings;
+import jrummikub.model.PlayerSettings;
+import jrummikub.model.PlayerSettings.Type;
+import jrummikub.util.GameData;
+import jrummikub.util.LoginData;
+import jrummikub.view.ISettingsPanel.SettingsMode;
+import jrummikub.view.MockView;
+
+import org.junit.Before;
+import org.junit.Test;
public class GameJoinControlTest {
+ LoginData loginData;
+ MockConnectionControl mockConnection;
+ NetworkControl networkControl;
+ GameJoinControl joinControl;
+ MockView view;
+ UUID id1 = UUID.randomUUID();
+ UUID id2 = UUID.randomUUID();
+ UUID id3 = UUID.randomUUID();
+
+ /** */
+ @Before
+ public void setup() {
+ mockConnection = new MockConnectionControl();
+ mockConnection.nickname = "Karl";
+ view = new MockView();
+ loginData = new LoginData("Karl", "server", "password", "channel");
+ networkControl = new NetworkControl(loginData, mockConnection, view);
+ networkControl.startNetwork();
+
+ mockConnection.connectedEvent.emit();
+ }
+
+ /** */
+ @Test
+ public void joinCancelTest() {
+ GameData data = offerTestGame(id1, "Anne");
+ view.gameListPanel.joinEvent.emit(data);
+ mockConnection.gameJoinAckEvent.emit(true);
+ assertTrue(view.isSettingsPanelVisible);
+ assertEquals(SettingsMode.NETWORK_JOIN, view.settingsPanel.settingsMode);
+ offerJoinedGame(id1, "Anne", "Karl");
+ view.settingsPanel.changePlayerColorEvent.emit(1, Color.GRAY);
+ assertEquals(Type.HUMAN, mockConnection.getCurrentGame().getGameSettings().getPlayerList().get(1).getType());
+ assertEquals(Color.GRAY, mockConnection.playerColor);
+
+ view.settingsPanel.backEvent.emit();
+ assertTrue(view.isGameListPanelVisible);
+ }
+
+ private GameData offerTestGame(UUID id, String host) {
+ GameSettings gsettings = new GameSettings();
+ PlayerSettings psettings = new PlayerSettings(host, Color.BLACK);
+ psettings.setType(Type.HUMAN);
+ gsettings.getPlayerList().add(psettings);
+ PlayerSettings psettings2 = new PlayerSettings("Offen", Color.RED);
+ psettings2.setType(Type.VACANT);
+ gsettings.getPlayerList().add(psettings2);
+ GameData gameData = new GameData(id, gsettings, host);
+ mockConnection.gameOfferEvent.emit(gameData);
+ return gameData;
+ }
+
+ private GameData offerJoinedGame(UUID id, String host, String player) {
+ GameSettings gsettings = new GameSettings();
+ PlayerSettings psettings = new PlayerSettings(host, Color.BLACK);
+ psettings.setType(Type.HUMAN);
+ gsettings.getPlayerList().add(psettings);
+ PlayerSettings psettings2 = new PlayerSettings(player, Color.RED);
+ psettings2.setType(Type.NETWORK);
+ gsettings.getPlayerList().add(psettings2);
+ GameData gameData = new GameData(id, gsettings, host);
+ mockConnection.gameOfferEvent.emit(gameData);
+ return gameData;
+ }
}