You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.3 KiB
95 lines
2.3 KiB
package de.edu.hsfulda.ccip.tdd.purefunction;
|
|
|
|
import static org.junit.Assert.assertThat;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
import org.hamcrest.CoreMatchers;
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
class BowlingCalculatorTest {
|
|
|
|
private BowlingCalculator bowlingCalculator;
|
|
|
|
@BeforeEach
|
|
void setUp() throws Exception {
|
|
bowlingCalculator = new BowlingCalculator();
|
|
}
|
|
|
|
@Test
|
|
void resultOfWorstGameIsZero() {
|
|
// arrange
|
|
String rolls = "-- -- -- -- -- -- -- -- -- --";
|
|
int expectedScore = 0;
|
|
// act
|
|
int score = bowlingCalculator.score(rolls);
|
|
// assert
|
|
assertThat("score", score, CoreMatchers.equalTo(expectedScore));
|
|
}
|
|
|
|
@Test
|
|
void addUpSingleRollInIncompleteFrames() {
|
|
// arrange
|
|
String rolls = "-1 23 -4 5- -6 -7 8- 9- -- --";
|
|
int expectedScore = 45;
|
|
// act
|
|
int score = bowlingCalculator.score(rolls);
|
|
// assert
|
|
assertThat("score", score, CoreMatchers.equalTo(expectedScore));
|
|
}
|
|
|
|
@Test
|
|
void frameWithSpareCounts10() {
|
|
// arrange
|
|
String rolls = "-- -- 3/ -- 7/ -- -- -- -- --";
|
|
int expectedScore = 20;
|
|
// act
|
|
int score = bowlingCalculator.score(rolls);
|
|
// assert
|
|
assertThat("score", score, CoreMatchers.equalTo(expectedScore));
|
|
}
|
|
|
|
@Test
|
|
void frameWithSpareAddsNextRollTwice() {
|
|
// arrange
|
|
String rolls = "-- -- 3/ 2- 7/ 8- -- -- -- --";
|
|
int expectedScore = 40;
|
|
// act
|
|
int score = bowlingCalculator.score(rolls);
|
|
// assert
|
|
assertThat("score", score, CoreMatchers.equalTo(expectedScore));
|
|
}
|
|
|
|
@Test
|
|
void frameWithStrikeCounts10() {
|
|
// arrange
|
|
String rolls = "-- -- X -- X -- -- -- -- --";
|
|
int expectedScore = 20;
|
|
// act
|
|
int score = bowlingCalculator.score(rolls);
|
|
// assert
|
|
assertThat("score", score, CoreMatchers.equalTo(expectedScore));
|
|
}
|
|
|
|
@Test
|
|
void frameWithStrikeAddsNextRollTwice() {
|
|
// arrange
|
|
String rolls = "-- -- X 2- X 8- -- -- -- --";
|
|
int expectedScore = 40;
|
|
// act
|
|
int score = bowlingCalculator.score(rolls);
|
|
// assert
|
|
assertThat("score", score, CoreMatchers.equalTo(expectedScore));
|
|
}@Test
|
|
|
|
void frameWithStrikeAddsSecondNextRollTwice() {
|
|
// arrange
|
|
String rolls = "-- -- X -2 X -8 -- -- -- --";
|
|
int expectedScore = 40;
|
|
// act
|
|
int score = bowlingCalculator.score(rolls);
|
|
// assert
|
|
assertThat("score", score, CoreMatchers.equalTo(expectedScore));
|
|
}
|
|
}
|