67,513
社区成员
发帖
与我相关
我的任务
分享
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:dao-spring-context.xml")
public class NgTrackerUserDaoTest extends AbstractTransactionalJUnit4SpringContextTests {
@Resource
private TrackerUserDAO trackerUserDAO;
private NgTrackerUser internalAddUser(String loginId, String password
, String firstName, String lastName, Date registerDate) {
NgTrackerUser user = new NgTrackerUser();
user.setLoginId(loginId);
user.setPassword(password);
user.setFirstName(firstName);
user.setLastName(lastName);
user.setRegisterTime(registerDate);
trackerUserDAO.addUser(user);
return user;
}
@Test
public void testAddUserWhenUserAbsent() throws Exception {
NgTrackerUser user = trackerUserDAO.getUser("user001");
TestCase.assertNull(user);
internalAddUser("user001", "89767", "jerry", "chen", new Date());
user = trackerUserDAO.getUser("user001");
TestCase.assertNotNull(user);
}
@Test(expected = DuplicateKeyException.class)
public void testAddUserWhenUserExists() {
NgTrackerUser user = internalAddUser("user002", "88888", "shrek", "lee", new Date());
TestCase.assertNotNull(user);
internalAddUser("user002", "88888", "shrek", "lee", new Date());
}
@Test
public void testGetUserById() throws Exception {
NgTrackerUser user = internalAddUser("user003", "76567", "tree", "chow", new Date());
TestCase.assertNotNull(user.getId());
user = trackerUserDAO.getUserById(user.getId().intValue());
TestCase.assertNotNull(user);
}
@Test
public void testDelUser() throws Exception {
NgTrackerUser user = internalAddUser("user004", "9999", "jetty", "tai", new Date());
TestCase.assertNotNull(user.getId());
trackerUserDAO.deleteUser(user);
user = trackerUserDAO.getUser("user004");
TestCase.assertNull(user);
}
@Test
public void testUpdateUser() throws Exception {
NgTrackerUser user = internalAddUser("user005", "479161", "chart", "pai", new Date());
TestCase.assertNotNull(user.getId());
user.setAlertEmail("jerry@163.com");
trackerUserDAO.updateUser(user);
user = trackerUserDAO.getUser("user005");
TestCase.assertEquals(user.getAlertEmail(), "jerry@163.com");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:c3p0.properties"/>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass"><value>${c3p0.driverClass}</value></property>
<property name="jdbcUrl"><value>${c3p0.jdbcUrl}</value></property>
<property name="user"><value>${c3p0.user}</value></property>
<property name="password"><value>${c3p0.password}</value></property>
<property name="minPoolSize"><value>${c3p0.minPoolSize}</value></property>
<property name="maxPoolSize"><value>${c3p0.maxPoolSize}</value></property>
<property name="maxIdleTime"><value>${c3p0.maxIdleTime}</value></property>
<property name="acquireIncrement"><value>${c3p0.acquireIncrement}</value></property>
<property name="maxStatements"><value>${c3p0.maxStatements}</value></property>
<property name="initialPoolSize"><value>${c3p0.initialPoolSize}</value></property>
<property name="idleConnectionTestPeriod"><value>${c3p0.idleConnectionTestPeriod}</value></property>
<property name="acquireRetryAttempts"><value>${c3p0.acquireRetryAttempts}</value></property>
<property name="breakAfterAcquireFailure"><value>${c3p0.breakAfterAcquireFailure}</value></property>
<property name="testConnectionOnCheckout"><value>${c3p0.testConnectionOnCheckout}</value></property>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="select*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*DAO</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:dao-mybatis-config.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<bean id="trackerDeviceDAO" class="com.topflytech.gps.dao.impl.NgTrackerDeviceDAO">
<property name="sqlSession" ref="sqlSession"/>
</bean>
<bean id="trackerEventDAO" class="com.topflytech.gps.dao.impl.NgTrackerEventDAO">
<property name="sqlSession" ref="sqlSession"/>
</bean>
<bean id="trackerPositionDAO" class="com.topflytech.gps.dao.impl.NgTrackerPositionDAO">
<property name="sqlSession" ref="sqlSession"/>
</bean>
<bean id="trackerUserDAO" class="com.topflytech.gps.dao.impl.NgTrackerUserDAO">
<property name="sqlSession" ref="sqlSession"/>
</bean>
</beans>