/*
* 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.generator;
import java.io.File;
import java.math.BigDecimal;
import javax.persistence.GenerationType;
import javax.persistence.TemporalType;
import org.junit.Before;
import org.junit.Test;
import org.seasar.extension.jdbc.gen.desc.AttributeDesc;
import org.seasar.extension.jdbc.gen.desc.CompositeUniqueConstraintDesc;
import org.seasar.extension.jdbc.gen.desc.EntityDesc;
import org.seasar.extension.jdbc.gen.desc.EntitySetDesc;
import org.seasar.extension.jdbc.gen.generator.GenerationContext;
import org.seasar.extension.jdbc.gen.internal.desc.AssociationResolver;
import org.seasar.extension.jdbc.gen.internal.desc.PluralFormDictinary;
import org.seasar.extension.jdbc.gen.internal.model.AssociationModelFactoryImpl;
import org.seasar.extension.jdbc.gen.internal.model.AttributeModelFactoryImpl;
import org.seasar.extension.jdbc.gen.internal.model.CompositeUniqueConstraintModelFactoryImpl;
import org.seasar.extension.jdbc.gen.internal.model.EntityModelFactoryImpl;
import org.seasar.extension.jdbc.gen.meta.DbForeignKeyMeta;
import org.seasar.extension.jdbc.gen.meta.DbTableMeta;
import org.seasar.extension.jdbc.gen.model.EntityModel;
import org.seasar.framework.convention.impl.PersistenceConventionImpl;
import org.seasar.framework.util.ClassUtil;
import org.seasar.framework.util.ResourceUtil;
import org.seasar.framework.util.TextUtil;
import static org.junit.Assert.*;
/**
* @author taedium
*
*/
public class GenerateEntityTest {
private EntityModelFactoryImpl factory;
private GeneratorImplStub generator;
/**
*
* @throws Exception
*/
@Before
public void setUp() throws Exception {
factory = new EntityModelFactoryImpl("hoge.entity", null,
new AttributeModelFactoryImpl(false, true, true,
new PersistenceConventionImpl()),
new AssociationModelFactoryImpl(false),
new CompositeUniqueConstraintModelFactoryImpl(), false, false,
true, true, false);
generator = new GeneratorImplStub();
}
/**
*
* @throws Exception
*/
@Test
public void testSingleId() throws Exception {
AttributeDesc id = new AttributeDesc();
id.setName("id");
id.setId(true);
id.setGenerationType(GenerationType.SEQUENCE);
id.setInitialValue(100);
id.setAllocationSize(50);
id.setAttributeClass(int.class);
id.setColumnName("ID");
id.setColumnDefinition("integer");
id.setNullable(false);
AttributeDesc name = new AttributeDesc();
name.setName("name");
name.setAttributeClass(String.class);
name.setColumnName("NAME");
name.setColumnDefinition("varchar(10)");
name.setNullable(false);
name.setUnique(true);
AttributeDesc sal = new AttributeDesc();
sal.setName("sal");
sal.setAttributeClass(BigDecimal.class);
sal.setColumnName("SAL");
sal.setColumnDefinition("decimal(15,5)");
sal.setNullable(false);
AttributeDesc lob = new AttributeDesc();
lob.setName("lob");
lob.setLob(true);
lob.setAttributeClass(byte[].class);
lob.setColumnName("LOB");
lob.setColumnDefinition("blob");
lob.setNullable(true);
AttributeDesc date = new AttributeDesc();
date.setName("date");
date.setAttributeClass(java.sql.Date.class);
date.setColumnName("DATE");
date.setColumnDefinition("date");
date.setNullable(true);
AttributeDesc temp = new AttributeDesc();
temp.setName("temp");
temp.setTransient(true);
temp.setAttributeClass(String.class);
temp.setColumnName("TEMP");
temp.setNullable(false);
AttributeDesc version = new AttributeDesc();
version.setName("version");
version.setVersion(true);
version.setAttributeClass(Integer.class);
version.setColumnName("VERSION");
version.setColumnDefinition("integer");
version.setNullable(false);
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(id);
entityDesc.addAttributeDesc(name);
entityDesc.addAttributeDesc(sal);
entityDesc.addAttributeDesc(lob);
entityDesc.addAttributeDesc(date);
entityDesc.addAttributeDesc(temp);
entityDesc.addAttributeDesc(version);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/") + "_SingleId.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testSingleIdString() throws Exception {
AttributeDesc id = new AttributeDesc();
id.setName("id");
id.setId(true);
id.setAttributeClass(String.class);
id.setColumnName("ID");
id.setColumnDefinition("varchar");
id.setNullable(false);
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(id);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_SingleIdString.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testCompositeId() throws Exception {
AttributeDesc id1 = new AttributeDesc();
id1.setName("id1");
id1.setId(true);
id1.setAttributeClass(int.class);
id1.setColumnName("ID1");
id1.setColumnDefinition("integer");
id1.setNullable(false);
AttributeDesc id2 = new AttributeDesc();
id2.setName("id2");
id2.setId(true);
id2.setAttributeClass(int.class);
id2.setColumnName("ID2");
id2.setColumnDefinition("integer");
id2.setNullable(false);
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(id1);
entityDesc.addAttributeDesc(id2);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_CompositeId.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testCopyright() throws Exception {
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
String packageName = ClassUtil.getPackageName(getClass());
File dir = ResourceUtil
.getResourceAsFile(packageName.replace('.', '/'));
GeneratorImplStub generator = new GeneratorImplStub("UTF-8", dir);
generator.generate(context);
String path = getClass().getName().replace(".", "/") + "_Copyright.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testLib() throws Exception {
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
String packageName = ClassUtil.getPackageName(getClass());
File dir = ResourceUtil
.getResourceAsFile(packageName.replace('.', '/'));
GeneratorImplStub generator = new GeneratorImplStub("UTF-8", new File(
dir, "lib"));
generator.generate(context);
String path = getClass().getName().replace(".", "/") + "_Lib.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testUnsupportedColumnType() throws Exception {
AttributeDesc name = new AttributeDesc();
name.setName("name");
name.setAttributeClass(String.class);
name.setColumnName("NAME");
name.setColumnTypeName("hoge");
name.setUnsupportedColumnType(true);
name.setNullable(false);
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(name);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_UnsupportedColumnType.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testSingleIdAssociation() throws Exception {
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
EntityDesc entityDesc2 = new EntityDesc();
entityDesc2.setCatalogName("AAA");
entityDesc2.setSchemaName("BBB");
entityDesc2.setTableName("HOGE");
entityDesc2.setName("Hoge");
EntitySetDesc entitySetDesc = new EntitySetDesc();
entitySetDesc.addEntityDesc(entityDesc);
entitySetDesc.addEntityDesc(entityDesc2);
DbTableMeta tableMeta = new DbTableMeta();
tableMeta.setCatalogName("AAA");
tableMeta.setSchemaName("BBB");
tableMeta.setName("FOO");
DbForeignKeyMeta fkMeta = new DbForeignKeyMeta();
fkMeta.setPrimaryKeyCatalogName("AAA");
fkMeta.setPrimaryKeySchemaName("BBB");
fkMeta.setPrimaryKeyTableName("HOGE");
fkMeta.addPrimaryKeyColumnName("PK");
fkMeta.addForeignKeyColumnName("HOGE_ID");
AssociationResolver resolver = new AssociationResolver(entitySetDesc,
new PluralFormDictinary(), new PersistenceConventionImpl());
resolver.resolve(tableMeta, fkMeta);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_SingleId_Association_Foo.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
generator.clear();
model = factory.getEntityModel(entityDesc2);
context = new GenerationContextImpl(model, new File("file"),
"java/entity.ftl", "UTF-8", false);
generator.generate(context);
path = getClass().getName().replace(".", "/")
+ "_SingleId_Association_Hoge.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testSingleIdAssociationDefaultMapping() throws Exception {
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
EntityDesc entityDesc2 = new EntityDesc();
entityDesc2.setCatalogName("AAA");
entityDesc2.setSchemaName("BBB");
entityDesc2.setTableName("HOGE");
entityDesc2.setName("Hoge");
EntitySetDesc entitySetDesc = new EntitySetDesc();
entitySetDesc.addEntityDesc(entityDesc);
entitySetDesc.addEntityDesc(entityDesc2);
DbTableMeta tableMeta = new DbTableMeta();
tableMeta.setCatalogName("AAA");
tableMeta.setSchemaName("BBB");
tableMeta.setName("FOO");
DbForeignKeyMeta fkMeta = new DbForeignKeyMeta();
fkMeta.setPrimaryKeyCatalogName("AAA");
fkMeta.setPrimaryKeySchemaName("BBB");
fkMeta.setPrimaryKeyTableName("HOGE");
fkMeta.addPrimaryKeyColumnName("ID");
fkMeta.addForeignKeyColumnName("HOGE_ID");
AssociationResolver resolver = new AssociationResolver(entitySetDesc,
new PluralFormDictinary(), new PersistenceConventionImpl());
resolver.resolve(tableMeta, fkMeta);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_SingleId_Association_DefaultMapping_Foo.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
generator.clear();
model = factory.getEntityModel(entityDesc2);
context = new GenerationContextImpl(model, new File("file"),
"java/entity.ftl", "UTF-8", false);
generator.generate(context);
path = getClass().getName().replace(".", "/")
+ "_SingleId_Association_DefaultMapping_Hoge.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testCompositeIdAssociation() throws Exception {
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
EntityDesc entityDesc2 = new EntityDesc();
entityDesc2.setCatalogName("AAA");
entityDesc2.setSchemaName("BBB");
entityDesc2.setTableName("HOGE");
entityDesc2.setName("Hoge");
EntitySetDesc entitySetDesc = new EntitySetDesc();
entitySetDesc.addEntityDesc(entityDesc);
entitySetDesc.addEntityDesc(entityDesc2);
DbTableMeta tableMeta = new DbTableMeta();
tableMeta.setCatalogName("AAA");
tableMeta.setSchemaName("BBB");
tableMeta.setName("FOO");
DbForeignKeyMeta fkMeta = new DbForeignKeyMeta();
fkMeta.setPrimaryKeyCatalogName("AAA");
fkMeta.setPrimaryKeySchemaName("BBB");
fkMeta.setPrimaryKeyTableName("HOGE");
fkMeta.addPrimaryKeyColumnName("ID1");
fkMeta.addPrimaryKeyColumnName("ID2");
fkMeta.addForeignKeyColumnName("HOGE_ID1");
fkMeta.addForeignKeyColumnName("HOGE_ID2");
AssociationResolver resolver = new AssociationResolver(entitySetDesc,
new PluralFormDictinary(), new PersistenceConventionImpl());
resolver.resolve(tableMeta, fkMeta);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_CompositeId_Association_Foo.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
generator.clear();
model = factory.getEntityModel(entityDesc2);
context = new GenerationContextImpl(model, new File("file"),
"java/entity.ftl", "UTF-8", false);
generator.generate(context);
path = getClass().getName().replace(".", "/")
+ "_CompositeId_Association_Hoge.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testUniqueConstraint() throws Exception {
CompositeUniqueConstraintDesc uniqueConstraintDesc1 = new CompositeUniqueConstraintDesc();
uniqueConstraintDesc1.addColumnName("CCC");
uniqueConstraintDesc1.addColumnName("DDD");
CompositeUniqueConstraintDesc uniqueConstraintDesc2 = new CompositeUniqueConstraintDesc();
uniqueConstraintDesc2.addColumnName("EEE");
uniqueConstraintDesc2.addColumnName("FFF");
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addCompositeUniqueConstraintDesc(uniqueConstraintDesc1);
entityDesc.addCompositeUniqueConstraintDesc(uniqueConstraintDesc2);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_UniqueConstraint.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testSuperclass() throws Exception {
factory = new EntityModelFactoryImpl("hoge.entity", Eee.class,
new AttributeModelFactoryImpl(false, true, true,
new PersistenceConventionImpl()),
new AssociationModelFactoryImpl(false),
new CompositeUniqueConstraintModelFactoryImpl(), false, false,
true, true, false);
AttributeDesc id = new AttributeDesc();
id.setName("id");
id.setId(true);
id.setGenerationType(GenerationType.SEQUENCE);
id.setInitialValue(100);
id.setAllocationSize(50);
id.setAttributeClass(int.class);
id.setColumnName("ID");
id.setColumnDefinition("integer");
id.setNullable(false);
AttributeDesc name = new AttributeDesc();
name.setName("name");
name.setAttributeClass(String.class);
name.setColumnName("NAME");
name.setColumnDefinition("varchar(10)");
name.setNullable(false);
name.setUnique(true);
AttributeDesc sal = new AttributeDesc();
sal.setName("sal");
sal.setAttributeClass(BigDecimal.class);
sal.setColumnName("SAL");
sal.setColumnDefinition("decimal(15,5)");
sal.setNullable(false);
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(id);
entityDesc.addAttributeDesc(name);
entityDesc.addAttributeDesc(sal);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_Superclass.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testAccessor() throws Exception {
factory = new EntityModelFactoryImpl("hoge.entity", null,
new AttributeModelFactoryImpl(false, true, true,
new PersistenceConventionImpl()),
new AssociationModelFactoryImpl(false),
new CompositeUniqueConstraintModelFactoryImpl(), true, false,
true, true, false);
AttributeDesc id = new AttributeDesc();
id.setName("id");
id.setId(true);
id.setGenerationType(GenerationType.SEQUENCE);
id.setInitialValue(100);
id.setAllocationSize(50);
id.setAttributeClass(int.class);
id.setColumnName("ID");
id.setColumnDefinition("integer");
id.setNullable(false);
AttributeDesc man = new AttributeDesc();
man.setName("man");
man.setAttributeClass(Boolean.class);
man.setColumnName("man");
man.setColumnDefinition("bool");
man.setNullable(false);
man.setUnique(true);
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(id);
entityDesc.addAttributeDesc(man);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/") + "_Accessor.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testComment() throws Exception {
factory = new EntityModelFactoryImpl("hoge.entity", null,
new AttributeModelFactoryImpl(false, true, true,
new PersistenceConventionImpl()),
new AssociationModelFactoryImpl(false),
new CompositeUniqueConstraintModelFactoryImpl(), false, true,
true, true, false);
AttributeDesc id = new AttributeDesc();
id.setName("id");
id.setId(true);
id.setGenerationType(GenerationType.SEQUENCE);
id.setInitialValue(100);
id.setAllocationSize(50);
id.setAttributeClass(int.class);
id.setColumnName("ID");
id.setColumnDefinition("integer");
id.setNullable(false);
id.setComment("識別子");
AttributeDesc man = new AttributeDesc();
man.setName("man");
man.setAttributeClass(Boolean.class);
man.setColumnName("man");
man.setColumnDefinition("bool");
man.setNullable(false);
man.setUnique(true);
man.setComment("性別を表す。男ならばtrue");
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(id);
entityDesc.addAttributeDesc(man);
entityDesc.setComment("FOOテーブル");
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/") + "_Comment.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testTemporal() throws Exception {
factory = new EntityModelFactoryImpl("hoge.entity", null,
new AttributeModelFactoryImpl(false, true, false,
new PersistenceConventionImpl()),
new AssociationModelFactoryImpl(false),
new CompositeUniqueConstraintModelFactoryImpl(), false, true,
true, true, false);
AttributeDesc id = new AttributeDesc();
id.setName("id");
id.setId(true);
id.setAttributeClass(int.class);
id.setColumnName("ID");
id.setColumnDefinition("integer");
id.setNullable(false);
AttributeDesc date = new AttributeDesc();
date.setName("date");
date.setAttributeClass(java.sql.Date.class);
date.setColumnName("DATE");
date.setColumnDefinition("date");
date.setNullable(true);
AttributeDesc time = new AttributeDesc();
time.setName("time");
time.setAttributeClass(java.sql.Time.class);
time.setColumnName("TIME");
time.setColumnDefinition("time");
time.setNullable(true);
AttributeDesc timestamp = new AttributeDesc();
timestamp.setName("timestamp");
timestamp.setAttributeClass(java.sql.Timestamp.class);
timestamp.setColumnName("TIMESTAMP");
timestamp.setColumnDefinition("timestamp");
timestamp.setNullable(true);
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(id);
entityDesc.addAttributeDesc(date);
entityDesc.addAttributeDesc(time);
entityDesc.addAttributeDesc(timestamp);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/") + "_Temporal.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testTemporal_useTemporalType() throws Exception {
factory = new EntityModelFactoryImpl("hoge.entity", null,
new AttributeModelFactoryImpl(false, true, true,
new PersistenceConventionImpl()),
new AssociationModelFactoryImpl(false),
new CompositeUniqueConstraintModelFactoryImpl(), false, true,
true, true, false);
AttributeDesc id = new AttributeDesc();
id.setName("id");
id.setId(true);
id.setAttributeClass(int.class);
id.setColumnName("ID");
id.setColumnDefinition("integer");
id.setNullable(false);
AttributeDesc date = new AttributeDesc();
date.setName("date");
date.setAttributeClass(java.sql.Date.class);
date.setColumnName("DATE");
date.setColumnDefinition("date");
date.setNullable(true);
AttributeDesc time = new AttributeDesc();
time.setName("time");
time.setAttributeClass(java.sql.Time.class);
time.setColumnName("TIME");
time.setColumnDefinition("time");
time.setNullable(true);
AttributeDesc timestamp = new AttributeDesc();
timestamp.setName("timestamp");
timestamp.setAttributeClass(java.sql.Timestamp.class);
timestamp.setColumnName("TIMESTAMP");
timestamp.setColumnDefinition("timestamp");
timestamp.setNullable(true);
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(id);
entityDesc.addAttributeDesc(date);
entityDesc.addAttributeDesc(time);
entityDesc.addAttributeDesc(timestamp);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_Temporal_useTemporalType.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
/**
*
* @throws Exception
*/
@Test
public void testTemporal_primaryTemporalType() throws Exception {
factory = new EntityModelFactoryImpl("hoge.entity", null,
new AttributeModelFactoryImpl(false, true, false,
new PersistenceConventionImpl()),
new AssociationModelFactoryImpl(false),
new CompositeUniqueConstraintModelFactoryImpl(), false, true,
true, true, false);
AttributeDesc id = new AttributeDesc();
id.setName("id");
id.setId(true);
id.setAttributeClass(int.class);
id.setColumnName("ID");
id.setColumnDefinition("integer");
id.setNullable(false);
AttributeDesc oracleDate = new AttributeDesc();
oracleDate.setName("oracleDate");
oracleDate.setAttributeClass(java.sql.Timestamp.class);
oracleDate.setColumnName("ORACLE_DATE");
oracleDate.setColumnDefinition("date");
oracleDate.setNullable(true);
oracleDate.setPrimaryTemporalType(TemporalType.TIMESTAMP);
AttributeDesc timestamp = new AttributeDesc();
timestamp.setName("timestamp");
timestamp.setAttributeClass(java.sql.Timestamp.class);
timestamp.setColumnName("TIMESTAMP");
timestamp.setColumnDefinition("timestamp");
timestamp.setNullable(true);
EntityDesc entityDesc = new EntityDesc();
entityDesc.setCatalogName("AAA");
entityDesc.setSchemaName("BBB");
entityDesc.setTableName("FOO");
entityDesc.setName("Foo");
entityDesc.addAttributeDesc(id);
entityDesc.addAttributeDesc(oracleDate);
entityDesc.addAttributeDesc(timestamp);
EntityModel model = factory.getEntityModel(entityDesc);
GenerationContext context = new GenerationContextImpl(model, new File(
"file"), "java/entity.ftl", "UTF-8", false);
generator.generate(context);
String path = getClass().getName().replace(".", "/")
+ "_Temporal_primaryTemporalType.txt";
assertEquals(TextUtil.readUTF8(path), generator.getResult());
}
}