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 { public class AblageStack extends BaseStack {
private static final long serialVersionUID = 1L; 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();
super.setLocation(_x, _y); super.setLocation(_x, _y);
super.setSize(IMAGE_WIDTH, STACK_HIGHT); super.setSize(IMAGE_WIDTH, STACK_HIGHT);
super.setOpaque(false); super.setOpaque(false);
super.setLayout(null); super.setLayout(null);
this.sym = _sym;
} }
@Override @Override
protected boolean cardCheck(Card _topStack, Card _playerCard) { 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 @ParameterizedTest
@MethodSource("testAblageStackTestDaten") @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); assertEquals(_expectedResult, stack.cardCheck(_stapel, _spieler), msg);
} }
private static Stream<Arguments> testAblageStackTestDaten(){ private static Stream<Arguments> testAblageStackTestDaten(){
return Stream.of( return Stream.of(
Arguments.of("Ass-Kreuz auf Leeres Feld",
Arguments.of("Ass-Kreuz auf Leeres Kreuz-Feld",
null, 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