package egovframework.rte.psl.dataaccess.ibatis;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.math.BigDecimal;
import javax.annotation.Resource;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.core.io.ClassPathResource;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.test.jdbc.SimpleJdbcTestUtils;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.psl.dataaccess.TestBase;
import egovframework.rte.psl.dataaccess.dao.DeptDAO;
import egovframework.rte.psl.dataaccess.vo.DeptVO;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:META-INF/spring/context-*.xml" })
@TransactionConfiguration(transactionManager = "txManager", defaultRollback = false)
@Transactional
public class WithoutMappingCUDTest extends TestBase {
@Resource(name = "deptDAO")
DeptDAO deptDAO;
@Before
public void onSetUp() throws Exception {
SimpleJdbcTestUtils.executeSqlScript(
new SimpleJdbcTemplate(dataSource), new ClassPathResource(
"META-INF/testdata/sample_schema_ddl_" + usingDBMS + ".sql"),
true);
}
public DeptVO makeVO() {
DeptVO vo = new DeptVO();
vo.setDeptNo(new BigDecimal(90));
vo.setDeptName("test Dept");
vo.setLoc("test Loc");
return vo;
}
public void checkResult(DeptVO vo, DeptVO resultVO) {
assertNotNull(resultVO);
assertEquals(vo.getDeptNo(), resultVO.getDeptNo());
assertEquals(vo.getDeptName(), resultVO.getDeptName());
assertEquals(vo.getLoc(), resultVO.getLoc());
}
@Test
public void testSimpleInsert() throws Exception {
DeptVO vo = makeVO();
// insert
deptDAO.insertDept("insertDeptSimple", vo);
// select
DeptVO resultVO =
deptDAO.selectDept("selectDeptSimpleUsingResultClass", vo);
// check
checkResult(vo, resultVO);
}
@Test
public void testSimpleUpdate() throws Exception {
DeptVO vo = makeVO();
// insert
deptDAO.insertDept("insertDeptSimple", vo);
// data change
vo.setDeptName("upd Dept");
vo.setLoc("upd loc");
// update
int effectedRows = deptDAO.updateDept("updateDeptSimple", vo);
assertEquals(1, effectedRows);
// select
DeptVO resultVO =
deptDAO.selectDept("selectDeptSimpleUsingResultClass", vo);
// check
checkResult(vo, resultVO);
}
@Test
public void testSimpleDelete() throws Exception {
DeptVO vo = makeVO();
// insert
deptDAO.insertDept("insertDeptSimple", vo);
// delete
int effectedRows = deptDAO.deleteDept("deleteDeptSimple", vo);
assertEquals(1, effectedRows);
// select
DeptVO resultVO =
deptDAO.selectDept("selectDeptSimpleUsingResultClass", vo);
// null 이어야 함
assertNull(resultVO);
}
}