mirror of
https://codeberg.org/beerbrawl/beerbrawl.git
synced 2024-09-23 01:30:52 +02:00
Revert "Merge branch 'tournament-overview' into 'development'"
This reverts merge request !22
This commit is contained in:
parent
4f06cc2807
commit
6a0a4c30d7
|
@ -25,7 +25,6 @@ public interface TestData {
|
|||
}
|
||||
};
|
||||
String DEFAULT_USER = "user";
|
||||
String DEFAULT_USER_PASSWORD = "password";
|
||||
List<String> USER_ROLES = new ArrayList<>() {
|
||||
{
|
||||
add("ROLE_USER");
|
||||
|
|
|
@ -6,10 +6,6 @@ import at.ac.tuwien.sepr.groupphase.backend.config.properties.SecurityProperties
|
|||
import at.ac.tuwien.sepr.groupphase.backend.datagenerator.TestDataGenerator;
|
||||
import at.ac.tuwien.sepr.groupphase.backend.endpoint.dto.CreateTournamentDto;
|
||||
import at.ac.tuwien.sepr.groupphase.backend.endpoint.dto.TournamentDto;
|
||||
import at.ac.tuwien.sepr.groupphase.backend.endpoint.dto.TournamentListDto;
|
||||
import at.ac.tuwien.sepr.groupphase.backend.entity.ApplicationUser;
|
||||
import at.ac.tuwien.sepr.groupphase.backend.entity.Tournament;
|
||||
import at.ac.tuwien.sepr.groupphase.backend.repository.MessageRepository;
|
||||
import at.ac.tuwien.sepr.groupphase.backend.endpoint.dto.TournamentQualificationMatchDto;
|
||||
import at.ac.tuwien.sepr.groupphase.backend.entity.Team;
|
||||
import at.ac.tuwien.sepr.groupphase.backend.entity.Tournament;
|
||||
|
@ -39,15 +35,6 @@ import org.springframework.mock.web.MockHttpServletResponse;
|
|||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
|
||||
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
|
@ -59,12 +46,6 @@ public class TournamentEndpointTest extends TestUserData implements TestData {
|
|||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@Autowired
|
||||
private TournamentRepository tournamentRepository;
|
||||
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
|
@ -74,9 +55,12 @@ public class TournamentEndpointTest extends TestUserData implements TestData {
|
|||
@Autowired
|
||||
private SecurityProperties securityProperties;
|
||||
|
||||
@Autowired
|
||||
private TournamentRepository tournamentRepository;
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
@Autowired
|
||||
private TeamRepository teamRepository;
|
||||
|
||||
@Autowired
|
||||
private QualificationParticipationRepository qualificationParticipationRepository;
|
||||
|
||||
|
@ -84,41 +68,42 @@ public class TournamentEndpointTest extends TestUserData implements TestData {
|
|||
public void successfullyCreateNewTournament() throws Exception {
|
||||
var registrationEnd = LocalDateTime.now().plusDays(1).withSecond(0).withNano(0);
|
||||
CreateTournamentDto data = new CreateTournamentDto()
|
||||
.setName("TOURNAMENT 1")
|
||||
.setRegistrationEnd(registrationEnd)
|
||||
.setMaxParticipants(64L)
|
||||
.setDescription("THIS IS A TEST");
|
||||
.setName("TOURNAMENT 1")
|
||||
.setRegistrationEnd(registrationEnd)
|
||||
.setMaxParticipants(64L)
|
||||
.setDescription("THIS IS A TEST");
|
||||
var mvcResult = this.mockMvc.perform(post(TOURNAMENT_BASE_URI)
|
||||
.header(securityProperties.getAuthHeader(), jwtTokenizer.getAuthToken(TEST_USER, TEST_USER_ROLES))
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(objectMapper.writeValueAsString(data)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
MockHttpServletResponse response = mvcResult.getResponse();
|
||||
|
||||
var dtoRes = objectMapper.readValue(response.getContentAsString(), TournamentDto.class);
|
||||
var dtoRes = objectMapper.readValue(response.getContentAsString(),
|
||||
TournamentDto.class);
|
||||
|
||||
assertAll(
|
||||
() -> assertEquals(HttpStatus.CREATED.value(), response.getStatus()),
|
||||
() -> assertEquals(MediaType.APPLICATION_JSON_VALUE, response.getContentType()),
|
||||
() -> assertEquals(dtoRes.name(), data.getName()),
|
||||
() -> assertEquals(dtoRes.registrationEnd(), data.getRegistrationEnd()),
|
||||
() -> assertEquals(dtoRes.maxParticipants(), data.getMaxParticipants()),
|
||||
() -> assertEquals(dtoRes.description(), data.getDescription()));
|
||||
() -> assertEquals(HttpStatus.CREATED.value(), response.getStatus()),
|
||||
() -> assertEquals(MediaType.APPLICATION_JSON_VALUE, response.getContentType()),
|
||||
() -> assertEquals(dtoRes.name(), data.getName()),
|
||||
() -> assertEquals(dtoRes.registrationEnd(), data.getRegistrationEnd()),
|
||||
() -> assertEquals(dtoRes.maxParticipants(), data.getMaxParticipants()),
|
||||
() -> assertEquals(dtoRes.description(), data.getDescription()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createNewTournamentWithValidationErrorsFor_Name_RegistrationEnd_And_MaxParticipants() throws Exception {
|
||||
CreateTournamentDto data = new CreateTournamentDto()
|
||||
.setName(null)
|
||||
.setRegistrationEnd(LocalDateTime.now().minusDays(1))
|
||||
.setMaxParticipants(0L);
|
||||
.setName(null)
|
||||
.setRegistrationEnd(LocalDateTime.now().minusDays(1))
|
||||
.setMaxParticipants(0L);
|
||||
var mvcResult = this.mockMvc.perform(post(TOURNAMENT_BASE_URI)
|
||||
.header(securityProperties.getAuthHeader(), jwtTokenizer.getAuthToken(TEST_USER, TEST_USER_ROLES))
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(objectMapper.writeValueAsString(data)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
MockHttpServletResponse response = mvcResult.getResponse();
|
||||
|
||||
var res = response.getContentAsString();
|
||||
|
@ -129,71 +114,11 @@ public class TournamentEndpointTest extends TestUserData implements TestData {
|
|||
var messages = matcher.group("messages").split(", ");
|
||||
|
||||
assertAll(() -> assertEquals(messages.length, 4),
|
||||
() -> assertTrue(List.of(messages).containsAll(List.of(
|
||||
"registrationEnd Registration end must be in the future.",
|
||||
"maxParticipants Max participants needs to be a number larger than 16.",
|
||||
"name Name can't be null.",
|
||||
"name Name can't be empty."))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void successfullyGetTournaments() throws Exception {
|
||||
// setup
|
||||
var tournament = new Tournament();
|
||||
tournament.setName("TOURNAMENT_WITHOUT_TEAMS");
|
||||
tournament.setMaxParticipants(64l);
|
||||
tournament.setOrganizer(userRepository.findByUsername(TestUserGenerator.TEST_USER));
|
||||
tournament.setRegistrationEnd(LocalDateTime.now().plusDays(1));
|
||||
|
||||
tournamentRepository.saveAndFlush(tournament);
|
||||
|
||||
var mvcResult = this.mockMvc.perform(get(TOURNAMENT_BASE_URI)
|
||||
.header(securityProperties.getAuthHeader(), jwtTokenizer.getAuthToken(TEST_USER, TEST_USER_ROLES))
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
MockHttpServletResponse response = mvcResult.getResponse();
|
||||
|
||||
var dtoRes = objectMapper.readValue(response.getContentAsString(), TournamentListDto[].class);
|
||||
|
||||
assertAll(
|
||||
() -> assertEquals(HttpStatus.OK.value(), response.getStatus()),
|
||||
() -> assertEquals(MediaType.APPLICATION_JSON_VALUE, response.getContentType()),
|
||||
() -> assertNotNull(dtoRes),
|
||||
() -> assertTrue(dtoRes.length > 0, "Expected to find tournaments but found none"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTournamentsWhenNoneExist() throws Exception {
|
||||
tournamentRepository.deleteAll();
|
||||
|
||||
var mvcResult = this.mockMvc.perform(get(TOURNAMENT_BASE_URI)
|
||||
.header(securityProperties.getAuthHeader(), jwtTokenizer.getAuthToken(TEST_USER, TEST_USER_ROLES))
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
MockHttpServletResponse response = mvcResult.getResponse();
|
||||
|
||||
var dtoRes = objectMapper.readValue(response.getContentAsString(), TournamentListDto[].class);
|
||||
|
||||
assertAll(
|
||||
() -> assertEquals(HttpStatus.OK.value(), response.getStatus()),
|
||||
() -> assertEquals(MediaType.APPLICATION_JSON_VALUE, response.getContentType()),
|
||||
() -> assertNotNull(dtoRes),
|
||||
() -> assertEquals(0, dtoRes.length, "Expected no tournaments but found some"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTournamentsUnauthorized() throws Exception {
|
||||
var mvcResult = this.mockMvc.perform(get(TOURNAMENT_BASE_URI)
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
MockHttpServletResponse response = mvcResult.getResponse();
|
||||
|
||||
assertAll(
|
||||
() -> assertEquals(HttpStatus.FORBIDDEN.value(), response.getStatus())
|
||||
);
|
||||
() -> assertTrue(List.of(messages).containsAll(List.of(
|
||||
"registrationEnd Registration end must be in the future.",
|
||||
"maxParticipants Max participants needs to be a number larger than 16.",
|
||||
"name Name can't be null.",
|
||||
"name Name can't be empty."))));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -218,21 +143,21 @@ public class TournamentEndpointTest extends TestUserData implements TestData {
|
|||
teamRepository.flush();
|
||||
|
||||
var mvcResult = this.mockMvc
|
||||
.perform(post(
|
||||
String.format("%s/%d/qualification-matches", TOURNAMENT_BASE_URI, tournament.getId()))
|
||||
.header(securityProperties.getAuthHeader(),
|
||||
jwtTokenizer.getAuthToken(TEST_USER, TEST_USER_ROLES)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
.perform(post(
|
||||
String.format("%s/%d/qualification-matches", TOURNAMENT_BASE_URI, tournament.getId()))
|
||||
.header(securityProperties.getAuthHeader(),
|
||||
jwtTokenizer.getAuthToken(TEST_USER, TEST_USER_ROLES)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
MockHttpServletResponse response = mvcResult.getResponse();
|
||||
assertEquals(HttpStatus.CREATED.value(), response.getStatus());
|
||||
|
||||
var matches = objectMapper.readerFor(TournamentQualificationMatchDto.class)
|
||||
.<TournamentQualificationMatchDto>readValues(response.getContentAsString()).readAll();
|
||||
.<TournamentQualificationMatchDto>readValues(response.getContentAsString()).readAll();
|
||||
|
||||
var qualificationParticipations = matches.stream()
|
||||
.flatMap(m -> qualificationParticipationRepository.findAllByQualificationMatchId(m.id()).stream())
|
||||
.toList();
|
||||
.flatMap(m -> qualificationParticipationRepository.findAllByQualificationMatchId(m.id()).stream())
|
||||
.toList();
|
||||
|
||||
var numberOfMatchesForTeam = new HashMap<Long, Integer>();
|
||||
for (var participation : qualificationParticipations) {
|
||||
|
@ -240,7 +165,7 @@ public class TournamentEndpointTest extends TestUserData implements TestData {
|
|||
numberOfMatchesForTeam.put(participation.getTeam().getId(), 0);
|
||||
}
|
||||
numberOfMatchesForTeam.put(participation.getTeam().getId(),
|
||||
numberOfMatchesForTeam.get(participation.getTeam().getId()) + 1);
|
||||
numberOfMatchesForTeam.get(participation.getTeam().getId()) + 1);
|
||||
}
|
||||
|
||||
for (var matchesCount : numberOfMatchesForTeam.values()) {
|
||||
|
@ -260,18 +185,18 @@ public class TournamentEndpointTest extends TestUserData implements TestData {
|
|||
tournamentRepository.saveAndFlush(tournament);
|
||||
|
||||
var mvcResult = this.mockMvc
|
||||
.perform(post(
|
||||
String.format("%s/%d/qualification-matches", TOURNAMENT_BASE_URI, tournament.getId()))
|
||||
.header(securityProperties.getAuthHeader(),
|
||||
jwtTokenizer.getAuthToken(TEST_USER, TEST_USER_ROLES)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
.perform(post(
|
||||
String.format("%s/%d/qualification-matches", TOURNAMENT_BASE_URI, tournament.getId()))
|
||||
.header(securityProperties.getAuthHeader(),
|
||||
jwtTokenizer.getAuthToken(TEST_USER, TEST_USER_ROLES)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
MockHttpServletResponse response = mvcResult.getResponse();
|
||||
|
||||
assertAll(
|
||||
() -> assertEquals(HttpStatus.BAD_REQUEST.value(), response.getStatus()),
|
||||
() -> assertEquals("A precondition wasn't met: Not enough teams in specified tournament.",
|
||||
response.getContentAsString()));
|
||||
() -> assertEquals(HttpStatus.BAD_REQUEST.value(), response.getStatus()),
|
||||
() -> assertEquals("A precondition wasn't met: Not enough teams in specified tournament.",
|
||||
response.getContentAsString()));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -286,12 +211,12 @@ public class TournamentEndpointTest extends TestUserData implements TestData {
|
|||
tournamentRepository.saveAndFlush(tournament);
|
||||
|
||||
var mvcResult = this.mockMvc
|
||||
.perform(post(
|
||||
String.format("%s/%d/qualification-matches", TOURNAMENT_BASE_URI, tournament.getId()))
|
||||
.header(securityProperties.getAuthHeader(),
|
||||
jwtTokenizer.getAuthToken(TEST_USER + "_", TEST_USER_ROLES)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
.perform(post(
|
||||
String.format("%s/%d/qualification-matches", TOURNAMENT_BASE_URI, tournament.getId()))
|
||||
.header(securityProperties.getAuthHeader(),
|
||||
jwtTokenizer.getAuthToken(TEST_USER + "_", TEST_USER_ROLES)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
MockHttpServletResponse response = mvcResult.getResponse();
|
||||
|
||||
assertEquals(HttpStatus.FORBIDDEN.value(), response.getStatus());
|
||||
|
@ -300,12 +225,12 @@ public class TournamentEndpointTest extends TestUserData implements TestData {
|
|||
@Test
|
||||
public void generateQualificationMatchesForTournamentThatDoesntExist() throws Exception {
|
||||
var mvcResult = this.mockMvc
|
||||
.perform(post(
|
||||
String.format("%s/%d/qualification-matches", TOURNAMENT_BASE_URI, -1))
|
||||
.header(securityProperties.getAuthHeader(),
|
||||
jwtTokenizer.getAuthToken(TEST_USER + "_", TEST_USER_ROLES)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
.perform(post(
|
||||
String.format("%s/%d/qualification-matches", TOURNAMENT_BASE_URI, -1))
|
||||
.header(securityProperties.getAuthHeader(),
|
||||
jwtTokenizer.getAuthToken(TEST_USER + "_", TEST_USER_ROLES)))
|
||||
.andDo(print())
|
||||
.andReturn();
|
||||
MockHttpServletResponse response = mvcResult.getResponse();
|
||||
|
||||
assertEquals(HttpStatus.NOT_FOUND.value(), response.getStatus());
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
context('Get Tournaments', () => {
|
||||
beforeEach(() => {
|
||||
cy.loginTestUser();
|
||||
cy.wait(4000);
|
||||
});
|
||||
|
||||
it('successfully get tournaments', () => {
|
||||
cy.intercept('GET', '/api/v1/tournaments', { fixture: 'tournaments.json' }).as(
|
||||
'getTournaments',
|
||||
);
|
||||
cy.visit('/#/tournaments');
|
||||
cy.wait('@getTournaments');
|
||||
cy.get('[data-cy="tournaments-list"]').should('exist');
|
||||
cy.get('[data-cy="tournaments-list-item"]').should('have.length.at.least', 1);
|
||||
});
|
||||
});
|
|
@ -1,16 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Test Tournament 1",
|
||||
"registrationEnd": "2024-05-20T14:00:00Z",
|
||||
"maxParticipants": 64,
|
||||
"description": "Description for Test Tournament 1"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Test Tournament 2",
|
||||
"registrationEnd": "2024-06-20T14:00:00Z",
|
||||
"maxParticipants": 32,
|
||||
"description": "Description for Test Tournament 2"
|
||||
}
|
||||
]
|
|
@ -1,4 +1,4 @@
|
|||
<mat-card class="tournament-card" data-cy="tournaments-list-item">
|
||||
<mat-card class="tournament-card">
|
||||
<div class="left-color-bar"></div>
|
||||
<div class="card-content">
|
||||
<div class="card-header">
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<h1>Tournaments</h1>
|
||||
@for (tournament of getTournaments(); track tournament.name) {
|
||||
<app-tournament-card [tournament]="tournament" data-cy="tournaments-list"></app-tournament-card>
|
||||
<app-tournament-card [tournament]="tournament"></app-tournament-card>
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue