/* * Copyright 2004-2015 the Seasar Foundation and the Others. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package org.seasar.framework.unit.impl; import java.io.File; import java.math.BigDecimal; import org.seasar.extension.dataset.DataRow; import org.seasar.extension.dataset.DataSet; import org.seasar.extension.dataset.DataTable; import org.seasar.extension.dataset.impl.DataSetImpl; import org.seasar.extension.dataset.impl.SqlWriter; import org.seasar.framework.unit.S2TigerTestCase; import org.seasar.framework.util.ResourceUtil; /** * @author taedium * */ public class SimpleDataAccessorTest extends S2TigerTestCase { private SimpleDataAccessor accessor; private SqlWriter sqlWriter; @Override protected void setUp() throws Exception { super.setUp(); include(getClass().getSimpleName() + ".dicon"); } @Override public void tearDownBeforeUnbindFields() throws Throwable { String targetName = getTargetName(); if ("WriteXls".equals(targetName)) { tearDownBeforeUnbindFieldsWriteXls(); } } /** * * @throws Exception */ public void testReadXls() throws Exception { DataSet dataSet = accessor.readXls("testdata.xls"); System.out.println(dataSet); assertEquals("1", 2, dataSet.getTableSize()); DataTable table = dataSet.getTable("emp"); assertEquals("2", 2, table.getRowSize()); assertEquals("3", 3, table.getColumnSize()); DataRow row = table.getRow(0); assertEquals("4", new BigDecimal(9900), row.getValue("empno")); assertEquals("5", "hoge", row.getValue("ename")); assertEquals("6", "aaa", row.getValue("dname")); } /** * * @throws Exception */ public void testReadXlsNoTrim() throws Exception { DataSet dataSet = accessor.readXls("testdata_notrim.xls", false); System.out.println(dataSet); assertEquals("1", 2, dataSet.getTableSize()); DataTable table = dataSet.getTable("emp"); assertEquals("2", 2, table.getRowSize()); assertEquals("3", 3, table.getColumnSize()); DataRow row = table.getRow(0); assertEquals("4", new BigDecimal(9900), row.getValue("empno")); assertEquals("5", "hoge ", row.getValue("ename")); assertEquals("6", "aaa ", row.getValue("dname")); } /** * * @throws Exception */ public void testWriteDbTx() throws Exception { DataSet dataSet = accessor.readXls("testdata.xls"); accessor.writeDb(dataSet); } /** * * @throws Exception */ public void testReadDb() throws Exception { DataSet dataSet = new DataSetImpl(); dataSet.addTable("emp"); dataSet.addTable("dept"); DataSet ret = accessor.readDb(dataSet); System.out.println(ret); DataTable table1 = ret.getTable("emp"); DataTable table2 = ret.getTable("dept"); assertTrue("1", table1.getRowSize() > 0); assertTrue("2", table2.getRowSize() > 0); } /** * * @throws Exception */ public void testReadDbByTable() throws Exception { DataTable table = accessor.readDbByTable("emp", "empno = 7788"); System.out.println(table); assertEquals("1", 1, table.getRowSize()); } /** * * @throws Exception */ public void testReadDbBySql() throws Exception { DataTable table = accessor.readDbBySql( "SELECT * FROM emp WHERE empno = 7788", "emp"); System.out.println(table); assertEquals("1", 1, table.getRowSize()); } /** * * @throws Exception */ public void testReloadOrReadDb() throws Exception { DataSet dataSet = new DataSetImpl(); DataTable table = dataSet.addTable("emp"); table.addColumn("empno"); table.addColumn("ename"); DataRow row = table.addRow(); row.setValue("empno", new Integer(7788)); row.setValue("ename", "hoge"); table = dataSet.addTable("dept"); table.addColumn("loc"); table.addColumn("dname"); DataSet ret = accessor.reloadOrReadDb(dataSet); DataTable table1 = ret.getTable("emp"); System.out.println(table1); DataTable table2 = ret.getTable("dept"); System.out.println(table2); DataRow row1 = table1.getRow(0); assertTrue("1", table1.getRowSize() == 1); assertTrue("2", table2.getRowSize() > 0); assertEquals("3", false, "hoge".equals(row1.getValue("ename"))); } /** * * @throws Exception */ public void testWriteXls() throws Exception { DataSet dataSet = accessor.readXls("testdata.xls"); accessor.writeXls("aaa.xls", dataSet); DataSet dataSet2 = accessor.readXls("aaa.xls"); assertEquals("1", dataSet, dataSet2); } /** * * @throws Throwable */ public void tearDownBeforeUnbindFieldsWriteXls() throws Throwable { File dir = ResourceUtil.getBuildDir(accessor.getClass()); File file = new File(dir, accessor.convertPath("aaa.xls")); // The process cannot delete the file without System.gc() // because it is being used by another process. // See https://bz.apache.org/bugzilla/show_bug.cgi?id=58480 System.gc(); file.delete(); } /** * * @throws Exception */ public void testReadXlsReplaceDbTx() throws Exception { accessor.readXlsReplaceDb("testdata.xls"); } /** * * @throws Exception */ public void testReadXlsAllReplaceDbTx() throws Exception { accessor.readXlsAllReplaceDb("testdata.xls"); } /** * @throws Exception */ public void testGetSqlWriter() throws Exception { assertSame(sqlWriter, accessor.getSqlWriter()); } }