From 8d38787114d2f16c6fb3567c3650d0968df33d28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andrej=20=C5=A0imurka?= <492781@mail.muni.cz>
Date: Mon, 17 Apr 2023 00:12:43 +0200
Subject: [PATCH] Race and season jpa repository tests

---
 race/pom.xml                                  |  5 ++
 .../pa165/race/rest/RaceRepositoryTest.java   | 49 +++++++++++++++++++
 .../pa165/race/rest/SeasonRepositoryTest.java | 40 +++++++++++++++
 3 files changed, 94 insertions(+)
 create mode 100644 race/src/test/java/cz/muni/pa165/race/rest/RaceRepositoryTest.java
 create mode 100644 race/src/test/java/cz/muni/pa165/race/rest/SeasonRepositoryTest.java

diff --git a/race/pom.xml b/race/pom.xml
index 266c650e..5a7b3ced 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/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 00000000..b6da03fc
--- /dev/null
+++ b/race/src/test/java/cz/muni/pa165/race/rest/RaceRepositoryTest.java
@@ -0,0 +1,49 @@
+package cz.muni.pa165.race.rest;
+
+import cz.muni.pa165.race.data.model.Race;
+import cz.muni.pa165.race.data.repository.RaceRepository;
+import org.junit.jupiter.api.Assertions;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+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;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@DataJpaTest
+public 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/SeasonRepositoryTest.java b/race/src/test/java/cz/muni/pa165/race/rest/SeasonRepositoryTest.java
new file mode 100644
index 00000000..0bd3acc2
--- /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 cz.muni.pa165.race.data.model.Season;
+import cz.muni.pa165.race.data.repository.SeasonRepository;
+import org.junit.jupiter.api.Assertions;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+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
+public 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()),
+        () -> assertEquals(found.getRaces(), season.getRaces())
+    );
+  }
+}
-- 
GitLab