@Test
  public void readsInputFromPlayer() {
    Prompt prompt = new CommandLinePrompt(readerWithInput("1\n"), writer);

    Gesture gesture = prompt.readValidGestureFrom("player one");

    assertThat(gesture, is(ROCK));
    assertThat(writer.toString(), is(""));
  }
  @Test
  public void repromptsUserWhenTheyEnterANumberOutsideOfGestureRange() {
    Prompt prompt = new CommandLinePrompt(readerWithInput("7\n2"), writer);

    Gesture gesture = prompt.readValidGestureFrom("Player one");

    assertThat(
        writer.toString(),
        is("Player one - please enter:\n1 for ROCK\n2 for PAPER\n3 for SCISSORS\n"));
    assertThat(gesture, is(PAPER));
  }
 @Test(expected = ReadException.class)
 public void exceptionThrownWhenErrorReading() {
   Prompt prompt = new CommandLinePrompt(new StringReaderStub(), writer);
   prompt.readValidGestureFrom("Player one");
 }