Commit 4f61ee87 authored by Ján Dovjak's avatar Ján Dovjak
Browse files

feat: interface for recruiting new player

parent 17f88697
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -13,12 +13,16 @@ public final class PlayerCreateDTO {
    @Setter
    private String name;

    @Getter
    @Setter
    private long teamId;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        PlayerDTO playerDTO = (PlayerDTO) o;
        return getName().equals(playerDTO.getName());
        PlayerCreateDTO playerDTO = (PlayerCreateDTO) o;
        return getName().equals(playerDTO.getName()) && getTeamId() == playerDTO.getTeamId();
    }

    @Override
+1 −2
Original line number Diff line number Diff line
@@ -17,9 +17,8 @@ public interface TeamManagerFacade {
     * Creates new player and adds it to team given by teamId
     *
     * @param playerCreateDTO DTO object for creating new player
     * @param teamId ID of the team to add the player to
     */
    void recruitNewPlayer(PlayerCreateDTO playerCreateDTO, long teamId);
    void recruitNewPlayer(PlayerCreateDTO playerCreateDTO);

    /**
     * Adds player with playerId to team with teamId
+5 −4
Original line number Diff line number Diff line
@@ -32,8 +32,6 @@ public class IceHockeyManagerApi {
        return teamManagerFacade.getFreePlayers();
    }



    @GetMapping("/player/{id}")
    public final PlayerDTO findPlayer(@PathVariable Long id) {
        return userFacade.findPlayer(id).get();
@@ -45,8 +43,8 @@ public class IceHockeyManagerApi {
    }

    @PostMapping("/player/recruitNew")
    public final void recruitNewPlayer(@Valid @RequestBody PlayerCreateDTO player) {
        teamManagerFacade.recruitNewPlayer(player, 1L);
    public final void recruitNewPlayer(PlayerCreateDTO player) {
        teamManagerFacade.recruitNewPlayer(player);
    }

    @PostMapping("/player/recruitFree")
@@ -54,6 +52,7 @@ public class IceHockeyManagerApi {
        teamManagerFacade.recruitVeteranPlayer(playerId, 2L);
    }


    @GetMapping("/team/all")
    public final Collection<TeamDTO> getTeamsInLeague() {
        return userFacade.getTeamsInLeague();
@@ -64,6 +63,7 @@ public class IceHockeyManagerApi {
        leagueManagerFacade.createNewTeam(team);
    }


    @GetMapping("/game/team/{id}")
    public final Collection<GameDTO> getGamesForTeam(@PathVariable Long id) {
        return userFacade.getGamesForTeam(id);
@@ -74,4 +74,5 @@ public class IceHockeyManagerApi {
        return userFacade.getGamesForLeague();
    }


}
+2 −2
Original line number Diff line number Diff line
@@ -31,8 +31,8 @@ public class TeamManagerFacadeImpl implements TeamManagerFacade{
    }

    @Override
    public void recruitNewPlayer(PlayerCreateDTO playerCreateDTO, long teamId) {
        Team team = teamService.findTeam(teamId).orElseThrow(
    public void recruitNewPlayer(PlayerCreateDTO playerCreateDTO) {
        Team team = teamService.findTeam(playerCreateDTO.getTeamId()).orElseThrow(
                () -> new UnknownTeamException("Team not found")
        );
        Player newPlayer = beanMappingService.mapTo(playerCreateDTO, Player.class);
+2 −1
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ public class TeamManagerFacadeImplTest {
        PlayerCreateDTO player = buildPlayerCreateDtoMock("Zdeno Chara");
        when(teamService.findTeam(1L)).thenReturn(Optional.empty());
        assertThatExceptionOfType(UnknownTeamException.class).isThrownBy(
                () -> teamManagerFacade.recruitNewPlayer(player, 1L)
                () -> teamManagerFacade.recruitNewPlayer(player)
        );
        verify(teamService).findTeam(1L);
    }
@@ -148,6 +148,7 @@ public class TeamManagerFacadeImplTest {
    private PlayerCreateDTO buildPlayerCreateDtoMock(String name) {
        var player = new PlayerCreateDTO();
        player.setName(name);
        player.setTeamId(1L);
        return player;
    }
}