init telosys
This commit is contained in:
134
TelosysTools/templates/infinimotion/test-java/XxxJpaTest_java.vm
Normal file
134
TelosysTools/templates/infinimotion/test-java/XxxJpaTest_java.vm
Normal file
@@ -0,0 +1,134 @@
|
||||
## --------------------------------------------------
|
||||
#if ( $entity.isJoinEntity() )
|
||||
#cancel("No test class for join entity")
|
||||
#end
|
||||
## --------------------------------------------------
|
||||
#parse("include/init_var_entity.vm")
|
||||
#parse("/include/java_header.vm")
|
||||
##------------------------------------------------------
|
||||
package ${target.javaPackageFromFolder($TEST_SRC)};
|
||||
|
||||
import static junit.framework.TestCase.assertNotNull;
|
||||
|
||||
## import ${ROOT_PKG}.jpa.tools.JpaTest;
|
||||
import ${ROOT_PKG}.entities.tooling.JpaTest;
|
||||
import org.junit.Test;
|
||||
|
||||
## macro to define referenced value for the given attribute
|
||||
#macro( setRefValue $attrib )
|
||||
#foreach( $fkPart in $attrib.fkParts )
|
||||
#if ( $foreach.count == 1 )
|
||||
## #set( $refEntity = $model.getEntityByClassName($fkPart.referencedEntityName) )
|
||||
## #set( $refAttribute = $refEntity.getAttributeByName($fkPart.referencedAttributeName) )
|
||||
## #set( $refValue = "${refEntity.name}JpaTest.getInitEntity().${refAttribute.getter}()" )
|
||||
## new (for test)
|
||||
#set( $n = $attrib.fkPartsCount )
|
||||
#set( $e = $fkPart.referencedEntity )
|
||||
#set( $a = $fkPart.referencedAttribute )
|
||||
##
|
||||
#set( $refValue = "${fkPart.referencedEntityName}JpaTest.getInitEntity().${fkPart.referencedAttribute.getter}()" )
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
##
|
||||
#set( $values1 = $fn.buildValues($entity.attributes, 1) )
|
||||
#set( $values2 = $fn.buildValues($entity.attributes, 2) )
|
||||
##
|
||||
public class ${entity.name}JpaTest extends JpaTest {
|
||||
|
||||
public static ${entity.name} getInitEntity() {
|
||||
#buildEntity($values1)
|
||||
}
|
||||
|
||||
private ${entity.name} createEntity() {
|
||||
#buildEntity($values2)
|
||||
}
|
||||
|
||||
#macro( buildEntity $argValues )
|
||||
${entity.name} entity = new ${entity.name}();
|
||||
#foreach( $attribute in $entity.attributes )
|
||||
#if ( $attribute.isFK() )
|
||||
#setRefValue ( $attribute )
|
||||
entity.${attribute.setter}( $refValue ) ;
|
||||
#else
|
||||
#if ( ! $attribute.isAutoIncremented() )
|
||||
entity.${attribute.setter}( $argValues.getValue($attribute.name) ) ;
|
||||
#else
|
||||
// $attribute.name is auto-incremented => do not set
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
return entity;
|
||||
#end
|
||||
|
||||
private Object getEntityKey(${entity.name} entity) {
|
||||
#if ( $entity.hasCompositePrimaryKey() )
|
||||
return new ${jpaEntityIdClass}( $fn.argumentsListWithGetter("entity", $entity.keyAttributes) );
|
||||
#else
|
||||
return entity.${entity.keyAttribute.getter}();
|
||||
#end
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFind() {
|
||||
#if ( $entity.hasGeneratedKey() )
|
||||
// NB: this entity has an GENERATED PRIMARY KEY
|
||||
// Cannot use a generic test with this kind of PK
|
||||
// Create a specific test for this case
|
||||
#else
|
||||
${entity.name} e = find(${entity.name}.class, getEntityKey(getInitEntity()) );
|
||||
assertNotNull(e);
|
||||
#end
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPersistFind() {
|
||||
#if ( $entity.hasGeneratedKey() )
|
||||
// NB: this entity has an GENERATED PRIMARY KEY
|
||||
// Cannot use a generic test with this kind of PK
|
||||
// Create a specific test for this case
|
||||
#else
|
||||
${entity.name} entity = createEntity();
|
||||
Object key = getEntityKey(entity);
|
||||
|
||||
// if entity doesn't exist yet
|
||||
if ( find(${entity.name}.class, key) == null ) {
|
||||
|
||||
// Create with 'persist'
|
||||
persistAndRefresh(entity);
|
||||
|
||||
// Find
|
||||
${entity.name} entity2 = find(${entity.name}.class, key);
|
||||
assertNotNull(entity2);
|
||||
|
||||
// Remove (use only if no risk of referential integrity constraint violation)
|
||||
// findAndRemove(${entity.name}.class, key);
|
||||
// assertNull(find(${entity.name}.class, key));
|
||||
}
|
||||
#end
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMergeFind() {
|
||||
#if ( $entity.hasGeneratedKey() )
|
||||
// NB: this entity has an GENERATED PRIMARY KEY
|
||||
// Cannot use a generic test with this kind of PK
|
||||
// Create a specific test for this case
|
||||
#else
|
||||
${entity.name} entity = createEntity();
|
||||
Object key = getEntityKey(entity);
|
||||
|
||||
// Create or update with 'merge'
|
||||
mergeAndRefresh(entity);
|
||||
|
||||
// Find
|
||||
${entity.name} entity2 = find(${entity.name}.class, key);
|
||||
assertNotNull(entity2);
|
||||
|
||||
// Remove (use only if no risk of referential integrity constraint violation)
|
||||
// findAndRemove(${entity.name}.class, key);
|
||||
// assertNull(find(${entity.name}.class, key));
|
||||
#end
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user