TSK-1964: added UserBuilder to test-api
This commit is contained in:
parent
2dbdd874d5
commit
50915ef4e1
|
@ -0,0 +1,90 @@
|
|||
package pro.taskana.testapi.builder;
|
||||
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.user.api.UserService;
|
||||
import pro.taskana.user.api.exceptions.UserAlreadyExistException;
|
||||
import pro.taskana.user.api.models.User;
|
||||
import pro.taskana.user.internal.models.UserImpl;
|
||||
|
||||
public class UserBuilder implements EntityBuilder<User, UserService> {
|
||||
|
||||
private final UserImpl testUser = new UserImpl();
|
||||
|
||||
private UserBuilder() {}
|
||||
|
||||
public static UserBuilder newUser() {
|
||||
return new UserBuilder();
|
||||
}
|
||||
|
||||
public UserBuilder id(String id) {
|
||||
testUser.setId(id);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder firstName(String firstName) {
|
||||
testUser.setFirstName(firstName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder lastName(String lastName) {
|
||||
testUser.setLastName(lastName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder fullName(String fullName) {
|
||||
testUser.setFullName(fullName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder longName(String longName) {
|
||||
testUser.setLongName(longName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder email(String email) {
|
||||
testUser.setEmail(email);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder phone(String phone) {
|
||||
testUser.setPhone(phone);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder mobilePhone(String mobilePhone) {
|
||||
testUser.setMobilePhone(mobilePhone);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder orgLevel1(String orgLevel1) {
|
||||
testUser.setOrgLevel1(orgLevel1);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder orgLevel2(String orgLevel2) {
|
||||
testUser.setOrgLevel2(orgLevel2);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder orgLevel3(String orgLevel3) {
|
||||
testUser.setOrgLevel3(orgLevel3);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder orgLevel4(String orgLevel4) {
|
||||
testUser.setOrgLevel4(orgLevel4);
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserBuilder data(String data) {
|
||||
testUser.setData(data);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public User buildAndStore(UserService userService)
|
||||
throws UserAlreadyExistException, InvalidArgumentException, NotAuthorizedException {
|
||||
return userService.createUser(testUser);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
package pro.taskana.testapi.builder;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static pro.taskana.testapi.builder.UserBuilder.newUser;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import pro.taskana.testapi.TaskanaInject;
|
||||
import pro.taskana.testapi.TaskanaIntegrationTest;
|
||||
import pro.taskana.testapi.security.WithAccessId;
|
||||
import pro.taskana.user.api.UserService;
|
||||
import pro.taskana.user.api.models.User;
|
||||
|
||||
@TaskanaIntegrationTest
|
||||
class UserBuilderTest {
|
||||
|
||||
@TaskanaInject UserService userService;
|
||||
|
||||
@WithAccessId(user = "businessadmin")
|
||||
@Test
|
||||
void should_PersistUser_When_UsingUserBuilder() throws Exception {
|
||||
User user =
|
||||
newUser().id("user-1").firstName("Max").lastName("Mustermann").buildAndStore(userService);
|
||||
|
||||
User userInDatabase = userService.getUser("user-1");
|
||||
assertThat(userInDatabase).isNotSameAs(user).isEqualTo(user);
|
||||
}
|
||||
|
||||
@Test
|
||||
void should_PersistUserEntityAsUser_When_UsingUserBuilder() throws Exception {
|
||||
User user =
|
||||
newUser()
|
||||
.id("user-2")
|
||||
.firstName("Max")
|
||||
.lastName("Mustermann")
|
||||
.buildAndStore(userService, "businessadmin");
|
||||
|
||||
User userInDatabase = userService.getUser("user-2");
|
||||
assertThat(userInDatabase).isNotSameAs(user).isEqualTo(user);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "businessadmin")
|
||||
@Test
|
||||
void should_PopulateUserEntity_When_UsingEveryBuilderFunction() throws Exception {
|
||||
final User user =
|
||||
newUser()
|
||||
.id("max-mustermann")
|
||||
.firstName("Max")
|
||||
.lastName("Mustermann")
|
||||
.fullName("Max Mustermann")
|
||||
.longName("Mustermann, Max")
|
||||
.email("max@mustermann.de")
|
||||
.phone("123456798")
|
||||
.mobilePhone("987654321")
|
||||
.orgLevel1("org1")
|
||||
.orgLevel2("org2")
|
||||
.orgLevel3("org3")
|
||||
.orgLevel4("org4")
|
||||
.data("this is some extra data about max")
|
||||
.buildAndStore(userService);
|
||||
|
||||
User expectedUser = userService.newUser();
|
||||
expectedUser.setId("max-mustermann");
|
||||
expectedUser.setFirstName("Max");
|
||||
expectedUser.setLastName("Mustermann");
|
||||
expectedUser.setFullName("Max Mustermann");
|
||||
expectedUser.setLongName("Mustermann, Max");
|
||||
expectedUser.setEmail("max@mustermann.de");
|
||||
expectedUser.setPhone("123456798");
|
||||
expectedUser.setMobilePhone("987654321");
|
||||
expectedUser.setOrgLevel1("org1");
|
||||
expectedUser.setOrgLevel2("org2");
|
||||
expectedUser.setOrgLevel3("org3");
|
||||
expectedUser.setOrgLevel4("org4");
|
||||
expectedUser.setData("this is some extra data about max");
|
||||
|
||||
assertThat(user).hasNoNullFieldsOrProperties().isEqualTo(expectedUser);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue