/* * 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.jdbc.gen.internal.desc; import java.util.Arrays; import org.junit.Before; import org.junit.Test; import org.seasar.extension.jdbc.gen.desc.CompositeUniqueConstraintDesc; import org.seasar.extension.jdbc.gen.desc.EntityDesc; import org.seasar.extension.jdbc.gen.dialect.GenDialect; import org.seasar.extension.jdbc.gen.internal.dialect.StandardGenDialect; import org.seasar.extension.jdbc.gen.meta.DbColumnMeta; import org.seasar.extension.jdbc.gen.meta.DbTableMeta; import org.seasar.extension.jdbc.gen.meta.DbUniqueKeyMeta; import org.seasar.framework.convention.PersistenceConvention; import org.seasar.framework.convention.impl.PersistenceConventionImpl; import static org.junit.Assert.*; /** * @author taedium * */ public class EntityDescFactoryImplTest { private EntityDescFactoryImpl factory; /** * * @throws Exception */ @Before public void setUp() throws Exception { PersistenceConvention convention = new PersistenceConventionImpl(); GenDialect dialect = new StandardGenDialect(); AttributeDescFactoryImpl attributeDescFactory = new AttributeDescFactoryImpl( convention, dialect, "VERSION", null, null, null); CompositeUniqueConstraintDescFactoryImpl uniqueConstraintDescFactory = new CompositeUniqueConstraintDescFactoryImpl(); factory = new EntityDescFactoryImpl(convention, attributeDescFactory, uniqueConstraintDescFactory); } /** * * @throws Exception */ @Test public void testName() throws Exception { DbTableMeta dbTableMeta = new DbTableMeta(); dbTableMeta.setName("HOGE"); EntityDesc entityDesc = factory.getEntityDesc(dbTableMeta); assertEquals("Hoge", entityDesc.getName()); } /** * * @throws Exception */ @Test public void testTable() throws Exception { DbTableMeta dbTableMeta = new DbTableMeta(); dbTableMeta.setCatalogName("AAA"); dbTableMeta.setSchemaName("BBB"); dbTableMeta.setName("HOGE"); EntityDesc entityDesc = factory.getEntityDesc(dbTableMeta); assertEquals("AAA", entityDesc.getCatalogName()); assertEquals("BBB", entityDesc.getSchemaName()); assertEquals("HOGE", entityDesc.getTableName()); } /** * * @throws Exception */ @Test public void testGetAttributeDescList() throws Exception { DbColumnMeta columnMeta1 = new DbColumnMeta(); columnMeta1.setName("BAR"); columnMeta1.setTypeName("varchar"); DbColumnMeta columnMeta2 = new DbColumnMeta(); columnMeta2.setName("FOO"); columnMeta2.setTypeName("varchar"); DbTableMeta tableMeta = new DbTableMeta(); tableMeta.setName("HOGE"); tableMeta.addColumnMeta(columnMeta1); tableMeta.addColumnMeta(columnMeta2); EntityDesc entityDesc = factory.getEntityDesc(tableMeta); assertEquals(2, entityDesc.getAttributeDescList().size()); } /** * * @throws Exception */ @Test public void testHasCompositeId() throws Exception { DbColumnMeta columnMeta1 = new DbColumnMeta(); columnMeta1.setName("BAR"); columnMeta1.setPrimaryKey(true); columnMeta1.setTypeName("varchar"); DbColumnMeta columnMeta2 = new DbColumnMeta(); columnMeta2.setName("FOO"); columnMeta2.setPrimaryKey(true); columnMeta2.setTypeName("varchar"); DbTableMeta tableMeta = new DbTableMeta(); tableMeta.setName("HOGE"); tableMeta.addColumnMeta(columnMeta1); tableMeta.addColumnMeta(columnMeta2); EntityDesc entityDesc = factory.getEntityDesc(tableMeta); assertEquals(2, entityDesc.getIdAttributeDescList().size()); assertTrue(entityDesc.hasCompositeId()); } /** * * @throws Exception */ @Test public void testGetCompositeUniqueConstraintDescList() throws Exception { DbUniqueKeyMeta ukMeta1 = new DbUniqueKeyMeta(); ukMeta1.addColumnName("AAA"); ukMeta1.addColumnName("BBB"); DbUniqueKeyMeta ukMeta2 = new DbUniqueKeyMeta(); ukMeta2.addColumnName("CCC"); ukMeta2.addColumnName("DDD"); DbUniqueKeyMeta ukMeta3 = new DbUniqueKeyMeta(); ukMeta3.addColumnName("EEE"); DbTableMeta tableMeta = new DbTableMeta(); tableMeta.setName("HOGE"); tableMeta.addUniqueKeyMeta(ukMeta1); tableMeta.addUniqueKeyMeta(ukMeta2); tableMeta.addUniqueKeyMeta(ukMeta3); EntityDesc entityDesc = factory.getEntityDesc(tableMeta); assertEquals(2, entityDesc.getCompositeUniqueConstraintDescList() .size()); CompositeUniqueConstraintDesc compositeUniqueConstraintDesc = entityDesc .getCompositeUniqueConstraintDescList().get(0); assertEquals(Arrays.asList("AAA", "BBB"), compositeUniqueConstraintDesc .getColumnNameList()); compositeUniqueConstraintDesc = entityDesc .getCompositeUniqueConstraintDescList().get(1); assertEquals(Arrays.asList("CCC", "DDD"), compositeUniqueConstraintDesc .getColumnNameList()); } }