import org.junit.Ignore; import org.junit.Test; import static org.fest.assertions.api.Assertions.assertThat; /** * Coding Dojo Session * Write a program to score a game of Ten-Pin Bowling. * http://cyber-dojo.org/setup/show/ * Date: 15/07/2015 **/ public class BowlingTest { @Test public void a_looser_plays() { assertThat(Bowling.play("--|--|--|--|--|--|--|--|--|--||")).isEqualTo(0); } @Test public void a_semi_looser_plays() { assertThat(Bowling.play("3-|--|--|--|--|--|--|--|--|--||")).isEqualTo(3); } @Test public void a_semi_looser_2frames_plays() { assertThat(Bowling.play("3-|5-|--|--|--|--|--|--|--|--||")).isEqualTo(8); } @Test public void spare_test_plays() { assertThat(Bowling.play("3/|--|--|--|--|--|--|--|--|--||")).isEqualTo(10); } @Test public void strike_test_plays() { assertThat(Bowling.play("X|--|--|--|--|--|--|--|--|--||")).isEqualTo(10); } @Test public void spare_test_with_a_hit_after() { assertThat(Bowling.play("3/|2-|--|--|--|--|--|--|--|--||")).isEqualTo(14); } @Test public void spare_test_with_two_hits_after() { assertThat(Bowling.play("3/|25|--|--|--|--|--|--|--|--||")).isEqualTo(19); } @Test public void strike_test_with_a_hit_after() { assertThat(Bowling.play("X|2-|--|--|--|--|--|--|--|--||")).isEqualTo(14); } @Test public void strike_test_with_two_hits_after() { assertThat(Bowling.play("X|25|--|--|--|--|--|--|--|--||")).isEqualTo(24); } @Test public void strike_test_with_two_hits_and_hit_last_frame() { assertThat(Bowling.play("X|25|--|--|--|--|--|--|--|-1||")).isEqualTo(25); } @Test public void strike_test_with_spare_after() { assertThat(Bowling.play("X|3/|--|--|--|--|--|--|--|--||")).isEqualTo(30); } @Ignore @Test public void it_should_accept_double_strikes() { assertThat(Bowling.play("X|X|--|--|--|--|--|--|--|--||")).isEqualTo(30); } @Ignore @Test public void acceptance_test() { assertThat(Bowling.play("X|X|X|X|X|X|X|X|X|X||XX")).isEqualTo(300); assertThat(Bowling.play("9-|9-|9-|9-|9-|9-|9-|9-|9-|9-||")).isEqualTo(90); assertThat(Bowling.play("5/|5/|5/|5/|5/|5/|5/|5/|5/|5/||5")).isEqualTo(150); assertThat(Bowling.play("X|7/|9-|X|-8|8/|-6|X|X|X||81")).isEqualTo(167); } }