package com.autentia.tnt.manager.security;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.core.Is.is;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import com.autentia.tnt.businessobject.User;
public class AuthenticationManagerImplTest {
private static final String PASSWORD = "password";
private static final String[] RANDOM_STRING = new String[] { "random" };
private static AuthenticationManager sut;
private User user = mock(User.class);
private List<AuthenticationManager> list;
private AuthenticationManager authenticationManagerLdap = mock(AuthenticationManagerLdapImpl.class);
private AuthenticationManager authenticationManagerDao = mock(AuthenticationManagerDaoImpl.class);
@Before
public void init() {
list = new ArrayList<AuthenticationManager>();
list.add(authenticationManagerDao);
list.add(authenticationManagerLdap);
}
@Test
public void shouldReturnAuthenticationManagerLdapTest() throws Exception {
sut = new AuthenticationManagerImpl(true, list).getObject();
assertThat(sut, is(instanceOf(AuthenticationManagerLdapImpl.class)));
}
@Test
public void shouldReturnAuthenticationManagerDaoTest() throws Exception {
sut = new AuthenticationManagerImpl(false, list).getObject();
assertThat(sut, is(instanceOf(AuthenticationManagerDaoImpl.class)));
}
@Test
public void checkPasswordLdapTest() throws Exception {
sut = new AuthenticationManagerImpl(true, list).getObject();
sut.checkPassword(user, PASSWORD);
verify(authenticationManagerLdap).checkPassword(user, PASSWORD);
}
@Test
public void checkPasswordDaoTest() throws Exception {
sut = new AuthenticationManagerImpl(false, list).getObject();
sut.checkPassword(user, PASSWORD);
verify(authenticationManagerDao).checkPassword(user, PASSWORD);
}
@Test
public void changePasswordLdapTest() throws Exception {
sut = new AuthenticationManagerImpl(true, list).getObject();
sut.changePassword(user, PASSWORD);
verify(authenticationManagerLdap).changePassword(user, PASSWORD);
}
@Test
public void changePasswordDaoTest() throws Exception {
sut = new AuthenticationManagerImpl(false, list).getObject();
sut.changePassword(user, PASSWORD);
verify(authenticationManagerDao).changePassword(user, PASSWORD);
}
@Test
public void resetPasswordLdapTest() throws Exception {
sut = new AuthenticationManagerImpl(true, list).getObject();
sut.resetPassword(user, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING);
verify(authenticationManagerLdap).resetPassword(user, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING,
RANDOM_STRING, RANDOM_STRING);
}
@Test
public void resetPasswordDaoTest() throws Exception {
sut = new AuthenticationManagerImpl(false, list).getObject();
sut.resetPassword(user, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING);
verify(authenticationManagerDao).resetPassword(user, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING, RANDOM_STRING,
RANDOM_STRING);
}
}