Add the User model and its repository.
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
a872e66d63
commit
f7d81a2fb8
@ -0,0 +1,39 @@
|
|||||||
|
package space.kklochko.spring_rest_example.db.repositories;
|
||||||
|
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import jakarta.persistence.NoResultException;
|
||||||
|
import jakarta.persistence.TypedQuery;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import space.kklochko.spring_rest_example.db.repositories.blocks.TransactionalInsert;
|
||||||
|
import space.kklochko.spring_rest_example.db.repositories.blocks.TransactionalRemove;
|
||||||
|
import space.kklochko.spring_rest_example.db.repositories.blocks.TransactionalUpdate;
|
||||||
|
import space.kklochko.spring_rest_example.models.Token;
|
||||||
|
import space.kklochko.spring_rest_example.models.User;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class UserRepository {
|
||||||
|
public User read(String username) {
|
||||||
|
Optional<User> user = readAll()
|
||||||
|
.stream()
|
||||||
|
.filter(u -> u.getUsername().equals(username))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
return user.orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<User> readAll() {
|
||||||
|
List<User> users = new ArrayList<>();
|
||||||
|
|
||||||
|
// password same as username
|
||||||
|
users.add(new User("admin", "ADMIN", "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918"));
|
||||||
|
users.add(new User("user", "USER", "04f8996da763b7a969b1028ee3007569eaf3a635486ddab211d512c85b9df8fb"));
|
||||||
|
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
package space.kklochko.spring_rest_example.models;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class User {
|
||||||
|
private String username;
|
||||||
|
private String role;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
public User() {
|
||||||
|
setUsername("");
|
||||||
|
setRole("");
|
||||||
|
setPassword("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,59 @@
|
|||||||
|
package space.kklochko.spring_rest_example.db.repositories
|
||||||
|
|
||||||
|
import groovy.sql.Sql
|
||||||
|
import jakarta.persistence.EntityManager
|
||||||
|
import space.kklochko.spring_rest_example.config.factories.LoadDataBaseConfigFromEnvFile
|
||||||
|
import space.kklochko.spring_rest_example.config.models.DataBaseConfig
|
||||||
|
import space.kklochko.spring_rest_example.db.factories.DataBaseConnection
|
||||||
|
import space.kklochko.spring_rest_example.db.factories.EntityManagerConnection
|
||||||
|
import space.kklochko.spring_rest_example.models.Token
|
||||||
|
import space.kklochko.spring_rest_example.models.User
|
||||||
|
import spock.lang.Shared
|
||||||
|
import spock.lang.Specification
|
||||||
|
import spock.lang.Stepwise
|
||||||
|
import spock.lang.Subject
|
||||||
|
|
||||||
|
@Stepwise
|
||||||
|
class UserRepositorySpec extends Specification {
|
||||||
|
def "Read one user"() {
|
||||||
|
given: "I have a repo"
|
||||||
|
@Subject
|
||||||
|
UserRepository repo = new UserRepository()
|
||||||
|
|
||||||
|
when: "reading the entry"
|
||||||
|
def result = repo.read(username)
|
||||||
|
|
||||||
|
then: "checking that the reading was successful"
|
||||||
|
result
|
||||||
|
|
||||||
|
and: "the user has a role"
|
||||||
|
with(result) {
|
||||||
|
getRole() == expectedRole
|
||||||
|
getPassword() == expectedPassword
|
||||||
|
}
|
||||||
|
|
||||||
|
where: "the expected data"
|
||||||
|
username || expectedRole | expectedPassword
|
||||||
|
"admin" || "ADMIN" | "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918"
|
||||||
|
"user" || "USER" | "04f8996da763b7a969b1028ee3007569eaf3a635486ddab211d512c85b9df8fb"
|
||||||
|
}
|
||||||
|
|
||||||
|
def "Read one user and check if exists"() {
|
||||||
|
given: "I have a repo"
|
||||||
|
@Subject
|
||||||
|
UserRepository repo = new UserRepository()
|
||||||
|
|
||||||
|
when: "reading the entry"
|
||||||
|
def result = repo.read(username)
|
||||||
|
|
||||||
|
then: "checking that the reading was successful"
|
||||||
|
isNull == (result == null)
|
||||||
|
|
||||||
|
where: "the expected data"
|
||||||
|
username || isNull
|
||||||
|
"admin" || false
|
||||||
|
"user" || false
|
||||||
|
"user2" || true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in new issue