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..cd0e43a 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..35ed3a2 100644 --- a/src/TennisGame.java +++ b/src/TennisGame.java @@ -11,7 +11,7 @@ public class TennisGame { public TennisGame() { player1Points = 0; player2Points = 0; - gameEnded = false ; + gameEnded = false; } private void checkGameEnded() { @@ -23,11 +23,11 @@ else if (player2Points>=4 && player2Points-player1Points>=2) private String getScore(int points) { switch (points) { - case 0: return "love"; - case 1: return "15" ; - case 2: return "30" ; - case 3: return "40"; - default: return "40" ; + case 0: return "love"; + case 1: return "15"; + case 2: return "30"; + case 3: return "40"; + default: return "40"; } } @@ -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..7218bfd 100644 --- a/tests/TennisGameTest.java +++ b/tests/TennisGameTest.java @@ -20,7 +20,8 @@ public class TennisGameTest { // "player2 has advantage" // "player1 wins" // "player2 wins" - @Ignore + + @Test public void testTennisGame_Start() { //Arrange TennisGame game = new TennisGame(); @@ -31,7 +32,7 @@ public void testTennisGame_Start() { } @Test - public void testTennisGame_EahcPlayerWin4Points_Score_Deuce() throws TennisGameException { + public void testTennisGame_EachPlayerWin4Points_Score_Deuce() throws TennisGameException { //Arrange TennisGame game = new TennisGame(); @@ -51,6 +52,132 @@ public void testTennisGame_EahcPlayerWin4Points_Score_Deuce() throws TennisGameE assertEquals("Tie score incorrect", "deuce", score); } + @Test + public void testTennisGame_DeuceTooEarly() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + game.player1Scored(); + game.player1Scored(); + + game.player2Scored(); + game.player2Scored(); + + //Act + String score = game.getScore() ; + // Assert + assertEquals("Deuce too early", "30 - 30", score); + } + + @Test + public void testTennisGame_DeuceTooLate() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + + //Act + String score = game.getScore() ; + // Assert + assertEquals("Deuce too late", "deuce", score); + } + + @Test + public void testTennisGame_Player1Advantage() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + + game.player1Scored(); + + //Act + String score = game.getScore() ; + // Assert + assertEquals("Not displaying advantage correctly", "player1 has advantage", score); + } + + @Test + public void testTennisGame_Player2Advantage() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + + game.player2Scored(); + + //Act + String score = game.getScore() ; + // Assert + assertEquals("Not displaying advantage correctly", "player2 has advantage", score); + } + + @Test + public void testTennisGame_Player1TwoPointsPlayer2OnePoint() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + game.player1Scored(); + game.player1Scored(); + + game.player2Scored(); + + //Act + String score = game.getScore() ; + // Assert + assertEquals("Not displaying score correctly", "30 - 15", score); + } + + @Test + public void testTennisGame_Player1WinAtZeroFour() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + + //Act + String score = game.getScore() ; + // Assert + assertEquals("Not displaying a four point win correctly", "player1 wins", score); + } + + @Test + public void testTennisGame_Player2WinAtZeroFour() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + + //Act + String score = game.getScore() ; + // Assert + assertEquals("Not displaying a four point win correctly", "player2 wins", score); + } + @Test (expected = TennisGameException.class) public void testTennisGame_Player1WinsPointAfterGameEnded_ResultsException() throws TennisGameException { //Arrange @@ -63,5 +190,34 @@ public void testTennisGame_Player1WinsPointAfterGameEnded_ResultsException() thr //Act // 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(); + } + + @Test (expected = TennisGameException.class) + public void testTennisGame_OtherPlayerWinsPointAfterGameEnded_ResultsException() throws TennisGameException { + //Arrange + TennisGame game = new TennisGame(); + //Act + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + //Act + // This statement should cause an exception + game.player2Scored(); + } + }