Add the User model and its repository.
continuous-integration/drone/push Build is passing Details

main
KKlochko 1 year ago
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…
Cancel
Save