package alien4cloud.rest.security;
import javax.annotation.Resource;
import org.junit.Assert;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import alien4cloud.exception.AlreadyExistException;
import alien4cloud.security.model.User;
import alien4cloud.security.users.UserService;
import alien4cloud.security.users.rest.CreateUserRequest;
/**
*
* @author luc boutier
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-security-test.xml")
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class UserServiceTest {
@Resource
private UserService userService;
@Test
public void testCreateUser() {
CreateUserRequest request = new CreateUserRequest();
request.setUsername("oneguy");
request.setPassword("password");
userService.createUser(request.getUsername(), request.getEmail(), request.getFirstName(), request.getLastName(), request.getRoles(),
request.getPassword());
User createdUser = userService.retrieveUser(request.getUsername());
Assert.assertNotNull(createdUser);
Assert.assertEquals(request.getUsername(), createdUser.getUsername());
// Password must be encrypted
Assert.assertNotEquals(request.getPassword(), createdUser.getPassword());
}
@Test(expected = AlreadyExistException.class)
public void testCreateUserFail() {
CreateUserRequest request = new CreateUserRequest();
request.setUsername("aguy");
request.setPassword("whatever");
userService.createUser(request.getUsername(), request.getEmail(), request.getFirstName(), request.getLastName(), request.getRoles(),
request.getPassword());
userService.createUser(request.getUsername(), request.getEmail(), request.getFirstName(), request.getLastName(), request.getRoles(),
request.getPassword());
}
}