package org.synyx.hades.sample.dao; import static org.junit.Assert.*; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; import org.synyx.hades.sample.domain.User; /** * Intergration test showing the basic usage of {@link UserDao}. * * @author Oliver Gierke - gierke@synyx.de */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:dao-context.xml") @Transactional public class HadesUserDaoSample { @Autowired private UserDao userDao; /** * Tests inserting a user and asserts it can be loaded again. */ @Test public void testInsert() { User user = new User(); user.setUsername("username"); user = userDao.save(user); assertEquals(user, userDao.readByPrimaryKey(user.getId())); } @Test public void foo() { User user = new User(); user.setUsername("foobar"); user.setLastname("lastname"); user = userDao.save(user); List<User> users = userDao.findByLastname("lastname"); assertNotNull(users); assertTrue(users.contains(user)); User reference = userDao.findByTheUsersName("foobar"); assertEquals(user, reference); } /** * Test invocation of custom method. */ @Test public void testCustomMethod() { User user = new User(); user.setUsername("username"); user = userDao.save(user); List<User> users = userDao.myCustomBatchOperation(); assertNotNull(users); assertTrue(users.contains(user)); } }