Add the factory for Token model.
continuous-integration/drone/push Build is passing Details

main
KKlochko 1 year ago
parent e99a0bc771
commit 91c95de67e

@ -0,0 +1,33 @@
package space.kklochko.spring_rest_example.models.factories;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Autowired;
import space.kklochko.spring_rest_example.models.Token;
import space.kklochko.spring_rest_example.security.tokens.StringTokenFactory;
@AllArgsConstructor
@Getter
public class TokenFactory {
public StringTokenFactory factory;
public TokenFactory() {
setFactory(null);
}
public Token create(String username, String role) {
Token token = new Token();
token.setUsername(username);
token.setRole(role);
token.setToken(getFactory().create(username));
return token;
}
@Autowired
public void setFactory(StringTokenFactory factory) {
this.factory = factory;
}
}

@ -0,0 +1,32 @@
package space.kklochko.spring_rest_example.models.factories
import space.kklochko.spring_rest_example.security.tokens.StringTokenFactory
import spock.lang.Specification
import spock.lang.Subject
class TokenFactorySpec extends Specification {
def "Create a token for a user"() {
given: "I have a string token factory"
def stringTokenFactory = Mock(StringTokenFactory)
stringTokenFactory.create(_) >> "token"
and: "I have a token factory"
@Subject
def factory = new TokenFactory(stringTokenFactory)
and: "I have a username and a role"
String username = "user"
String role = "USER"
when: "I create a token"
def token = factory.create(username, role)
then: "The token is the same if the same input data."
with(token) {
getUsername() == username
getRole() == role
getToken() == "token"
}
}
}
Loading…
Cancel
Save