package com.autentia.tnt.manager.security;
import com.autentia.tnt.businessobject.User;
import com.autentia.tnt.util.ConfigurationUtil;
import org.apache.commons.codec.digest.DigestUtils;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mock;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
public class AuthenticationManagerDaoImplTest {
private static final String CRYPT_PASSWORD = "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8";
private static final String CRYPT_NEW_PASSWORD = "283d47a9338ed1100b5fe2a5aff2d1f7c799bfd0";
private static final String NEW_PASSWORD = "newPassword";
private static final String PASSWORD = "password";
private static final String[] RANDOM_STRING = new String[] { "random" };
private AuthenticationManager sut;
private ConfigurationUtil cfg = mock(ConfigurationUtil.class);
private IUserRolesService userRolesService = mock(IUserRolesService.class);
private User user = new User();
@Before
public void init() {
sut = new AuthenticationManagerDaoImpl(cfg, userRolesService);
user.setPassword(CRYPT_PASSWORD);
}
@Test
public void givenCorrectPasswordChecksPassword() throws Exception {
assertThat(sut.checkPassword(user, PASSWORD), is(Boolean.TRUE));
}
@Test
public void givenIncorrectPasswordChecksPassword() throws Exception {
assertThat(sut.checkPassword(user, "incorrect-password"), is(Boolean.FALSE));
}
@Test
public void shouldUpdateUserPasswordWithNewPassword() throws Exception {
sut.changePassword(user, NEW_PASSWORD);
assertThat(user.getPassword(), is(CRYPT_NEW_PASSWORD));
}
@Test
public void shouldResetUserPassword() throws Exception {
sut.resetPassword(user, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING);
assertThat(user.getPassword(), is ("b5599d4896bb77df9f597e34004eff6fb55e148e"));
}
}