This repository has been archived on 2025-03-02. You can view files and clone it, but cannot push or open issues or pull requests.
JRummikub/test/jrummikub/control/ApplicationControlTest.java
Matthias Schiffer aa0f3e658b MockApplicationControlTest: added quitWarningTest
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@607 72836036-5685-4462-b002-a69064685172
2011-07-05 14:38:35 +02:00

150 lines
4.1 KiB
Java

package jrummikub.control;
import static org.junit.Assert.*;
import jrummikub.util.LoginData;
import jrummikub.view.IQuitWarningPanel.QuitMode;
import jrummikub.view.IView.BottomPanelType;
import jrummikub.view.MockView;
import org.junit.Before;
import org.junit.Test;
/**
* Tests for the testable parts of the application control
*/
public class ApplicationControlTest {
ApplicationControl testAppControl;
MockView view;
/** */
@Before
public void setup() {
view = new MockView();
}
/** */
@Test
public void enableSaving() {
assertFalse(view.savingEnabled);
testAppControl = new ApplicationControl(view);
testAppControl.startApplication();
assertTrue(view.isSettingsPanelVisible);
view.settingsPanel.startGameEvent.emit();
assertFalse(view.isSettingsPanelVisible);
assertTrue(view.savingEnabled);
}
/** */
@Test
public void pauseTest() {
testAppControl = new ApplicationControl(view);
testAppControl.startApplication();
view.settingsPanel.startGameEvent.emit();
assertSame(BottomPanelType.START_TURN_PANEL, view.bottomPanelType);
view.startTurnEvent.emit();
assertSame(BottomPanelType.HUMAN_HAND_PANEL, view.bottomPanelType);
view.pauseEvent.emit();
assertTrue(view.pauseModeEnabled);
}
/** */
@Test
public void quitWarningTest() {
testAppControl = new ApplicationControl(view);
testAppControl.startApplication();
view.settingsPanel.startGameEvent.emit();
view.quitEvent.emit();
assertSame(QuitMode.QUIT_PROCESS, view.quitWarningPanel.quitMode);
assertTrue(view.isQuitWarningPanelVisible);
}
/** */
@Test
public void networkTest() {
testAppControl = new ApplicationControl(view);
testAppControl.startApplication();
view.networkGameEvent.emit();
assertTrue(view.isLoginPanelVisible);
}
/** */
@Test
public void networkFromRunningGameTest() {
testAppControl = new ApplicationControl(view);
testAppControl.startApplication();
view.settingsPanel.startGameEvent.emit();
view.networkGameEvent.emit();
assertTrue(view.isQuitWarningPanelVisible);
assertSame(QuitMode.QUIT_GAME, view.getQuitWarningPanel().getQuitMode());
view.getQuitWarningPanel().quitEvent.emit();
assertTrue(view.isLoginPanelVisible);
}
/** */
@Test
public void newGameFromNetworkTest() {
testAppControl = new ApplicationControl(view);
testAppControl.startApplication();
view.networkGameEvent.emit();
assertTrue(view.isLoginPanelVisible);
LoginData data = new LoginData("Horst", "server", "horstspw", "channel");
view.loginPanel.loginEvent.emit(data);
assertTrue(view.isConnectPanelVisible);
view.menuNewGameEvent.emit();
assertTrue(view.isQuitWarningPanelVisible);
assertSame(QuitMode.QUIT_GAME, view.getQuitWarningPanel().getQuitMode());
view.getQuitWarningPanel().quitEvent.emit();
assertFalse(view.isConnectPanelVisible);
assertTrue(view.isSettingsPanelVisible);
}
/** */
@Test
public void loadTest() {
testAppControl = new ApplicationControl(view);
testAppControl.startApplication();
view.loadEvent.emit();
assertFalse(view.isQuitWarningPanelVisible);
}
/** */
@Test
public void loadFromRunningGameTest() {
testAppControl = new ApplicationControl(view);
testAppControl.startApplication();
view.settingsPanel.startGameEvent.emit();
view.loadEvent.emit();
assertTrue(view.isQuitWarningPanelVisible);
assertSame(QuitMode.QUIT_GAME, view.getQuitWarningPanel().getQuitMode());
view.getQuitWarningPanel().quitEvent.emit();
assertFalse(view.isQuitWarningPanelVisible);
assertTrue(view.loadCalled);
}
/** */
@Test
public void newGameFromRunningGameTest() {
testAppControl = new ApplicationControl(view);
testAppControl.startApplication();
view.settingsPanel.startGameEvent.emit();
view.menuNewGameEvent.emit();
assertTrue(view.isQuitWarningPanelVisible);
assertSame(QuitMode.QUIT_GAME, view.getQuitWarningPanel().getQuitMode());
view.getQuitWarningPanel().cancelEvent.emit();
assertFalse(view.isQuitWarningPanelVisible);
view.menuNewGameEvent.emit();
assertTrue(view.isQuitWarningPanelVisible);
assertSame(QuitMode.QUIT_GAME, view.getQuitWarningPanel().getQuitMode());
view.getQuitWarningPanel().quitEvent.emit();
assertTrue(view.isSettingsPanelVisible);
}
}