diff --git a/backend/.idea/workspace.xml b/backend/.idea/workspace.xml
index f7c95af..f0e683e 100644
--- a/backend/.idea/workspace.xml
+++ b/backend/.idea/workspace.xml
@@ -5,12 +5,13 @@
+
+
+
-
-
-
-
-
+
+
+
@@ -46,35 +47,52 @@
- {
- "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": "issue-11-angular-update",
- "last_directory_selection": "D:/Programmierprojekte/TimeManager/backend/src/main/java/core/api/models/timemanager",
- "last_opened_file_path": "D:/Programmierprojekte/Dicewars/client",
- "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"
+
-
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -82,6 +100,11 @@
+
+
+
+
+
@@ -111,6 +134,7 @@
+
@@ -325,6 +349,11 @@
202
+
+ file://$PROJECT_DIR$/src/main/java/core/entities/User.java
+ 56
+
+
diff --git a/backend/pom.xml b/backend/pom.xml
index 2073f15..8fee0eb 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -54,6 +54,12 @@
jjwt
0.9.1
+
+ com.h2database
+ h2
+ 1.3.176
+ test
+
diff --git a/backend/src/main/java/core/DemoApplication.java b/backend/src/main/java/core/DemoApplication.java
index 4ace39f..ab593cb 100644
--- a/backend/src/main/java/core/DemoApplication.java
+++ b/backend/src/main/java/core/DemoApplication.java
@@ -18,7 +18,7 @@ public class DemoApplication{
}
- @Bean
+ /*@Bean
public CommandLineRunner init(RoleRepository roleRepository, UserRepository userRepository, PropertyService propertyService) {
return args -> {
for (UserRole userRole : UserRole.values()) {
@@ -32,5 +32,5 @@ public class DemoApplication{
FirstUserObserver observer = new FirstUserObserver(userRepository);
observer.start();
};
- }
+ }*/
}
diff --git a/backend/src/main/java/core/entities/User.java b/backend/src/main/java/core/entities/User.java
index 636d29e..1f6c1f2 100644
--- a/backend/src/main/java/core/entities/User.java
+++ b/backend/src/main/java/core/entities/User.java
@@ -8,6 +8,7 @@ import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.HashSet;
+import java.util.Objects;
import java.util.Set;
@Entity
@@ -50,6 +51,13 @@ public class User {
this.password = password;
}
+ public User(Long id, String username, String email, String password) {
+ this.id = id;
+ this.username = username;
+ this.email = email;
+ this.password = password;
+ }
+
public Long getId() {
return id;
}
@@ -89,4 +97,17 @@ public class User {
public void setRoles(Set roles) {
this.roles = roles;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ User user = (User) o;
+ return Objects.equals(id, user.id) && Objects.equals(username, user.username) && Objects.equals(email, user.email) && Objects.equals(password, user.password) && Objects.equals(roles, user.roles);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, username, email, password, roles);
+ }
}
diff --git a/backend/src/test/java/core/users/UserRepositoryTests.java b/backend/src/test/java/core/users/UserRepositoryTests.java
new file mode 100644
index 0000000..66e9ca4
--- /dev/null
+++ b/backend/src/test/java/core/users/UserRepositoryTests.java
@@ -0,0 +1,37 @@
+package core.users;
+
+import core.entities.User;
+import core.repositories.UserRepository;
+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.annotation.DirtiesContext;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+import java.util.Optional;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+@DataJpaTest
+@DirtiesContext
+@ExtendWith(SpringExtension.class)
+public class UserRepositoryTests {
+
+ @Autowired
+ private UserRepository userRepository;
+
+ @Autowired
+ private TestEntityManager testEntityManager;
+
+ @Test
+ void test_findByUsername() {
+ assertTrue(userRepository.findByUsername("FawKes100").isEmpty());
+ userRepository.save(new User(1L,"FawKes100", "mail@fawkes100.de", "123456"));
+
+ Optional findResult = userRepository.findByUsername("FawKes100");
+ assertTrue(findResult.isPresent());
+ assertEquals(new User(1L, "FawKes100", "mail@fawkes100.de", "123456"),findResult.get());
+ }
+}
diff --git a/backend/src/test/resources/application.properties b/backend/src/test/resources/application.properties
new file mode 100644
index 0000000..fc90813
--- /dev/null
+++ b/backend/src/test/resources/application.properties
@@ -0,0 +1,7 @@
+spring.datasource.driverClassName=org.h2.Driver
+spring.datasource.url=jdbc:h2:file:~/testdb;MODE=LEGACY
+spring.h2.console.enabled=true
+spring.h2.console.path=/console
+spring.flyway.enabled=false
+spring.liquibase.enabled=false
+hibernate.dialect=org.hibernate.dialect.H2Dialect
\ No newline at end of file