/* * 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.extension.dataset.impl; import java.math.BigDecimal; import java.sql.Timestamp; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; import org.seasar.extension.dataset.DataRow; import org.seasar.extension.dataset.DataTable; import org.seasar.extension.dataset.states.RowStates; import org.seasar.extension.dataset.types.ColumnTypes; /** * @author higa * */ public class DataRowImplTest extends TestCase { /** * @throws Exception */ public void testModify() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa", ColumnTypes.STRING); DataRow row = table.addRow(); row.setValue("aaa", "hoge"); assertEquals("1", RowStates.CREATED, row.getState()); row.remove(); row.setValue("aaa", "hoge"); assertEquals("2", RowStates.REMOVED, row.getState()); row.setState(RowStates.UNCHANGED); row.setValue("aaa", "hoge"); assertEquals("3", RowStates.MODIFIED, row.getState()); } /** * @throws Exception */ public void testSetValue() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa", ColumnTypes.STRING); DataRow row = table.addRow(); row.setValue(0, "hoge"); assertEquals("1", "hoge", row.getValue(0)); assertEquals("2", "hoge", row.getValue("aaa")); } /** * @throws Exception */ public void testGetValue() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa_0"); table.addColumn("bbbCcc"); DataRow row = table.addRow(); row.setValue(0, "hoge"); row.setValue(1, "hoge2"); assertEquals("1", "hoge", row.getValue("aaa_0")); assertEquals("2", "hoge2", row.getValue("bbbCcc")); assertEquals("3", "hoge2", row.getValue("bbb_ccc")); } /** * @throws Exception */ public void testEquals() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa"); table.addColumn("bbb"); DataRow row = table.addRow(); DataRow row2 = table.addRow(); assertEquals("1", row, row); assertEquals("2", row, row2); assertEquals("3", false, row.equals(null)); row.setValue(0, "111"); row.setValue(1, "222"); row2.setValue(0, "111"); row2.setValue(1, "222"); assertEquals("4", row, row2); row.setValue(0, null); assertEquals("5", false, row.equals(row2)); row2.setValue(0, null); assertEquals("6", row, row2); } /** * @throws Exception */ public void testEquals2() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa"); table.addColumn("bbb"); DataTable table2 = new DataTableImpl("hoge2"); table2.addColumn("ccc"); table2.addColumn("aaa"); table2.addColumn("bbb"); DataRow row = table.addRow(); DataRow row2 = table2.addRow(); row.setValue("aaa", "111"); row.setValue("bbb", "222"); row2.setValue("aaa", "111"); row2.setValue("bbb", "222"); row2.setValue("ccc", "333"); assertEquals("1", row, row2); } /** * @throws Exception */ public void testEquals3() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa_bbb"); table.addColumn("ccc_0"); table.addColumn("dddEee"); DataTable table2 = new DataTableImpl("hoge2"); table2.addColumn("aaaBbb"); table2.addColumn("ccc_0"); table2.addColumn("ddd_eee"); DataRow row = table.addRow(); DataRow row2 = table2.addRow(); row.setValue("aaa_bbb", "111"); row.setValue("ccc_0", "222"); row.setValue("dddEee", "333"); row2.setValue("aaaBbb", "111"); row2.setValue("ccc_0", "222"); row2.setValue("ddd_eee", "333"); assertEquals("1", row, row2); } /** * @throws Exception */ public void testEquals4() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa", ColumnTypes.OBJECT); DataTable table2 = new DataTableImpl("hoge2"); table2.addColumn("aaa", ColumnTypes.BINARY); DataRow row = table.addRow(); DataRow row2 = table2.addRow(); byte[] b1 = new byte[] { '1' }; byte[] b2 = new byte[] { '1' }; row.setValue("aaa", b1); row2.setValue("aaa", b2); assertEquals("1", row, row2); } /** * @throws Exception */ public void testEquals5() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa"); table.addColumn("bbb"); DataTable table2 = new DataTableImpl("hoge2"); table2.addColumn("aaa"); table2.addColumn("bbb"); DataRow row = table.addRow(); DataRow row2 = table2.addRow(); row.setValue("aaa", new Timestamp(0)); row2.setValue("aaa", new java.util.Date(0)); assertEquals("1", row, row2); } /** * @throws Exception */ public void testEquals6() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa"); DataTable table2 = new DataTableImpl("hoge2"); table2.addColumn("aaa"); DataRow row = table.addRow(); DataRow row2 = table2.addRow(); row.setValue("aaa", "111"); row2.setValue("aaa", "111 "); assertEquals("1", row, row2); } /** * @throws Exception */ public void testCopyFromMap() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa"); table.addColumn("bbb"); DataRow row = table.addRow(); Map source = new HashMap(); source.put("AAA", "111"); source.put("BBB", "222"); row.copyFrom(source); assertEquals("1", "111", row.getValue("aaa")); assertEquals("2", "222", row.getValue("bbb")); } /** * @throws Exception */ public void testCopyFromBean() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa"); table.addColumn("bbb"); table.addColumn("test_ccc"); table.addColumn("ddd"); DataRow row = table.addRow(); MyBean bean = new MyBean(); bean.setAaa("111"); bean.setBbb("222"); bean.setTestCcc("333"); bean.setDdd(444); row.copyFrom(bean); assertEquals("1", "111", row.getValue("aaa")); assertEquals("2", "222", row.getValue("bbb")); assertEquals("3", "333", row.getValue("test_ccc")); assertEquals("4", new BigDecimal(444), row.getValue("ddd")); } /** * @throws Exception */ public void testCopyFromRow() throws Exception { DataTable table = new DataTableImpl("hoge"); table.addColumn("aaa"); table.addColumn("bbb"); table.addColumn("test_ccc"); DataRow row = table.addRow(); row.setValue("aaa", "111"); row.setValue("bbb", "222"); row.setValue("test_ccc", "333"); DataRow row2 = table.addRow(); row2.copyFrom(row); assertEquals("1", "111", row2.getValue("aaa")); assertEquals("2", "222", row2.getValue("bbb")); assertEquals("3", "333", row2.getValue("test_ccc")); } protected void setUp() throws Exception { } protected void tearDown() throws Exception { } /** * */ public static class MyBean { private String aaa_; private String bbb_; private String testCcc_; private int ddd_; /** * @return */ public String getAaa() { return aaa_; } /** * @param aaa */ public void setAaa(String aaa) { aaa_ = aaa; } /** * @return */ public String getBbb() { return bbb_; } /** * @param bbb */ public void setBbb(String bbb) { bbb_ = bbb; } /** * @return */ public String getTestCcc() { return testCcc_; } /** * @param testCcc */ public void setTestCcc(String testCcc) { testCcc_ = testCcc; } /** * @return */ public int getDdd() { return ddd_; } /** * @param ddd */ public void setDdd(int ddd) { ddd_ = ddd; } } }