package jrummikub.control.network; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import java.awt.Color; import java.util.UUID; import jrummikub.model.PlayerSettings.Type; import jrummikub.util.LoginData; import jrummikub.view.ISettingsPanel.SettingsMode; import jrummikub.view.MockView; import org.junit.Before; import org.junit.Test; /** * Test class for game offer control */ public class GameOfferControlTest { 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 withdrawGameTest() { view.gameListPanel.openNewGameEvent.emit(); assertFalse(view.isGameListPanelVisible); assertTrue(view.isSettingsPanelVisible); assertEquals(SettingsMode.NETWORK_SETUP, view.settingsPanel.settingsMode); view.settingsPanel.offerGameEvent.emit(); assertEquals(SettingsMode.NETWORK_OFFER, view.settingsPanel.settingsMode); view.settingsPanel.changePlayerColorEvent.emit(0, Color.PINK); assertEquals(Color.PINK, mockConnection.playerColor); view.settingsPanel.backEvent.emit(); assertFalse(view.isSettingsPanelVisible); assertTrue(view.isGameListPanelVisible); } /** */ @Test public void getJoinLeaveTest() { view.gameListPanel.openNewGameEvent.emit(); view.settingsPanel.offerGameEvent.emit(); mockConnection.gameJoinEvent.emit("Berta"); assertEquals("Berta", mockConnection.offeredGame.getGameSettings() .getPlayerList().get(1).getName()); assertSame(Type.NETWORK, mockConnection.offeredGame.getGameSettings() .getPlayerList().get(1).getType()); mockConnection.changeColorEvent.emit("Berta", Color.BLUE); assertEquals(Color.BLUE, mockConnection.offeredGame.getGameSettings() .getPlayerList().get(1).getColor()); mockConnection.gameLeaveEvent.emit("Berta"); assertEquals("Offen", mockConnection.offeredGame.getGameSettings() .getPlayerList().get(1).getName()); assertSame(Type.VACANT, mockConnection.offeredGame.getGameSettings() .getPlayerList().get(1).getType()); } }