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

View file

@ -80,6 +80,8 @@ public interface ISettingsPanel {
* @return the event
*/
public IEvent1<Integer> getChangeInitialMeldThresholdEvent();
public IEvent1<Integer> getChangeStoneSetNumberEvent();
/**
* the start game event is emitted when the user wants to start the game
@ -156,6 +158,8 @@ public interface ISettingsPanel {
* initial meld threshold
*/
public void setInitialMeldThreshold(int value);
public void setStoneSetNumber(int number);
/**
* Emitted when the joker number is changed
@ -164,6 +168,7 @@ public interface ISettingsPanel {
*/
public IEvent1<Integer> getChangeJokerNumberEvent();
/**
* 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 Event1<Integer> changeInitialMeldThresholdEvent = new Event1<Integer>();
private Event1<Integer> changeJokerNumberEvent = new Event1<Integer>();
private Event1<Integer> changeStoneSetNumberEvent = new Event1<Integer>();
@Override
public IEvent getStartGameEvent() {
@ -106,6 +107,11 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
return changeInitialMeldThresholdEvent;
}
@Override
public IEvent1<Integer> getChangeStoneSetNumberEvent() {
return changeStoneSetNumberEvent;
}
@Override
public void setError(SettingsError error) {
switch (error) {
@ -246,8 +252,6 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
c.weightx = 1;
c.weighty = 1;
optionsPanel.add(makeFiller(), c);
// TODO Knöpfe für Dinge
}
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() {
return changePlayerTypeEvent;
}
@Override
public void setStoneSetNumber(int number) {
// TODO Auto-generated method stub
}
}

View file

@ -37,7 +37,8 @@ public class SettingsControlTest {
/** */
@Test
public void initialStateTest() {
assertSame(ISettingsPanel.SettingsError.NO_ERROR, view.settingsPanel.error);
assertSame(ISettingsPanel.SettingsError.NO_ERROR,
view.settingsPanel.error);
view.settingsPanel.startGameEvent.emit();
assertNotNull(gameSettings);
assertEquals(2, gameSettings.getPlayerList().size());
@ -156,7 +157,8 @@ public class SettingsControlTest {
view.settingsPanel.changePlayerNameEvent.emit(1, name2);
assertTrue(view.settingsPanel.startButtonEnabled);
assertSame(ISettingsPanel.SettingsError.NO_ERROR, view.settingsPanel.error);
assertSame(ISettingsPanel.SettingsError.NO_ERROR,
view.settingsPanel.error);
view.settingsPanel.startGameEvent.emit();
assertNotNull(gameSettings);
@ -175,38 +177,57 @@ public class SettingsControlTest {
view.settingsPanel.startGameEvent.emit();
assertNull(gameSettings);
}
/** */
@Test
public void initialMeldThresholdTest() {
assertEquals(initialSettings.getInitialMeldThreshold(), view.settingsPanel.initialMeldThreshold);
assertEquals(initialSettings.getInitialMeldThreshold(),
view.settingsPanel.initialMeldThreshold);
view.settingsPanel.changeInitialMeldThresholdEvent.emit(25);
view.settingsPanel.startGameEvent.emit();
assertEquals(25, gameSettings.getInitialMeldThreshold());
}
/** */
@Test
public void jokerNumberTest() {
assertEquals(initialSettings.getJokerNumber(), view.settingsPanel.jokerNumber);
assertEquals(initialSettings.getJokerNumber(),
view.settingsPanel.jokerNumber);
view.settingsPanel.changeJokerNumberEvent.emit(25);
view.settingsPanel.startGameEvent.emit();
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
public void typeChangeTest() {
view.settingsPanel.changePlayerTypeEvent.emit(0, TurnControlFactory.Type.COMPUTER);
view.settingsPanel.changePlayerTypeEvent.emit(1, TurnControlFactory.Type.COMPUTER);
view.settingsPanel.changePlayerTypeEvent.emit(1, TurnControlFactory.Type.HUMAN);
view.settingsPanel.changePlayerTypeEvent.emit(0,
TurnControlFactory.Type.COMPUTER);
view.settingsPanel.changePlayerTypeEvent.emit(1,
TurnControlFactory.Type.COMPUTER);
view.settingsPanel.changePlayerTypeEvent.emit(1,
TurnControlFactory.Type.HUMAN);
view.settingsPanel.startGameEvent.emit();
assertNotNull(gameSettings);
assertEquals(2, gameSettings.getPlayerList().size());
assertSame(TurnControlFactory.Type.COMPUTER, gameSettings.getPlayerList().get(0).getTurnControlType());
assertSame(TurnControlFactory.Type.HUMAN, gameSettings.getPlayerList().get(1).getTurnControlType());
assertSame(TurnControlFactory.Type.COMPUTER, gameSettings
.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 {
private StoneHeap testHeap;
private GameSettings testSettings;
/** */
@Before
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
public void fullStoneHeap() {
assertEquals(106, testHeap.heap.size());
assertEquals(calculateTotalNumberOfStones(), testHeap.heap.size());
}
/**
@ -33,6 +42,8 @@ public class StoneHeapTest {
*/
@Test
public void fullColor() {
int stonesOfAColor = testSettings.getHighestCard()
* testSettings.getStoneSetNumber();
Map<StoneColor, Integer> counters = new HashMap<StoneColor, Integer>();
for (StoneColor c : EnumSet.allOf(StoneColor.class)) {
counters.put(c, 0);
@ -44,7 +55,7 @@ public class StoneHeapTest {
counters.put(i.getColor(), count + 1);
}
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())
countJoker++;
}
assertEquals(2, countJoker);
assertEquals(testSettings.getJokerNumber(), countJoker);
}
/** */
@Test
public void drawStoneTest() {
assertNotNull(testHeap.drawStone());
assertEquals(105, testHeap.heap.size());
assertEquals(calculateTotalNumberOfStones() - 1, testHeap.heap.size());
}
/** */
@ -73,6 +84,6 @@ public class StoneHeapTest {
public void drawStonesTest() {
List<Stone> testStones = testHeap.drawStones(5);
assertEquals(5, testStones.size());
assertEquals(101, testHeap.heap.size());
assertEquals(calculateTotalNumberOfStones() - 5, testHeap.heap.size());
}
}