Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified bin/TennisGame.class
Binary file not shown.
Binary file modified bin/TennisGameTest.class
Binary file not shown.
10 changes: 6 additions & 4 deletions src/TennisGame.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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;
}
}
125 changes: 123 additions & 2 deletions tests/TennisGameTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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);
}
}