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 @@ + + + - - - - - + + + - { - "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" + - +}]]> + + + + + + + + + + + + + @@ -111,6 +134,7 @@ + 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