From 1aca4660326418b2c18f90333e0ed214da1ff022 Mon Sep 17 00:00:00 2001
From: Dominika Zemanovicova <xzemanov@fi.muni.cz>
Date: Sun, 16 Apr 2023 06:42:53 +0200
Subject: [PATCH] Introduce UserRepositoryTest

---
 .../user/UserRepositoryTest.java              | 57 +++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 application/module-language-school/src/test/java/org/fuseri/modulelanguageschool/user/UserRepositoryTest.java

diff --git a/application/module-language-school/src/test/java/org/fuseri/modulelanguageschool/user/UserRepositoryTest.java b/application/module-language-school/src/test/java/org/fuseri/modulelanguageschool/user/UserRepositoryTest.java
new file mode 100644
index 00000000..3538aff2
--- /dev/null
+++ b/application/module-language-school/src/test/java/org/fuseri/modulelanguageschool/user/UserRepositoryTest.java
@@ -0,0 +1,57 @@
+package org.fuseri.modulelanguageschool.user;
+
+import org.fuseri.modulelanguageschool.course.Course;
+import org.fuseri.modulelanguageschool.course.Language;
+import org.fuseri.modulelanguageschool.course.ProficiencyLevel;
+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;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+@DataJpaTest
+class UserRepositoryTest {
+
+    @Autowired
+    private UserRepository userRepository;
+
+    @Autowired
+    private TestEntityManager entityManager;
+
+    private final Course course = new Course("AJ1", 10, Language.ENGLISH, ProficiencyLevel.B2);
+    private final Set<Course> COURSES = Set.of(course);
+    private final User user = new User(
+            "xnovak", UserType.STUDENT,
+            "1234fak", "xnovak@emample.com", "Peter", "Novak",
+            new Address(), COURSES, Map.of());
+
+    @Test
+    void getEnrolled() {
+        entityManager.persist(course);
+        entityManager.persist(user);
+        entityManager.flush();
+
+        List<Course> foundCourses = userRepository.getEnrolled(user.getId());
+        assertNotNull(foundCourses);
+        assertEquals(new ArrayList<>(COURSES), foundCourses);
+    }
+
+    @Test
+    void getFinished() {
+        course.setFinished(true);
+        entityManager.persist(course);
+        entityManager.persist(user);
+        entityManager.flush();
+
+        List<Course> foundCourses = userRepository.getFinished(user.getId());
+        assertNotNull(foundCourses);
+        assertEquals(new ArrayList<>(COURSES), foundCourses);
+    }
+}
\ No newline at end of file
-- 
GitLab