The last requirement is the last win condition.
We need to perform valid game movements to achieve the condition. In this case, we need to test both diagonals across the board: from top-right to bottom-left and from bottom-right to top-left. The following tests use a list of columns to recreate a full game to reproduce the scenario under test:
@Test public void when4Diagonal1DiscsAreConnectedThenThatPlayerWins() { int[] gameplay = new int[] {1, 2, 2, 3, 4, 3, 3, 4, 4, 5, 4}; for (int column : gameplay) { tested.putDiscInColumn(column); } assertThat(tested.getWinner(), is("R")); } ...