diff --git a/bin/TennisGame.class b/bin/TennisGame.class index 2da4e7a..9e47497 100644 Binary files a/bin/TennisGame.class and b/bin/TennisGame.class differ diff --git a/bin/TennisGameTest.class b/bin/TennisGameTest.class index b202db2..c6d1d68 100644 Binary files a/bin/TennisGameTest.class and b/bin/TennisGameTest.class differ diff --git a/src/TennisGame.java b/src/TennisGame.java index 327f284..80cbc1c 100644 --- a/src/TennisGame.java +++ b/src/TennisGame.java @@ -77,15 +77,15 @@ public String getScore() { return "player2 wins"; } - if (player1Points >= 4 && player1Points == player2Points) + if (player1Points >= 3 && player1Points == player2Points) return "deuce"; if (player1Points >= 4 && player1Points - player2Points == 1) return "player1 has advantage"; - if (player2Points > 4 && player2Points - player1Points == 1) + if (player2Points >= 4 && player2Points - player1Points == 1) return "player2 has advantage"; - return player2Score + " - " + player1Score ; + return player1Score + " - " + player2Score ; } } \ No newline at end of file diff --git a/tests/TennisGameTest.java b/tests/TennisGameTest.java index 8674eba..162364a 100644 --- a/tests/TennisGameTest.java +++ b/tests/TennisGameTest.java @@ -64,4 +64,189 @@ public void testTennisGame_Player1WinsPointAfterGameEnded_ResultsException() thr // This statement should cause an exception game.player1Scored(); } + + @Test (expected = TennisGameException.class) + public void testTennisGame_Player2WinsPointAfterGameEnded_ResultsException() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + //Act + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + //Act + // This statement should cause an exception + game.player2Scored(); + } + + //So the test are made with the same kind of template + + @Test + public void testTennisGame_Player1HasAdvantage_resultPlayer1Advantage() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + //Act + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + + game.player1Scored(); + + String score = game.getScore(); + //Assert + assertEquals("Player1 should now have advantage", "player1 has advantage", score); + + } + + @Test + public void testTennisGame_Player2HasAdvantage_resultPlayer2Advantage() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + //Act + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + + game.player2Scored(); + + String score = game.getScore(); + + //Assert + assertEquals("Player2 should now have advantage", "player2 has advantage", score); + + } + + + @Test + public void testTennisGame_bothPlayerScoreThreeTimes_resultDeuce() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + //Act + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + + String score = game.getScore(); + + //Assert + assertEquals("Score should now be deuce", "deuce", score); + + } + + + + @Test + public void testTennisGame_Player1ScoresOnce_Result1v0() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + //Act + game.player1Scored(); + + String score = game.getScore(); + + //Assert + assertEquals("Score should now be 15 - love", "15 - love", score); + } + + @Test + public void testTennisGame_Player2ScoresOnce_Result0v1() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + //Act + game.player2Scored(); + + String score = game.getScore(); + + //Assert + assertEquals("Score should now be love - 15", "love - 15", score); + } + + @Test + public void testTennisGame_BothPlayersScoreOnce_Result15v15() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + //Act + game.player1Scored(); + + game.player2Scored(); + + String score = game.getScore(); + //Assert + assertEquals("Score should now be 15 - 15", "15 - 15", score); + } + + @Test + public void testTennisGame_Player1Leads40v30_Result40v30() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + //Act + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + + game.player2Scored(); + game.player2Scored(); + + String score = game.getScore(); + + //Assert + assertEquals("Score should now be 40 - 30", "40 - 30", score); + } + + + + @Test + public void testTennisGame_Player1Wins_Result0v4() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + //Act + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + + + String score = game.getScore(); + + //Assert + assertEquals("Player1 should now win", "player1 wins", score); + } + + @Test + public void testTennisGame_Player2Wins_Result4v0() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + //Act + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + + String score = game.getScore(); + + //Assert + assertEquals("Player2 should now win", "player2 wins", score); + } + }