package ch.alv.components.iam.model;
import org.junit.Test;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* Test cases for the {@link User} class
*
* @since 1.0.0
*/
public class UserEntityTest {
@Test
public void testEntity() {
User entity = new User();
String userName = "testUserName";
String firstName = "testFirstName";
String lastName = "testLastName";
String password = "testPassword";
int numberOfFailedLogins = 88;
Date date = new Date();
User user = new User();
String email = "testEmail";
List<Role> roles = new ArrayList<>();
Role role = new Role();
role.setName("ROLE_TEST");
roles.add(role);
entity.setUsername(userName);
entity.setFirstName(firstName);
entity.setLastName(lastName);
entity.setPassword(password);
entity.setNumberOfFailedLogins(numberOfFailedLogins);
entity.setCreateDate(date);
entity.setCreateUser(user);
entity.setUpdateDate(date);
entity.setUpdateUser(user);
entity.setEmail(email);
entity.setLastLogin(date);
entity.setRoles(roles);
assertEquals(userName, entity.getUsername());
assertEquals(userName, entity.getUsername());
assertEquals(firstName, entity.getFirstName());
assertEquals(lastName, entity.getLastName());
assertEquals(password, entity.getPassword());
assertEquals(numberOfFailedLogins, entity.getNumberOfFailedLogins());
assertEquals(date, entity.getCreateDate());
assertEquals(user, entity.getCreateUser());
assertEquals(date, entity.getUpdateDate());
assertEquals(user, entity.getUpdateUser());
assertEquals(email, entity.getEmail());
assertEquals(date, entity.getLastLogin());
assertEquals(roles, entity.getRoles());
assertTrue(entity.isAccountNonLocked());
assertTrue(entity.isAccountNonExpired());
assertTrue(entity.isCredentialsNonExpired());
assertTrue(entity.isEnabled());
List<GrantedAuthority> auths = new ArrayList<>();
auths.add(new SimpleGrantedAuthority(role.getName()));
assertEquals(auths, entity.getAuthorities());
}
}