/* * Copyright 2006-2011 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.codegen.impl; import java.io.File; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.seasar.codegen.element.DataType; import org.seasar.codegen.element.Field; import org.seasar.codegen.element.LinkTable; import org.seasar.codegen.element.PrimaryKey; import org.seasar.codegen.element.Table; import org.seasar.extension.unit.S2TestCase; /** * ExcelImportCodeDataSingleSheet の単体テスト。 * * @author glad */ public class ExcelImportCodeDataSingleSheetTest extends S2TestCase { private ExcelImportCodeDataSingleSheet importCodeData; protected void setUp() throws Exception { include("ExcelImportCodeDataSingleSheetTest.dicon"); } public void testReadCodeData() { File src = new File("test/CodeGen-Example.xls"); Map actual = importCodeData.readCodeData(src); assertEquals(5, actual.size()); assertEquals(getExpectedTableNames(), actual.keySet()); Table expect = getExpectedDataPathHistory(); assertEquals(expect.toString(), actual.get("BuriDataPathHistory") .toString()); PrimaryKey expectPk = expect.getPrimaryKey().get(0); Field field = expectPk.getField(); assertEquals("historyID", field.getSequence()); assertTrue(field.isUseSequence()); assertFalse(field.isUseIdentity()); assertNull(((Table) actual.get("BuriBranch")).getParentTableName().get( "")); assertNotNull(((Table) actual.get("BuriBranch")).getParentTableName() .get("parentBranch")); } protected Set getExpectedTableNames() { Set set = new HashSet(); set.add("BuriBranch"); set.add("BuriData"); set.add("BuriDataPathHistory"); set.add("BuriPath"); set.add("BuriState"); return set; } protected Table getExpectedDataPathHistory() { Table history = new Table(); history.setTableName("BuriDataPathHistory"); Field historyId = new Field(); historyId.setFieldName("historyID"); historyId.setDataType(getDataType("BIGINT", "NOT NULL", "")); historyId.setFieldAttributeName("履歴ID"); history.addTableField(historyId); PrimaryKey primaryKey = new PrimaryKey(); primaryKey.setField(historyId); historyId.setSequence(historyId.getFieldName()); historyId.setUseIdentity(false); history.addPrimaryKey(primaryKey); Field pathId = new Field(); pathId.setFieldName("PathID"); pathId.setDataType(getDataType("BIGINT", "NULL", "")); pathId.setFieldAttributeName("パスID"); history.addTableField(pathId); LinkTable toPath = new LinkTable(); toPath.setTableName("BuriPath"); toPath.setParentFieldName("PathID"); toPath.setChildFieldName("PathID"); history.addLinkTable("Path", toPath); Field dataId = new Field(); dataId.setFieldName("DataID"); dataId.setDataType(getDataType("BIGINT", "NULL", "")); dataId.setFieldAttributeName("データID"); history.addTableField(dataId); LinkTable toData = new LinkTable(); toData.setTableName("BuriData"); toData.setParentFieldName("DataID"); toData.setChildFieldName("DataID"); history.addLinkTable("Data", toData); Field userIdVal = new Field(); userIdVal.setFieldName("UserIDVal"); userIdVal.setDataType(getDataType("VARCHAR(20)", "NULL", "")); userIdVal.setFieldAttributeName("ユーザID値"); history.addTableField(userIdVal); Field userIdNum = new Field(); userIdNum.setFieldName("UserIDNum"); userIdNum.setDataType(getDataType("INTEGER", "NULL", "")); userIdNum.setFieldAttributeName("ユーザID番号"); history.addTableField(userIdNum); Field insertDate = new Field(); insertDate.setFieldName("insertDate"); insertDate.setDataType(getDataType("DATE", "NOT NULL", "")); insertDate.setFieldAttributeName("挿入日付"); history.addTableField(insertDate); return history; } protected DataType getDataType(String dataType, String notNull, String defaultValue) { return importCodeData.getDataType(dataType, notNull, defaultValue); } }