Browse Source

Add Ruleset for AblageStack and Tests

feature_solitaer_AblageStack
Alexander Hartung 2 years ago
parent
commit
e5fa1c3657
  1. 19
      src/main/java/solitaer/AblageStack.java
  2. 26
      src/test/java/solitaer/AblageStackTest.java

19
src/main/java/solitaer/AblageStack.java

@ -3,19 +3,32 @@ package solitaer;
public class AblageStack extends BaseStack {
private static final long serialVersionUID = 1L;
private Symbol sym;
public AblageStack(int _x, int _y) {
public AblageStack(int _x, int _y, Symbol _sym) {
super();
super.setLocation(_x, _y);
super.setSize(IMAGE_WIDTH, STACK_HIGHT);
super.setOpaque(false);
super.setLayout(null);
this.sym = _sym;
}
@Override
protected boolean cardCheck(Card _topStack, Card _playerCard) {
// TODO Auto-generated method stub
return true;
if(_topStack == null && _playerCard == null) {
return false;
}
if(_playerCard.getSymbol() != this.sym) {
return false;
} else if(_topStack == null) {
//nur ein Ass darf auf einen Leeren Stabel gelegt werden
return _playerCard.getNr() == 1;
} else {
return _topStack.getNr() == _playerCard.getNr() - 1;
}
}
}

26
src/test/java/solitaer/AblageStackTest.java

@ -12,16 +12,34 @@ class AblageStackTest {
@ParameterizedTest
@MethodSource("testAblageStackTestDaten")
void testRulesetStartStack(String msg, Card _stapel, Card _spieler, boolean _expectedResult) {
AblageStack stack = new AblageStack(0, 0);
void testRulesetAblageStack(String msg, Card _stapel, Card _spieler, boolean _expectedResult) {
AblageStack stack = new AblageStack(0, 0, Symbol.Kreuz);
assertEquals(_expectedResult, stack.cardCheck(_stapel, _spieler), msg);
}
private static Stream<Arguments> testAblageStackTestDaten(){
return Stream.of(
Arguments.of("Ass-Kreuz auf Leeres Feld",
Arguments.of("Ass-Kreuz auf Leeres Kreuz-Feld",
null,
new Card(1, Symbol.Kreuz, true), true)
null, false),
Arguments.of("Ass-Kreuz auf Leeres Kreuz-Feld",
null,
new Card(1, Symbol.Kreuz, true), true),
Arguments.of("02-Kreuz auf Leeres Kreuz-Feld",
null,
new Card(2, Symbol.Kreuz, true), false),
Arguments.of("Ass-Herz auf Leeres Kreuz-Feld",
null,
new Card(1, Symbol.Herz, true), false),
Arguments.of("05-Kreuz auf 04-Kreuz",
new Card(4, Symbol.Kreuz, true),
new Card(5, Symbol.Kreuz, true), true),
Arguments.of("05-Herz auf 04-Kreuz",
new Card(4, Symbol.Kreuz, true),
new Card(5, Symbol.Herz, true), false),
Arguments.of("Ass-Kreuz auf König-Kreuz",
new Card(13, Symbol.Kreuz, true),
new Card(1, Symbol.Kreuz, true), false)
);
}

Loading…
Cancel
Save