From 531fe57b17394c931ee968a66104429e69cf60c6 Mon Sep 17 00:00:00 2001 From: Ida Massow Date: Fri, 27 May 2011 15:00:28 +0200 Subject: =?UTF-8?q?Test=20f=C3=BCr=20SettingsControl,=203=20neue=20Klassen?= =?UTF-8?q?,=20Mocks=20f=C3=BCr=20SettingPanel,=20lauter=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@285 72836036-5685-4462-b002-a69064685172 --- test/jrummikub/control/SettingsControlTest.java | 166 ++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 test/jrummikub/control/SettingsControlTest.java (limited to 'test/jrummikub') diff --git a/test/jrummikub/control/SettingsControlTest.java b/test/jrummikub/control/SettingsControlTest.java new file mode 100644 index 0000000..f0e4ae0 --- /dev/null +++ b/test/jrummikub/control/SettingsControlTest.java @@ -0,0 +1,166 @@ +package jrummikub.control; + +import static org.junit.Assert.*; + +import java.awt.Color; + +import jrummikub.model.GameSettings; +import jrummikub.util.IListener1; +import jrummikub.view.ISettingsPanel; +import jrummikub.view.MockView; + +import org.junit.Before; +import org.junit.Test; + +public class SettingsControlTest { + MockView view = new MockView(); + SettingsControl settingsControl = new SettingsControl(view); + GameSettings gameSettings = null; + + @Before + public void setup() { + settingsControl.getStartGameEvent().add(new IListener1() { + + @Override + public void handle(GameSettings value) { + gameSettings = value; + + } + }); + } + + @Test + public void initialStateTest() { + assertSame(ISettingsPanel.SettingsError.NO_ERROR, + view.settingsPanel.error); + view.settingsPanel.startGameEvent.emit(); + assertNotNull(gameSettings); + assertEquals(2, gameSettings.getPlayerList().size()); + assertFalse(view.settingsPanel.removePlayerButtonsEnabled); + } + + @Test + public void addPlayerTest() { + view.settingsPanel.addPlayerEvent.emit(); + view.settingsPanel.startGameEvent.emit(); + assertNotNull(gameSettings); + assertEquals(3, gameSettings.getPlayerList().size()); + assertTrue(view.settingsPanel.removePlayerButtonsEnabled); + } + + @Test + public void add14PlayerTest() { + for (int i = 0; i < 14; i++) { + view.settingsPanel.addPlayerEvent.emit(); + } + view.settingsPanel.startGameEvent.emit(); + assertNotNull(gameSettings); + assertEquals(16, gameSettings.getPlayerList().size()); + assertTrue(view.settingsPanel.removePlayerButtonsEnabled); + assertFalse(view.settingsPanel.addPlayerButtonEnabled); + } + + @Test + public void add14RemovePlayerTest() { + for (int i = 0; i < 14; i++) { + view.settingsPanel.addPlayerEvent.emit(); + } + view.settingsPanel.removePlayerEvent.emit(0); + view.settingsPanel.startGameEvent.emit(); + assertNotNull(gameSettings); + assertEquals(15, gameSettings.getPlayerList().size()); + assertTrue(view.settingsPanel.removePlayerButtonsEnabled); + assertTrue(view.settingsPanel.addPlayerButtonEnabled); + } + + @Test + public void removePlayerTest() { + view.settingsPanel.addPlayerEvent.emit(); + view.settingsPanel.removePlayerEvent.emit(0); + view.settingsPanel.startGameEvent.emit(); + assertNotNull(gameSettings); + assertEquals(2, gameSettings.getPlayerList().size()); + assertFalse(view.settingsPanel.removePlayerButtonsEnabled); + } + + @Test + public void takenColorTest() { + Color color1 = Color.RED; + Color color2 = Color.BLUE; + view.settingsPanel.changePlayerColorEvent.emit(0, color1); + view.settingsPanel.changePlayerColorEvent.emit(1, color2); + view.settingsPanel.changePlayerColorEvent.emit(1, color1); + view.settingsPanel.startGameEvent.emit(); + assertNotNull(gameSettings); + assertEquals(2, gameSettings.getPlayerList().size()); + assertSame(color2, gameSettings.getPlayerList().get(0).getColor()); + assertSame(color1, gameSettings.getPlayerList().get(1).getColor()); + } + + @Test + public void unusedColorTest() { + Color color1 = Color.RED; + Color color2 = Color.BLUE; + Color color3 = Color.PINK; + view.settingsPanel.changePlayerColorEvent.emit(0, color1); + view.settingsPanel.changePlayerColorEvent.emit(1, color2); + view.settingsPanel.changePlayerColorEvent.emit(1, color3); + view.settingsPanel.startGameEvent.emit(); + assertNotNull(gameSettings); + assertEquals(2, gameSettings.getPlayerList().size()); + assertSame(color1, gameSettings.getPlayerList().get(0).getColor()); + assertSame(color3, gameSettings.getPlayerList().get(1).getColor()); + } + + @Test + public void takenNameTest() { + String name1 = "Julia"; + view.settingsPanel.changePlayerNameEvent.emit(0, name1); + view.settingsPanel.changePlayerNameEvent.emit(1, name1); + + assertFalse(view.settingsPanel.startButtonEnabled); + assertSame(ISettingsPanel.SettingsError.DUPLICATE_PLAYER_NAME, + view.settingsPanel.error); + + view.settingsPanel.startGameEvent.emit(); + assertNull(gameSettings); + } + + @Test + public void fixTakenNameTest() { + String name1 = "Julia"; + view.settingsPanel.changePlayerNameEvent.emit(0, name1); + view.settingsPanel.changePlayerNameEvent.emit(1, name1); + + assertFalse(view.settingsPanel.startButtonEnabled); + assertSame(ISettingsPanel.SettingsError.DUPLICATE_PLAYER_NAME, + view.settingsPanel.error); + + view.settingsPanel.startGameEvent.emit(); + assertNull(gameSettings); + + String name2 = "Karl"; + view.settingsPanel.changePlayerNameEvent.emit(1, name2); + + assertTrue(view.settingsPanel.startButtonEnabled); + assertSame(ISettingsPanel.SettingsError.NO_ERROR, + view.settingsPanel.error); + + view.settingsPanel.startGameEvent.emit(); + assertNotNull(gameSettings); + } + + @Test + public void emptyNameTest() { + String name1 = ""; + view.settingsPanel.changePlayerNameEvent.emit(0, name1); + + assertFalse(view.settingsPanel.startButtonEnabled); + assertSame(ISettingsPanel.SettingsError.NO_PLAYER_NAME, + view.settingsPanel.error); + + view.settingsPanel.startGameEvent.emit(); + assertNull(gameSettings); + } + +} -- cgit v1.2.3