Skip to content
Snippets Groups Projects
Commit 94a4bbff authored by Diana Gulčíková's avatar Diana Gulčíková
Browse files

Merge branch '21_race_jpa_tests' into 'milestone_2'

21 race jpa tests

See merge request !52
parents 63603a72 1661c671
No related branches found
No related tags found
4 merge requests!60Docker,!54Added RaceController tests,!5321 season component tests,!5221 race jpa tests
Pipeline #
......@@ -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>
......
......@@ -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})
......
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()));
}
}
......@@ -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
......@@ -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
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())
);
}
}
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();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment