diff --git a/bin/TennisGame.class b/bin/TennisGame.class index 2da4e7a..32f2bfd 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..651db15 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..380732a 100644 --- a/src/TennisGame.java +++ b/src/TennisGame.java @@ -28,7 +28,7 @@ private String getScore(int points) { case 2: return "30" ; case 3: return "40"; default: return "40" ; - } + } } public void player1Scored() throws TennisGameException { @@ -83,9 +83,11 @@ public String getScore() { if (player1Points >= 4 && player1Points - player2Points == 1) return "player1 has advantage"; - if (player2Points > 4 && player2Points - player1Points == 1) - return "player2 has advantage"; + if (player2Points >= 4 && player2Points - player1Points == 1) + return "player2 has advantage"; + //there is a bug in the if statemen above. player2Points > 4, should be player2points >= 4 - return player2Score + " - " + player1Score ; + //return player2Score + " - " + player1Score ; <-- A bug, the score return should be player1score - player2score + return player1Score + " - " + player2Score; } } \ No newline at end of file diff --git a/tests/TennisGameTest.java b/tests/TennisGameTest.java index 8674eba..fac0231 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(); @@ -63,5 +64,125 @@ 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{ + TennisGame game = new TennisGame(); + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + //Act + //This statement should cause an exception + game.player2Scored(); + } + + @Test + public void testTennisGame_score_15_15() throws TennisGameException { + TennisGame game = new TennisGame(); + game.player1Scored(); + game.player2Scored(); + String score = game.getScore(); + assertEquals("Tie score incorrect", "15 - 15", score); + } + + @Test + public void testTennisGame_score_30_30() throws TennisGameException { + TennisGame game = new TennisGame(); + game.player1Scored(); + game.player2Scored(); + game.player1Scored(); + game.player2Scored(); + String score = game.getScore(); + assertEquals("Tie score incorrect", "30 - 30", score); + } + + @Test + public void testTennisGame_score_15_love() throws TennisGameException{ + TennisGame game = new TennisGame(); + game.player1Scored(); + String score = game.getScore(); + assertEquals("Score is incorrect", "15 - love", score); + } + + @Test + public void testTennisGame_score_love_15() throws TennisGameException{ + TennisGame game = new TennisGame(); + game.player2Scored(); + String score = game.getScore(); + assertEquals("Score is incorrect", "love - 15", score); + } + + @Test + public void testTennisGame_player1AdvantageToWin() throws TennisGameException{ + TennisGame game = new TennisGame(); + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + game.player1Scored(); + String score = game.getScore(); + assertEquals("Score is incorrect", "player1 has advantage", score); + game.player2Scored(); + score = game.getScore(); + assertEquals("Score is incorrect", "deuce", score); + game.player1Scored(); + game.player1Scored(); + score = game.getScore(); + assertEquals("Result is incorrect", "player1 wins", score); + } + + @Test + public void testTennisGame_player1_win_love() throws TennisGameException{ + TennisGame game = new TennisGame(); + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + String score = game.getScore(); + assertEquals("Score is incorrect", "40 - love", score); + game.player1Scored(); + score = game.getScore(); + assertEquals("Result is incorrect", "player1 wins", score); + } + + @Test + public void testTennisGame_player2_win_love() throws TennisGameException{ + TennisGame game = new TennisGame(); + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + String score = game.getScore(); + assertEquals("Score is incorrect", "love - 40", score); + game.player2Scored(); + score = game.getScore(); + assertEquals("Result is incorrect", "player2 wins", score); + } + + @Test (expected = TennisGameException.class) + public void testTennisGame_otherPlayerMakesPointAfterGameEnd() throws TennisGameException{ + TennisGame game = new TennisGame(); + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + //this should cause an exception + game.player2Scored(); + } + + @Test + public void testTennisGame_player2AdvantageToWin() throws TennisGameException{ + TennisGame game = new TennisGame(); + game.player2Scored(); + game.player2Scored(); + game.player2Scored(); + game.player1Scored(); + game.player1Scored(); + game.player1Scored(); + game.player2Scored(); + String score = game.getScore(); + assertEquals("advantage - 15", "player2 has advantage", score); + } }