Test für Änderung der StoneSet Anzahl fertig

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@327 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Ida Massow 2011-05-30 19:50:58 +02:00
parent ad2f226369
commit c398c081ed
5 changed files with 85 additions and 24 deletions

View file

@ -42,11 +42,15 @@ public class MockSettingsPanel implements ISettingsPanel {
public MockEvent1<Integer> changeInitialMeldThresholdEvent = new MockEvent1<Integer>(); public MockEvent1<Integer> changeInitialMeldThresholdEvent = new MockEvent1<Integer>();
/** */ /** */
public MockEvent1<Integer> changeJokerNumberEvent = new MockEvent1<Integer>(); public MockEvent1<Integer> changeJokerNumberEvent = new MockEvent1<Integer>();
/** */
public MockEvent1<Integer> changeStoneSetNumberEvent = new MockEvent1<Integer>();
/** */ /** */
public int initialMeldThreshold; public int initialMeldThreshold;
/** */ /** */
public int jokerNumber; public int jokerNumber;
public int stoneSetNumber;
@Override @Override
public IEvent getAddPlayerEvent() { public IEvent getAddPlayerEvent() {
return addPlayerEvent; return addPlayerEvent;
@ -127,4 +131,14 @@ public class MockSettingsPanel implements ISettingsPanel {
return changePlayerTypeEvent; return changePlayerTypeEvent;
} }
@Override
public IEvent1<Integer> getChangeStoneSetNumberEvent() {
return changeStoneSetNumberEvent;
}
@Override
public void setStoneSetNumber(int number) {
stoneSetNumber = number;
}
} }

View file

