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.
18 changes: 9 additions & 9 deletions src/TennisGame.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class TennisGame {
public TennisGame() {
player1Points = 0;
player2Points = 0;
gameEnded = false ;
gameEnded = false;
}

private void checkGameEnded() {
Expand All @@ -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";
}
}

Expand Down Expand Up @@ -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 ;
}
}
162 changes: 159 additions & 3 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 All @@ -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();

Expand All @@ -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
Expand All @@ -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();
}

}