diff --git a/backend/.idea/workspace.xml b/backend/.idea/workspace.xml
index f391dca..9f87681 100644
--- a/backend/.idea/workspace.xml
+++ b/backend/.idea/workspace.xml
@@ -4,8 +4,10 @@
-
-
+
+
+
+
@@ -41,36 +43,36 @@
- {
+ "keyToString": {
+ "RequestMappingsPanelOrder0": "0",
+ "RequestMappingsPanelOrder1": "1",
+ "RequestMappingsPanelWidth0": "75",
+ "RequestMappingsPanelWidth1": "75",
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "WebServerToolWindowFactoryState": "false",
+ "extract.method.default.visibility": "private",
+ "git-widget-placeholder": "tests",
+ "ignore.virus.scanning.warn.message": "true",
+ "last_directory_selection": "D:/Programmierprojekte/TimeManager/backend/src/main/java/core/api/models/timemanager",
+ "last_opened_file_path": "/media/sebastian/Data2/Programmierprojekte/Storycreator",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "settings.editor.selected.configurable": "swagger",
+ "ts.external.directory.path": "/snap/intellij-idea-ultimate/459/plugins/javascript-impl/jsLanguageServicesImpl/external",
+ "vue.rearranger.settings.migration": "true"
},
- "keyToStringList": {
- "DatabaseDriversLRU": [
- "h2",
- "mariadb"
+ "keyToStringList": {
+ "DatabaseDriversLRU": [
+ "h2",
+ "mariadb"
]
}
-}]]>
+}
@@ -84,7 +86,23 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -132,22 +150,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -173,11 +175,11 @@
+
-
@@ -212,7 +214,8 @@
-
+
+
@@ -406,14 +409,21 @@
1699470020407
-
+
+
+ 1699471078386
+
+
+
+ 1699471078386
+
+
-
@@ -438,7 +448,8 @@
-
+
+
diff --git a/backend/src/test/java/core/tasks/TaskRepositoryTest.java b/backend/src/test/java/core/tasks/TaskRepositoryTest.java
new file mode 100644
index 0000000..fde7b8c
--- /dev/null
+++ b/backend/src/test/java/core/tasks/TaskRepositoryTest.java
@@ -0,0 +1,68 @@
+package core.tasks;
+
+import core.entities.User;
+import core.entities.timemanager.Task;
+import core.entities.timemanager.Taskgroup;
+import core.repositories.timemanager.TaskRepository;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+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.jdbc.Sql;
+import org.springframework.test.context.jdbc.SqlGroup;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+
+@ExtendWith(SpringExtension.class)
+@DataJpaTest
+public class TaskRepositoryTest {
+
+ @Autowired private TaskRepository taskRepository;
+ @Autowired private TestEntityManager testEntityManager;
+
+ @Test
+ @SqlGroup({
+ @Sql("classpath:taskgroupRepositoryTestEntries.sql"),
+ @Sql("classpath:taskRepositoryEntries.sql")
+ })
+ void findAllByUser() {
+ User testUser1 = testEntityManager.find(User.class, 1L);
+ User testUser2 = testEntityManager.find(User.class, 2L);
+
+ //Situation 1: Non existent user
+ assertEquals(0, taskRepository.findAllByUser("Rotzbakke", true).size());
+ assertEquals(0, taskRepository.findAllByUser("Rotzbakke", false).size());
+
+ //Situation 2: User with no tasks at all
+ assertEquals(0, taskRepository.findAllByUser(testUser2.getUsername(), false).size());
+ assertEquals(0, taskRepository.findAllByUser(testUser2.getUsername(), true).size());
+
+ //Situation 3: User with finished and unfinished tasks
+ List tasks_user1_false = taskRepository.findAllByUser(testUser1.getUsername(), false);
+ List tasks_user1_true = taskRepository.findAllByUser(testUser1.getUsername(), true);
+ assertEquals(7, tasks_user1_true.size());
+ assertEquals(7, tasks_user1_false.size());
+
+ assertTrue(tasks_user1_false.contains(testEntityManager.find(Task.class, 1L)));
+ assertTrue(tasks_user1_false.contains(testEntityManager.find(Task.class, 3L)));
+ assertTrue(tasks_user1_false.contains(testEntityManager.find(Task.class, 5L)));
+ assertTrue(tasks_user1_false.contains(testEntityManager.find(Task.class, 7L)));
+ assertTrue(tasks_user1_false.contains(testEntityManager.find(Task.class, 9L)));
+ assertTrue(tasks_user1_false.contains(testEntityManager.find(Task.class, 11L)));
+ assertTrue(tasks_user1_false.contains(testEntityManager.find(Task.class, 12L)));
+
+ assertTrue(tasks_user1_true.contains(testEntityManager.find(Task.class, 2L)));
+ assertTrue(tasks_user1_true.contains(testEntityManager.find(Task.class, 4L)));
+ assertTrue(tasks_user1_true.contains(testEntityManager.find(Task.class, 6L)));
+ assertTrue(tasks_user1_true.contains(testEntityManager.find(Task.class, 8L)));
+ assertTrue(tasks_user1_true.contains(testEntityManager.find(Task.class, 10L)));
+ assertTrue(tasks_user1_true.contains(testEntityManager.find(Task.class, 13L)));
+ assertTrue(tasks_user1_true.contains(testEntityManager.find(Task.class, 14L)));
+ }
+}
diff --git a/backend/src/test/resources/taskRepositoryEntries.sql b/backend/src/test/resources/taskRepositoryEntries.sql
new file mode 100644
index 0000000..697318c
--- /dev/null
+++ b/backend/src/test/resources/taskRepositoryEntries.sql
@@ -0,0 +1,18 @@
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (1, NULL, 0, NULL, 'Task 1', 2, false, 0);
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (2, NULL, 0, NULL, 'Task 2', 2, true, 0);
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (3, '2022-03-20', 0, NULL, 'Task 3', 2, false, 0);
+
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (4, '2022-03-20', 0, NULL, 'Task 4', 2, true, 0);
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (5, '2022-03-20', 0, '2021-03-20', 'Task 5', 2, false, 0);
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (6, '2022-03-20', 0, '2021-03-20', 'Task 6', 2, true, 0);
+
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (7, NULL, 0, '2043-03-20', 'Task 6', 2, false, 0);
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (8, NULL, 0, '2043-03-20', 'Task 6', 2, true, 0);
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (9, '2044-03-20', 0, '2043-03-20', 'Task 6', 2, false, 0);
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (10, '2044-03-20', 0, '2043-03-20', 'Task 6', 2, true, 0);
+
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (11, NULL, 0, '2022-03-20', 'Task 6', 2, false, 0);
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (12, '2044-03-20', 0, '2022-03-20', 'Task 6', 2, false, 0);
+
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (13, NULL, 0, '2022-03-20', 'Task 6', 2, true, 0);
+INSERT INTO tasks (taskid, deadline, eta, start_date, task_name, taskgroup_id, finished, work_time) VALUES (14, '2044-03-20', 0, '2022-03-20', 'Task 6', 2, true, 0);