diff --git a/race/pom.xml b/race/pom.xml index 266c650e014f8a1ddca70c7dbf43f2ba0338defa..5a7b3ced4be87808499f280d92c314a5feda81fa 100644 --- a/race/pom.xml +++ b/race/pom.xml @@ -48,6 +48,11 @@ <artifactId>spring-boot-starter-data-jpa</artifactId> <version>3.0.4</version> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> </dependencies> <properties> <maven.compiler.source>17</maven.compiler.source> diff --git a/race/src/main/java/cz/muni/pa165/race/App.java b/race/src/main/java/cz/muni/pa165/race/App.java index 874755e90d6b2d58231719d80c9f79ee6e25937f..07c69477470e3aac0ae271e17afa0eec779ffa11 100644 --- a/race/src/main/java/cz/muni/pa165/race/App.java +++ b/race/src/main/java/cz/muni/pa165/race/App.java @@ -16,7 +16,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; * Main app. */ @SpringBootApplication -@EnableJpaRepositories(basePackages = "cz.muni.pa165.race.data.repository") @EnableTransactionManagement @EntityScan(basePackageClasses = {Race.class, Season.class}) @Import({RestExceptionHandler.class, ClientConfig.class}) diff --git a/race/src/test/java/cz/muni/pa165/race/rest/RaceRepositoryTest.java b/race/src/test/java/cz/muni/pa165/race/rest/RaceRepositoryTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ff2254da1368fff9261bf2e3345d2520d02dce8a --- /dev/null +++ b/race/src/test/java/cz/muni/pa165/race/rest/RaceRepositoryTest.java @@ -0,0 +1,50 @@ +package cz.muni.pa165.race.rest; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import cz.muni.pa165.race.data.model.Race; +import cz.muni.pa165.race.data.repository.RaceRepository; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; + +@DataJpaTest +class RaceRepositoryTest { + + @Autowired + private TestEntityManager entityManager; + + @Autowired + private RaceRepository raceRepository; + + @Test + public void saveTest() { + Race race = RaceTestUtil.getDaoRace(); + Race saved = raceRepository.save(race); + Assertions.assertEquals(race, saved); + Assertions.assertEquals(entityManager.find(Race.class, 1L).getId(), 1); + } + + @Test + public void getSavedEntityTest() { + Race race = RaceTestUtil.getDaoRace(); + Race saved = raceRepository.save(race); + var savedId = saved.getId(); + Race found = raceRepository.findById(savedId).get(); + Assertions.assertAll( + () -> assertEquals(found.getRaceInfo().getName(), race.getRaceInfo().getName()), + () -> assertEquals(found.getRaceInfo().getLocation(), race.getRaceInfo().getLocation()), + () -> assertEquals(found.getRaceInfo().getPrizePool(), race.getRaceInfo().getPrizePool()), + () -> assertEquals(found.getDriver1().getDriverId(), race.getDriver1().getDriverId()), + () -> assertEquals(found.getDriver1().getCarId(), race.getDriver1().getCarId()), + () -> assertEquals(found.getDriver1().getFinalPosition(), + race.getDriver1().getFinalPosition()), + () -> assertEquals(found.getDriver2().getDriverId(), race.getDriver2().getDriverId()), + () -> assertEquals(found.getDriver2().getCarId(), race.getDriver2().getCarId()), + () -> assertEquals(found.getDriver2().getFinalPosition(), + race.getDriver2().getFinalPosition())); + } + +} diff --git a/race/src/test/java/cz/muni/pa165/race/rest/RaceTestUtil.java b/race/src/test/java/cz/muni/pa165/race/rest/RaceTestUtil.java index 164179e3da60e8707866bd623ab3b462a4f1e49d..2a397fe0bee4b9e5b48c4c8a3d1eef82143f1bbd 100644 --- a/race/src/test/java/cz/muni/pa165/race/rest/RaceTestUtil.java +++ b/race/src/test/java/cz/muni/pa165/race/rest/RaceTestUtil.java @@ -3,6 +3,8 @@ package cz.muni.pa165.race.rest; import cz.muni.pa165.common_library.dtos.CarResponseDto; import cz.muni.pa165.common_library.dtos.DriverDto; import cz.muni.pa165.common_library.dtos.Location; +import cz.muni.pa165.common_library.dtos.RaceDriverCarDto; +import cz.muni.pa165.common_library.dtos.RaceDto; import cz.muni.pa165.race.data.model.Race; /** @@ -37,6 +39,31 @@ public class RaceTestUtil { .build(); } + /** + * Get dao race. + * + * @return dao race. + */ + public static RaceDto getDaoRaceDto() { + return RaceDto.builder() + .id(1L) + .raceInfo(RaceDto.RaceInfo.builder() + .location(Location.MONACO) + .name("Monaco Grand Prix 2023") + .prizePool(30000000L).build()) + .driverOne(RaceDriverCarDto.builder() + .driverId(1L) + .carId(1L) + .position(1) + .build()) + .driverTwo(RaceDriverCarDto.builder() + .driverId(2L) + .carId(2L) + .position(2) + .build()) + .build(); + } + public static CarResponseDto getCarDao() { return new CarResponseDto(1L, null, null, 1L); } @@ -44,4 +71,4 @@ public class RaceTestUtil { public static DriverDto getDriverDao() { return new DriverDto(1L, "Name", "Surname"); } -} +} \ No newline at end of file diff --git a/race/src/test/java/cz/muni/pa165/race/rest/SeasonControllerTest.java b/race/src/test/java/cz/muni/pa165/race/rest/SeasonControllerTest.java index bc1ce050604d6f00faae2409ba25fae8be4d9b0b..b03b6430f92da70989b8db7be3c70413a6d39b53 100644 --- a/race/src/test/java/cz/muni/pa165/race/rest/SeasonControllerTest.java +++ b/race/src/test/java/cz/muni/pa165/race/rest/SeasonControllerTest.java @@ -31,7 +31,7 @@ import org.springframework.test.web.servlet.MockMvc; */ @SpringBootTest @AutoConfigureMockMvc -public class SeasonControllerTest { +class SeasonControllerTest { private String bodyContent = """ { "id": 1, @@ -121,4 +121,4 @@ public class SeasonControllerTest { .andExpect(status().isOk()) .andExpect(content().string(expectedMessageAddRace)); } -} +} \ No newline at end of file diff --git a/race/src/test/java/cz/muni/pa165/race/rest/SeasonRepositoryTest.java b/race/src/test/java/cz/muni/pa165/race/rest/SeasonRepositoryTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e8c41ff324f63d4a18bdc114093f94d0b7163136 --- /dev/null +++ b/race/src/test/java/cz/muni/pa165/race/rest/SeasonRepositoryTest.java @@ -0,0 +1,40 @@ +package cz.muni.pa165.race.rest; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import cz.muni.pa165.race.data.model.Season; +import cz.muni.pa165.race.data.repository.SeasonRepository; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; + +@DataJpaTest +class SeasonRepositoryTest { + + @Autowired + private TestEntityManager entityManager; + + @Autowired + private SeasonRepository seasonRepository; + + @Test + public void saveTest() { + Season season = SeasonTestUtil.getDaoSeason(); + Season saved = seasonRepository.save(season); + Assertions.assertEquals(season, saved); + Assertions.assertEquals(entityManager.find(Season.class, 1L).getId(), 1); + } + + @Test + public void getSavedEntityTest() { + Season season = SeasonTestUtil.getDaoSeason(); + Season saved = seasonRepository.save(season); + var savedId = saved.getId(); + Season found = seasonRepository.findById(savedId).get(); + Assertions.assertAll( + () -> assertEquals(found.getSeasonYear(), season.getSeasonYear()) + ); + } +} diff --git a/race/src/test/java/cz/muni/pa165/race/rest/SeasonTestUtil.java b/race/src/test/java/cz/muni/pa165/race/rest/SeasonTestUtil.java index 7c73931528a779d6004cb7db18fed7b641150cee..a9ed71b92612d6e65a8a04f099ff873681a5ff2d 100644 --- a/race/src/test/java/cz/muni/pa165/race/rest/SeasonTestUtil.java +++ b/race/src/test/java/cz/muni/pa165/race/rest/SeasonTestUtil.java @@ -1,5 +1,6 @@ package cz.muni.pa165.race.rest; +import cz.muni.pa165.common_library.dtos.SeasonDto; import cz.muni.pa165.race.data.model.Season; import java.util.ArrayList; @@ -19,4 +20,17 @@ public class SeasonTestUtil { .races(new ArrayList<>()) .build(); } + + /** + * get dao season. + * + * @return dao season. + */ + public static SeasonDto getDaoSeasonDto() { + return SeasonDto.builder() + .id(1L) + .races(new ArrayList<>()) + .year(2023) + .build(); + } }