BowlingGame { public int score() { return scoreKeeper.getScore(); } BowlingGame(ScoreKeeper scoreKeeper); void roll(int pins); int score();  }
@Test public void gutterGameIsZero() throws Exception { rollMany(20, 0); assertThat(bowlingGame.score()).isEqualTo(0); }
@Test public void allOnesIsTwenty() throws Exception { rollMany(20, 1); assertThat(bowlingGame.score()).isEqualTo(20); }
@Test public void oneSpare() throws Exception { rollSpare(); rollMany(18, 1); assertThat(bowlingGame.score()).isEqualTo(29); }
@Test public void oneSpareAtTheEnd() throws Exception { rollMany(18, 1); rollSpare(); rollMany(1, 1); assertThat(bowlingGame.score()).isEqualTo(30); }
@Test public void oneStrike() throws Exception { rollStrike(); rollMany(18, 1); assertThat(bowlingGame.score()).isEqualTo(30); }