package com.brahalla.Cerberus.unit.model.factory; import com.brahalla.Cerberus.domain.entity.User; import com.brahalla.Cerberus.model.factory.CerberusUserFactory; import com.brahalla.Cerberus.model.security.CerberusUser; import java.util.Collection; import java.util.Date; import org.junit.Test; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.AuthorityUtils; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; public class CerberusUserFactoryTest { private final Long ID = 1L; private final String USERNAME = "username"; private final String PASSWORD = "password"; private final String EMAIL = "user@domain.tld"; private final Date LAST_PASSWORD_RESET = new Date(); private final String AUTHORITIES_STRING = "user,admin"; private final Collection<? extends GrantedAuthority> AUTHORITIES = AuthorityUtils.commaSeparatedStringToAuthorityList(AUTHORITIES_STRING); private final Boolean ACCOUNT_NON_EXPIRED = true; private final Boolean ACCOUNT_NON_LOCKED = true; private final Boolean CREDENTIALS_NON_EXPIRED = true; private final Boolean ENABLED = true; @Test(expected = NullPointerException.class) public void callingCreateWithNullObjectReturnsNullPointerException() { User user = null; CerberusUser cerberusUser = CerberusUserFactory.create(user); } @Test public void callingCreateWithEmptyUserObjectReturnsExpectedObject() { User user = new User(); CerberusUser cerberusUser = CerberusUserFactory.create(user); assertNull(cerberusUser.getId()); assertNull(cerberusUser.getUsername()); assertNull(cerberusUser.getPassword()); assertNull(cerberusUser.getEmail()); assertNull(cerberusUser.getLastPasswordReset()); assertNull(cerberusUser.getAuthorities()); assertTrue(cerberusUser.getAccountNonExpired()); assertTrue(cerberusUser.getAccountNonLocked()); assertTrue(cerberusUser.getCredentialsNonExpired()); assertTrue(cerberusUser.getEnabled()); } @Test public void callingCreateWithUserObjectReturnsExpectedObject() { User user = new User(); user.setId(ID); user.setUsername(USERNAME); user.setPassword(PASSWORD); user.setEmail(EMAIL); user.setLastPasswordReset(LAST_PASSWORD_RESET); user.setAuthorities(AUTHORITIES_STRING); CerberusUser cerberusUser = CerberusUserFactory.create(user); assertThat(cerberusUser.getId(), is(ID)); assertThat(cerberusUser.getUsername(), is(USERNAME)); assertThat(cerberusUser.getPassword(), is(PASSWORD)); assertThat(cerberusUser.getEmail(), is(EMAIL)); assertThat(cerberusUser.getLastPasswordReset(), is(LAST_PASSWORD_RESET)); assertEquals(cerberusUser.getAuthorities(), AUTHORITIES); assertThat(cerberusUser.getAccountNonExpired(), is(ACCOUNT_NON_EXPIRED)); assertThat(cerberusUser.getAccountNonLocked(), is(ACCOUNT_NON_LOCKED)); assertThat(cerberusUser.getCredentialsNonExpired(), is(CREDENTIALS_NON_EXPIRED)); assertThat(cerberusUser.getEnabled(), is(ENABLED)); } }