@ -81,6 +81,8 @@ public interface ISettingsPanel {
*/ */
public IEvent1<Integer> getChangeInitialMeldThresholdEvent(); public IEvent1<Integer> getChangeInitialMeldThresholdEvent();
public IEvent1<Integer> getChangeStoneSetNumberEvent();
/** /**
* the start game event is emitted when the user wants to start the game * the start game event is emitted when the user wants to start the game
* *
@ -157,6 +159,8 @@ public interface ISettingsPanel {
*/ */
public void setInitialMeldThreshold(int value); public void setInitialMeldThreshold(int value);
public void setStoneSetNumber(int number);
/** /**
* Emitted when the joker number is changed * Emitted when the joker number is changed
* *
@ -164,6 +168,7 @@ public interface ISettingsPanel {
*/ */
public IEvent1<Integer> getChangeJokerNumberEvent(); public IEvent1<Integer> getChangeJokerNumberEvent();
/** /**
* Sets the joker number in the option pane * Sets the joker number in the option pane
* *

View file

@ -75,6 +75,7 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
private Event2<Integer, TurnControlFactory.Type> changePlayerTypeEvent = new Event2<Integer, TurnControlFactory.Type>(); private Event2<Integer, TurnControlFactory.Type> changePlayerTypeEvent = new Event2<Integer, TurnControlFactory.Type>();
private Event1<Integer> changeInitialMeldThresholdEvent = new Event1<Integer>(); private Event1<Integer> changeInitialMeldThresholdEvent = new Event1<Integer>();
private Event1<Integer> changeJokerNumberEvent = new Event1<Integer>(); private Event1<Integer> changeJokerNumberEvent = new Event1<Integer>();
private Event1<Integer> changeStoneSetNumberEvent = new Event1<Integer>();
@Override @Override
public IEvent getStartGameEvent() { public IEvent getStartGameEvent() {
@ -106,6 +107,11 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
return changeInitialMeldThresholdEvent; return changeInitialMeldThresholdEvent;
} }
@Override
public IEvent1<Integer> getChangeStoneSetNumberEvent() {
return changeStoneSetNumberEvent;
}
@Override @Override
public void setError(SettingsError error) { public void setError(SettingsError error) {
switch (error) { switch (error) {
@ -246,8 +252,6 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
c.weightx = 1; c.weightx = 1;
c.weighty = 1; c.weighty = 1;
optionsPanel.add(makeFiller(), c); optionsPanel.add(makeFiller(), c);
// TODO Knöpfe für Dinge
} }
private JSpinner makeOptionSpinner(int row, int min, int max, int step, private JSpinner makeOptionSpinner(int row, int min, int max, int step,
@ -517,4 +521,10 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
public IEvent2<Integer, Type> getChangePlayerTypeEvent() { public IEvent2<Integer, Type> getChangePlayerTypeEvent() {
return changePlayerTypeEvent; return changePlayerTypeEvent;
} }
@Override
public void setStoneSetNumber(int number) {
// TODO Auto-generated method stub
}
} }

View file

@ -37,7 +37,8 @@ public class SettingsControlTest {
/** */ /** */
@Test @Test
public void initialStateTest() { public void initialStateTest() {
assertSame(ISettingsPanel.SettingsError.NO_ERROR, view.settingsPanel.error); assertSame(ISettingsPanel.SettingsError.NO_ERROR,
view.settingsPanel.error);
view.settingsPanel.startGameEvent.emit(); view.settingsPanel.startGameEvent.emit();
assertNotNull(gameSettings); assertNotNull(gameSettings);
assertEquals(2, gameSettings.getPlayerList().size()); assertEquals(2, gameSettings.getPlayerList().size());
@ -156,7 +157,8 @@ public class SettingsControlTest {
view.settingsPanel.changePlayerNameEvent.emit(1, name2); view.settingsPanel.changePlayerNameEvent.emit(1, name2);
assertTrue(view.settingsPanel.startButtonEnabled); assertTrue(view.settingsPanel.startButtonEnabled);
assertSame(ISettingsPanel.SettingsError.NO_ERROR, view.settingsPanel.error); assertSame(ISettingsPanel.SettingsError.NO_ERROR,
view.settingsPanel.error);
view.settingsPanel.startGameEvent.emit(); view.settingsPanel.startGameEvent.emit();
assertNotNull(gameSettings); assertNotNull(gameSettings);
@ -179,7 +181,8 @@ public class SettingsControlTest {
/** */ /** */
@Test @Test
public void initialMeldThresholdTest() { public void initialMeldThresholdTest() {
assertEquals(initialSettings.getInitialMeldThreshold(), view.settingsPanel.initialMeldThreshold); assertEquals(initialSettings.getInitialMeldThreshold(),
view.settingsPanel.initialMeldThreshold);
view.settingsPanel.changeInitialMeldThresholdEvent.emit(25); view.settingsPanel.changeInitialMeldThresholdEvent.emit(25);
view.settingsPanel.startGameEvent.emit(); view.settingsPanel.startGameEvent.emit();
@ -189,24 +192,42 @@ public class SettingsControlTest {
/** */ /** */
@Test @Test
public void jokerNumberTest() { public void jokerNumberTest() {
assertEquals(initialSettings.getJokerNumber(), view.settingsPanel.jokerNumber); assertEquals(initialSettings.getJokerNumber(),
view.settingsPanel.jokerNumber);
view.settingsPanel.changeJokerNumberEvent.emit(25); view.settingsPanel.changeJokerNumberEvent.emit(25);
view.settingsPanel.startGameEvent.emit(); view.settingsPanel.startGameEvent.emit();
assertEquals(25, gameSettings.getJokerNumber()); assertEquals(25, gameSettings.getJokerNumber());
} }
/** */
@Test
public void changeStoneSetNumberTest() {
assertEquals(initialSettings.getStoneSetNumber(),
view.settingsPanel.stoneSetNumber);
view.settingsPanel.changeStoneSetNumberEvent.emit(3);
view.settingsPanel.startGameEvent.emit();
assertEquals(3, gameSettings.getStoneSetNumber());
}
/** */ /** */
@Test @Test
public void typeChangeTest() { public void typeChangeTest() {
view.settingsPanel.changePlayerTypeEvent.emit(0, TurnControlFactory.Type.COMPUTER); view.settingsPanel.changePlayerTypeEvent.emit(0,
view.settingsPanel.changePlayerTypeEvent.emit(1, TurnControlFactory.Type.COMPUTER); TurnControlFactory.Type.COMPUTER);
view.settingsPanel.changePlayerTypeEvent.emit(1, TurnControlFactory.Type.HUMAN); view.settingsPanel.changePlayerTypeEvent.emit(1,
TurnControlFactory.Type.COMPUTER);
view.settingsPanel.changePlayerTypeEvent.emit(1,
TurnControlFactory.Type.HUMAN);
view.settingsPanel.startGameEvent.emit(); view.settingsPanel.startGameEvent.emit();
assertNotNull(gameSettings); assertNotNull(gameSettings);
assertEquals(2, gameSettings.getPlayerList().size()); assertEquals(2, gameSettings.getPlayerList().size());
assertSame(TurnControlFactory.Type.COMPUTER, gameSettings.getPlayerList().get(0).getTurnControlType()); assertSame(TurnControlFactory.Type.COMPUTER, gameSettings
assertSame(TurnControlFactory.Type.HUMAN, gameSettings.getPlayerList().get(1).getTurnControlType()); .getPlayerList().get(0).getTurnControlType());
assertSame(TurnControlFactory.Type.HUMAN, gameSettings.getPlayerList()
.get(1).getTurnControlType());
} }
} }

View file

@ -13,11 +13,20 @@ import static org.junit.Assert.*;
*/ */
public class StoneHeapTest { public class StoneHeapTest {
private StoneHeap testHeap; private StoneHeap testHeap;
private GameSettings testSettings;
/** */ /** */
@Before @Before
public void createHeap() { public void createHeap() {
testHeap = new StoneHeap(new GameSettings()); testHeap = new StoneHeap(testSettings = new GameSettings());
}
private int calculateTotalNumberOfStones() {
int totalStones = testSettings.getHighestCard()
* testSettings.getStoneSetNumber()
* testSettings.getStoneColors().size()
+ testSettings.getJokerNumber();
return totalStones;
} }
/** /**
@ -25,7 +34,7 @@ public class StoneHeapTest {
*/ */
@Test @Test
public void fullStoneHeap() { public void fullStoneHeap() {
assertEquals(106, testHeap.heap.size()); assertEquals(calculateTotalNumberOfStones(), testHeap.heap.size());
} }
/** /**
@ -33,6 +42,8 @@ public class StoneHeapTest {
*/ */
@Test @Test
public void fullColor() { public void fullColor() {
int stonesOfAColor = testSettings.getHighestCard()
* testSettings.getStoneSetNumber();
Map<StoneColor, Integer> counters = new HashMap<StoneColor, Integer>(); Map<StoneColor, Integer> counters = new HashMap<StoneColor, Integer>();
for (StoneColor c : EnumSet.allOf(StoneColor.class)) { for (StoneColor c : EnumSet.allOf(StoneColor.class)) {
counters.put(c, 0); counters.put(c, 0);
@ -44,7 +55,7 @@ public class StoneHeapTest {
counters.put(i.getColor(), count + 1); counters.put(i.getColor(), count + 1);
} }
for (StoneColor c : EnumSet.allOf(StoneColor.class)) { for (StoneColor c : EnumSet.allOf(StoneColor.class)) {
assertEquals(26, (long) counters.get(c)); assertEquals(stonesOfAColor, (long) counters.get(c));
} }
} }
@ -58,14 +69,14 @@ public class StoneHeapTest {
if (i.isJoker()) if (i.isJoker())
countJoker++; countJoker++;
} }
assertEquals(2, countJoker); assertEquals(testSettings.getJokerNumber(), countJoker);
} }
/** */ /** */
@Test @Test
public void drawStoneTest() { public void drawStoneTest() {
assertNotNull(testHeap.drawStone()); assertNotNull(testHeap.drawStone());
assertEquals(105, testHeap.heap.size()); assertEquals(calculateTotalNumberOfStones() - 1, testHeap.heap.size());
} }
/** */ /** */
@ -73,6 +84,6 @@ public class StoneHeapTest {
public void drawStonesTest() { public void drawStonesTest() {
List<Stone> testStones = testHeap.drawStones(5); List<Stone> testStones = testHeap.drawStones(5);
assertEquals(5, testStones.size()); assertEquals(5, testStones.size());
assertEquals(101, testHeap.heap.size()); assertEquals(calculateTotalNumberOfStones() - 5, testHeap.heap.size());
} }
} }