Browse Source

player_management: added method selectPlayer, added method equals and

hashCode in class Player
Tobias Krause 3 years ago
parent
commit
7b2494067b
  1. 39
      src/main/java/de/tims/player_management/Player.java
  2. 21
      src/main/java/de/tims/player_management/PlayerManager.java
  3. 28
      src/test/java/de/tims/player_management/PlayerManagerTest.java
  4. 34
      src/test/java/de/tims/player_management/PlayerTest.java

39
src/main/java/de/tims/player_management/Player.java

@ -0,0 +1,39 @@
package de.tims.player_management;
public class Player {
private int points;
public Player(int points) {
this.points = points;
}
public void addPoints(int pointsToAdd) {
this.points = (this.points + pointsToAdd > 0) ? this.points + pointsToAdd : 0;
}
public int getPoints() {
return this.points;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if ((o == null) || this.getClass() != o.getClass()) {
return false;
}
Player player2 = (Player) o;
return this.points == player2.points;
}
@Override
public int hashCode() {
return points;
}
}

21
src/main/java/de/tims/player_management/PlayerManager.java

@ -0,0 +1,21 @@
package de.tims.player_management;
import java.util.LinkedList;
public class PlayerManager {
private LinkedList<Player> players;
public LinkedList<Player> getPlayers() {
return players;
}
public void setPlayers(LinkedList<Player> players) {
this.players = players;
}
public Player selectPlayer(String playerName) {
return new Player(0);
}
}

28
src/test/java/de/tims/player_management/PlayerManagerTest.java

@ -0,0 +1,28 @@
package de.tims.player_management;
import static org.assertj.core.api.Assertions.*;
import java.util.LinkedList;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
class PlayerManagerTest {
PlayerManager manager = new PlayerManager();
@ParameterizedTest
@MethodSource("testCasesForSelectPlayer")
void selectPlayerTest(String testName, LinkedList<Player> players, String playerName, Player expectedResult) {
manager.setPlayers(players);
Player calculatedResult = manager.selectPlayer(playerName);
assertThat(calculatedResult).describedAs(testName).isEqualTo(expectedResult);
}
private static Stream<Arguments> testCasesForSelectPlayer() {
return Stream.of(Arguments.of("NoPlayersYet", new LinkedList<Player>(), "Tobias", new Player(0)));
}
}

34
src/test/java/de/tims/player_management/PlayerTest.java

@ -0,0 +1,34 @@
package de.tims.player_management;
import static org.assertj.core.api.Assertions.*;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import de.tims.player_management.Player;
class PlayerTest {
Player player;
@ParameterizedTest
@MethodSource("testCasesForAddPoints")
void addPointsTest(String testName, int pointsBefore, int pointsToAdd, int expectedResult) {
player = new Player(pointsBefore);
player.addPoints(pointsToAdd);
int calculatedResult = player.getPoints();
assertThat(calculatedResult).describedAs(testName).isEqualTo(expectedResult);
}
private static Stream<Arguments> testCasesForAddPoints() {
return Stream.of(Arguments.of("NoPointsBeforeGet0Points", 0, 0, 0),
Arguments.of("NoPointsBeforeGet10Points", 0, 10, 10),
Arguments.of("10PointsBeforeAdd10Points", 10, 10, 20),
Arguments.of("10PointsBeforeLose10Points", 10, -10, 0),
Arguments.of("LoseMorePointsThanYouHave", 10, -20, 0));
}
}
Loading…
Cancel
Save