From 6a0a4c30d7ac483121cfa95d9f8d4b9e268a7bb0 Mon Sep 17 00:00:00 2001 From: Rafael Tanzer Date: Mon, 20 May 2024 17:09:15 +0000 Subject: [PATCH] Revert "Merge branch 'tournament-overview' into 'development'" This reverts merge request !22 --- .../groupphase/backend/basetest/TestData.java | 1 - .../TournamentEndpointTest.java | 193 ++++++------------ e2e/cypress/e2e/tournaments.cy.js | 16 -- e2e/cypress/fixtures/tournaments.json | 16 -- .../tournament-card.component.html | 2 +- .../tournaments/tournaments.component.html | 2 +- 6 files changed, 61 insertions(+), 169 deletions(-) delete mode 100644 e2e/cypress/e2e/tournaments.cy.js delete mode 100644 e2e/cypress/fixtures/tournaments.json diff --git a/backend/src/test/java/at/ac/tuwien/sepr/groupphase/backend/basetest/TestData.java b/backend/src/test/java/at/ac/tuwien/sepr/groupphase/backend/basetest/TestData.java index 382dfd8..dc76c7f 100644 --- a/backend/src/test/java/at/ac/tuwien/sepr/groupphase/backend/basetest/TestData.java +++ b/backend/src/test/java/at/ac/tuwien/sepr/groupphase/backend/basetest/TestData.java @@ -25,7 +25,6 @@ public interface TestData { } }; String DEFAULT_USER = "user"; - String DEFAULT_USER_PASSWORD = "password"; List USER_ROLES = new ArrayList<>() { { add("ROLE_USER"); diff --git a/backend/src/test/java/at/ac/tuwien/sepr/groupphase/backend/integrationtest/TournamentEndpointTest.java b/backend/src/test/java/at/ac/tuwien/sepr/groupphase/backend/integrationtest/TournamentEndpointTest.java index 6a4c89d..f8f69ad 100644 --- a/backend/src/test/java/at/ac/tuwien/sepr/groupphase/backend/integrationtest/TournamentEndpointTest.java +++ b/backend/src/test/java/at/ac/tuwien/sepr/groupphase/backend/integrationtest/TournamentEndpointTest.java @@ -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) - .readValues(response.getContentAsString()).readAll(); + .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(); 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()); diff --git a/e2e/cypress/e2e/tournaments.cy.js b/e2e/cypress/e2e/tournaments.cy.js deleted file mode 100644 index 8e6e994..0000000 --- a/e2e/cypress/e2e/tournaments.cy.js +++ /dev/null @@ -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); - }); -}); diff --git a/e2e/cypress/fixtures/tournaments.json b/e2e/cypress/fixtures/tournaments.json deleted file mode 100644 index f3c5b3b..0000000 --- a/e2e/cypress/fixtures/tournaments.json +++ /dev/null @@ -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" - } -] diff --git a/frontend/src/app/components/tournament-card/tournament-card.component.html b/frontend/src/app/components/tournament-card/tournament-card.component.html index af7b512..e44affb 100644 --- a/frontend/src/app/components/tournament-card/tournament-card.component.html +++ b/frontend/src/app/components/tournament-card/tournament-card.component.html @@ -1,4 +1,4 @@ - +
diff --git a/frontend/src/app/components/tournaments/tournaments.component.html b/frontend/src/app/components/tournaments/tournaments.component.html index a65d486..62128de 100644 --- a/frontend/src/app/components/tournaments/tournaments.component.html +++ b/frontend/src/app/components/tournaments/tournaments.component.html @@ -1,4 +1,4 @@

Tournaments

@for (tournament of getTournaments(); track tournament.name) { - + }