package de.randi2.core.integration.dao; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.fail; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; import de.randi2.dao.LoginDao; import de.randi2.dao.UserDetailsServiceImpl; import de.randi2.model.Login; import de.randi2.testUtility.utility.DomainObjectFactory; import de.randi2.testUtility.utility.TestStringUtil; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/META-INF/spring-test.xml" }) @Transactional public class UserDetailsServiceTest extends AbstractDaoTest{ @Autowired private LoginDao loginDao; protected EntityManager entityManager; @PersistenceContext public void setEntityManager(EntityManager entityManager) { this. entityManager = entityManager; } @Autowired private DomainObjectFactory factory; @Autowired private TestStringUtil testStringUtil; private UserDetailsServiceImpl userDetailsServiceImpl; @Before public void setUp(){ super.setUp(); userDetailsServiceImpl = new UserDetailsServiceImpl(); userDetailsServiceImpl.setEntityManager(entityManager); } @Test public void getUsernameTest() { Login l = initUsernameTest(); entityManager.flush(); entityManager.clear(); Login l2 = (Login) userDetailsServiceImpl.loadUserByUsername(l.getUsername()); assertEquals(l.getId(), l2.getId()); assertEquals(l.getUsername(), l2.getUsername()); try{ l2 = (Login) userDetailsServiceImpl.loadUserByUsername(testStringUtil.getWithLength(20)); fail(); }catch (UsernameNotFoundException e){ } } private Login initUsernameTest(){ Login l = factory.getLogin(); l.setUsername(testStringUtil.getWithLength(Login.MIN_USERNAME_LENGTH) + "@xyz.com"); loginDao.create(l); return l; } }