PaperScissorsStone { public Move result(Move firstMove, Move secondMove) { return firstMove.accept(secondMove); }  Move result(Move firstMove, Move secondMove);  }
@Test public void scissorsBeatsPaper() { Move result = paperScissorsStone.result(scissors, paper); assertThat(result).isEqualTo(scissors); }
@Test public void paperBeatsStone() { Move result = paperScissorsStone.result(stone, paper); assertThat(result).isEqualTo(paper); }
@Test public void stoneBeatsScissors() { Move result = paperScissorsStone.result(scissors, stone); assertThat(result).isEqualTo(stone); }