Tests für networkControl fertig

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@476 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Ida Massow 2011-06-19 01:14:14 +02:00
parent 7396a4ee85
commit c7069227f3

View file

@ -0,0 +1,139 @@
package jrummikub.control.network;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
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.MockView;
import jrummikub.view.ISettingsPanel.SettingsMode;
import org.junit.Before;
import org.junit.Test;
public class NetworkControlTest {
LoginData loginData;
MockConnectionControl mockConnection;
NetworkControl networkControl;
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();
}
/** */
@Test
public void connectedTest() {
mockConnection.connectedEvent.emit();
assertTrue(view.isGameListPanelVisible);
assertEquals("channel", view.gameListPanel.channelName);
}
/** */
@Test
public void offeredGameTest() {
mockConnection.connectedEvent.emit();
offerTestGame(id1, "Berta");
assertEquals(1, view.gameListPanel.gameList.size());
assertEquals(2, view.gameListPanel.gameList.get(0).getGameSettings()
.getPlayerList().size());
assertEquals(id1, view.gameListPanel.gameList.get(0).getGameID());
assertEquals("Berta", view.gameListPanel.gameList.get(0).getHost());
}
/** */
@Test
public void offerGameTest() {
mockConnection.connectedEvent.emit();
view.gameListPanel.openNewGameEvent.emit();
assertTrue(view.isSettingsPanelVisible);
assertEquals(SettingsMode.NETWORK_SETUP,
view.settingsPanel.settingsMode);
view.settingsPanel.addPlayerEvent.emit();
view.settingsPanel.offerGameEvent.emit();
assertTrue(view.isSettingsPanelVisible);
assertEquals(SettingsMode.NETWORK_OFFER,
view.settingsPanel.settingsMode);
}
/** */
@Test
public void joinGameTest() {
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);
}
/** */
@Test
public void withdrawnGameTest() {
mockConnection.connectedEvent.emit();
offerTestGame(id1, "Berta");
offerTestGame(id2, "Horst");
assertEquals(2, view.gameListPanel.gameList.size());
assertEquals(2, view.gameListPanel.gameList.get(0).getGameSettings()
.getPlayerList().size());
assertEquals(id1, view.gameListPanel.gameList.get(0).getGameID());
assertEquals("Berta", view.gameListPanel.gameList.get(0).getHost());
assertEquals(2, view.gameListPanel.gameList.get(1).getGameSettings()
.getPlayerList().size());
assertEquals(id2, view.gameListPanel.gameList.get(1).getGameID());
assertEquals("Horst", view.gameListPanel.gameList.get(1).getHost());
mockConnection.gameWithdrawalEvent.emit(id1);
assertEquals(1, view.gameListPanel.gameList.size());
assertEquals(id2, view.gameListPanel.gameList.get(0).getGameID());
assertEquals("Horst", view.gameListPanel.gameList.get(0).getHost());
}
/** */
@Test
public void testCancel(){
mockConnection.connectedEvent.emit();
view.gameListPanel.cancelEvent.emit();
assertFalse(view.isGameListPanelVisible);
assertFalse(mockConnection.connected);
}
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);
psettings.setType(Type.VACANT);
gsettings.getPlayerList().add(psettings2);
GameData gameData = new GameData(id, gsettings, host);
mockConnection.gameOfferEvent.emit(gameData);
return gameData;
}
}