diff --git a/backend/.idea/workspace.xml b/backend/.idea/workspace.xml
index ec8b0d2..0590447 100644
--- a/backend/.idea/workspace.xml
+++ b/backend/.idea/workspace.xml
@@ -4,11 +4,11 @@
-
+
+
-
-
-
+
+
@@ -87,39 +87,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -168,6 +136,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -177,11 +176,11 @@
+
+
-
-
@@ -218,7 +217,7 @@
-
+
@@ -428,14 +427,21 @@
1699474949938
-
+
+
+ 1699641346158
+
+
+
+ 1699641346158
+
+
-
@@ -460,7 +466,8 @@
-
+
+
@@ -491,14 +498,9 @@
- file://$PROJECT_DIR$/src/test/java/core/tasks/TaskRepositoryTest.java
- 152
-
-
-
- file://$PROJECT_DIR$/src/test/java/core/tasks/TaskRepositoryTest.java
- 151
-
+ file://$PROJECT_DIR$/src/test/java/core/taskgroups/TaskgroupServiceTest.java
+ 50
+
diff --git a/backend/pom.xml b/backend/pom.xml
index 8fee0eb..18787b6 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -57,9 +57,14 @@
com.h2database
h2
- 1.3.176
+ 2.2.224
test
+
+ junit
+ junit
+ test
+
diff --git a/backend/src/test/java/core/taskgroups/TaskgroupServiceTest.java b/backend/src/test/java/core/taskgroups/TaskgroupServiceTest.java
new file mode 100644
index 0000000..8494928
--- /dev/null
+++ b/backend/src/test/java/core/taskgroups/TaskgroupServiceTest.java
@@ -0,0 +1,68 @@
+package core.taskgroups;
+
+import core.entities.User;
+import core.entities.timemanager.Taskgroup;
+import core.repositories.UserRepository;
+import core.repositories.timemanager.TaskgroupRepository;
+import core.services.PermissionResult;
+import core.services.ServiceExitCode;
+import core.services.TaskgroupService;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
+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.boot.test.context.SpringBootTest;
+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.Optional;
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import static org.junit.jupiter.api.Assertions.*;
+
+@SpringBootTest
+public class TaskgroupServiceTest {
+
+ @Autowired
+ private TaskgroupRepository taskgroupRepository;
+ @Autowired
+ private TaskgroupService taskgroupService;
+
+ private static final String username = "Testuser1";
+ @Test
+ @SqlGroup({
+ @Sql("classpath:taskgroupRepositoryTestEntries.sql"),
+ @Sql("classpath:taskRepositoryEntries.sql")
+ })
+ void getTaskgroupByIDAndUsername() {
+ //Situation 1: correct taskgroup and username
+ assertFalse(taskgroupRepository.findById(1L).isEmpty());
+
+ PermissionResult permissionResult = taskgroupService.getTaskgroupByIDAndUsername(1L, username);
+ assertThat(permissionResult).isNotNull();
+ assertTrue(permissionResult.isHasPermissions());
+ assertEquals(ServiceExitCode.OK, permissionResult.getExitCode());
+ assertEquals(taskgroupRepository.findById(1L).get(), permissionResult.getResult());
+
+ //Situation 2: invalid taskgroup
+ PermissionResult invalid_group = taskgroupService.getTaskgroupByIDAndUsername(-1L, username);
+ assertThat(invalid_group).isNotNull();
+ assertEquals(ServiceExitCode.MISSING_ENTITY, invalid_group.getExitCode());
+ assertFalse(invalid_group.isHasPermissions());
+
+ //Situation 3: invalid user
+ PermissionResult invalid_user = taskgroupService.getTaskgroupByIDAndUsername(1L, "Rotzbakke");
+ assertThat(invalid_user).isNotNull();
+ assertEquals(ServiceExitCode.OK, invalid_user.getExitCode());
+ assertFalse(invalid_user.isHasPermissions());
+ }
+
+}
diff --git a/backend/src/test/resources/application.properties b/backend/src/test/resources/application.properties
index 04ae4dc..512dbe3 100644
--- a/backend/src/test/resources/application.properties
+++ b/backend/src/test/resources/application.properties
@@ -1,6 +1,12 @@
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:file:~/testdb;MODE=LEGACY
+spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.h2.console.path=/console
spring.flyway.enabled=false
-spring.liquibase.enabled=false
\ No newline at end of file
+spring.liquibase.enabled=false
+
+demo.webapp.jwtSecret=demoWebappSecretKey
+demo.webapp.jwtExpirationMS=86400000
+spring.sql.init.mode=always
+spring.jpa.hibernate.ddl-auto=create-drop
\ No newline at end of file