CVS: jcontainer/loom/plugins/maven-sar/src/test/org/jcontainer/loom/info PhoenixJavaClassFilterTestCase.java,NONE,1.1 PhoenixAttributeInterceptorTestCase.java,NONE,1.1 GenerateLoomDescriptorsTaskTestCase.java,NONE,1.1
mauro-yCVjj/[email protected]
| Newsgroups | gmane.comp.java.jcontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/jcontainer/jcontainer/loom/plugins/maven-sar/src/test/org/jcontainer/loom/info
In directory hogshead.codehaus.org:/tmp/cvs-serv13989/loom/plugins/maven-sar/src/test/org/jcontainer/loom/info
Added Files:
PhoenixJavaClassFilterTestCase.java
PhoenixAttributeInterceptorTestCase.java
GenerateLoomDescriptorsTaskTestCase.java
Log Message:
Folded loom-info code in maven-sar plugin
--- NEW FILE: PhoenixJavaClassFilterTestCase.java ---
/*
* Copyright (C) The Spice Group. All rights reserved.
*
* This software is published under the terms of the Spice
* Software License version 1.1, a copy of which has been included
* with this distribution in the LICENSE.txt file.
*/
package org.jcontainer.loom.info;
import junit.framework.TestCase;
import com.thoughtworks.qdox.model.JavaClass;
import com.thoughtworks.qdox.model.DocletTag;
import java.util.ArrayList;
/**
*
* @author <a href="mailto:peter at realityforge.org">Peter Donald</a>
* @version $Revision: 1.1 $ $Date: 2003/11/01 13:15:31 $
*/
public class PhoenixJavaClassFilterTestCase
extends TestCase
{
public void testClassWithoutPhoenixMetaData()
throws Exception
{
final PhoenixJavaClassFilter filter = new PhoenixJavaClassFilter();
final JavaClass javaClass = new JavaClass();
final JavaClass result = filter.filterClass( javaClass );
assertNull( "javaClass", result );
}
public void testClassWithPhoenixMxTopic()
throws Exception
{
final PhoenixJavaClassFilter filter = new PhoenixJavaClassFilter();
final JavaClass javaClass = new JavaClass();
final ArrayList tags = new ArrayList();
tags.add( new DocletTag( "phoenix:mx-topic", "" ) );
javaClass.setTags( tags );
final JavaClass result = filter.filterClass( javaClass );
assertEquals( "javaClass", javaClass, result );
}
public void testClassWithPhoenixBlock()
throws Exception
{
final PhoenixJavaClassFilter filter = new PhoenixJavaClassFilter();
final JavaClass javaClass = new JavaClass();
final ArrayList tags = new ArrayList();
tags.add( new DocletTag( "phoenix:block", "" ) );
javaClass.setTags( tags );
final JavaClass result = filter.filterClass( javaClass );
assertEquals( "javaClass", javaClass, result );
}
public void testClassWithMXComponent()
throws Exception
{
final PhoenixJavaClassFilter filter = new PhoenixJavaClassFilter();
final JavaClass javaClass = new JavaClass();
final ArrayList tags = new ArrayList();
tags.add( new DocletTag( "mx.component", "" ) );
javaClass.setTags( tags );
final JavaClass result = filter.filterClass( javaClass );
assertEquals( "javaClass", javaClass, result );
}
public void testClassWithDNAComponent()
throws Exception
{
final PhoenixJavaClassFilter filter = new PhoenixJavaClassFilter();
final JavaClass javaClass = new JavaClass();
final ArrayList tags = new ArrayList();
tags.add( new DocletTag( "dna.component", "" ) );
javaClass.setTags( tags );
final JavaClass result = filter.filterClass( javaClass );
assertEquals( "javaClass", javaClass, result );
}
}
--- NEW FILE: PhoenixAttributeInterceptorTestCase.java ---
/*
* Copyright (C) The JContainer Group. All rights reserved.
*
* This software is published under the terms of the JContainer
* Software License version 1.1, a copy of which has been included
* with this distribution in the LICENSE.txt file.
*/
package org.jcontainer.loom.info;
import junit.framework.TestCase;
import com.thoughtworks.qdox.model.JavaClass;
import com.thoughtworks.qdox.model.DocletTag;
import com.thoughtworks.qdox.model.JavaMethod;
import org.realityforge.metaclass.model.Attribute;
import java.util.Properties;
import java.util.ArrayList;
/**
*
* @author <a href="mailto:peter at realityforge.org">Peter Donald</a>
* @version $Revision: 1.1 $ $Date: 2003/11/01 13:15:31 $
*/
public class PhoenixAttributeInterceptorTestCase
extends TestCase
{
public void testProcessClassAttributeWithoutTransformations()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "ignored" );
final Attribute result =
interceptor.processClassAttribute( new JavaClass(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "ignored", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 0, result.getParameterCount() );
}
public void testProcessClassAttributeWithPhoenixBlock()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "phoenix:block" );
final Attribute result =
interceptor.processClassAttribute( new JavaClass(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "dna.component", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 0, result.getParameterCount() );
}
public void testProcessClassAttributeWithPhoenixMxTopic()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Properties parameters = new Properties();
parameters.setProperty( "name", "MyTopic" );
final Attribute attribute = new Attribute( "phoenix:mx-topic", parameters );
final Attribute result =
interceptor.processClassAttribute( new JavaClass(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "mx.component", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(description)", "MyTopic", result.getParameter( "description" ) );
}
public void testProcessClassAttributeWithPhoenixService()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Properties parameters = new Properties();
parameters.setProperty( "name", "X" );
final Attribute attribute = new Attribute( "phoenix:service", parameters );
final Attribute result =
interceptor.processClassAttribute( new JavaClass(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "dna.service", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(type)", "X", result.getParameter( "type" ) );
}
public void testProcessClassAttributeWithPhoenixMXProxy()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Properties parameters = new Properties();
parameters.setProperty( "class", "X" );
final Attribute attribute = new Attribute( "phoenix:mx-proxy", parameters );
final Attribute result =
interceptor.processClassAttribute( new JavaClass(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "mx.proxy", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(type)", "X", result.getParameter( "type" ) );
}
public void testProcessMethodAttributeWithoutTransformation()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "ignore-me" );
final Attribute result =
interceptor.processMethodAttribute( new JavaMethod(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "ignore-me", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 0, result.getParameterCount() );
}
public void testProcessMethodAttributeWithMXDescription()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "phoenix:mx-description" );
final Attribute result =
interceptor.processMethodAttribute( new JavaMethod(), attribute );
assertNull( "attribute", result );
}
public void testProcessMethodAttributeWithMXAttributeAndNoDescriptionOrComment()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "phoenix:mx-attribute" );
final Attribute result =
interceptor.processMethodAttribute( new JavaMethod(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "mx.attribute", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 0, result.getParameterCount() );
}
public void testProcessMethodAttributeWithMXAttributeAndDescription()
throws Exception
{
final String description = "A Random Thought";
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "phoenix:mx-attribute" );
final JavaMethod method = new JavaMethod();
final ArrayList tags = new ArrayList();
tags.add( new DocletTag( "phoenix:mx-description", description ) );
method.setTags( tags );
final Attribute result =
interceptor.processMethodAttribute( method, attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "mx.attribute", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(description)",
description, result.getParameter( "description" ) );
}
public void testProcessMethodAttributeWithMXAttributeAndComment()
throws Exception
{
final String description = "A Random Thought";
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "phoenix:mx-attribute" );
final JavaMethod method = new JavaMethod();
method.setComment( description );
final Attribute result =
interceptor.processMethodAttribute( method, attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "mx.attribute", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(description)",
description, result.getParameter( "description" ) );
}
public void testProcessMethodAttributeWithMXOperationAndNoDescriptionOrComment()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "phoenix:mx-operation" );
final Attribute result =
interceptor.processMethodAttribute( new JavaMethod(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "mx.operation", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 0, result.getParameterCount() );
}
public void testProcessMethodAttributeWithMXOperationAndDescription()
throws Exception
{
final String description = "A Random Thought";
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "phoenix:mx-operation" );
final JavaMethod field = new JavaMethod();
final ArrayList tags = new ArrayList();
tags.add( new DocletTag( "phoenix:mx-description", description ) );
field.setTags( tags );
final Attribute result =
interceptor.processMethodAttribute( field, attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "mx.operation", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(description)",
description, result.getParameter( "description" ) );
}
public void testProcessMethodAttributeWithMXOperationAndComment()
throws Exception
{
final String description = "A Random Thought";
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "phoenix:mx-operation" );
final JavaMethod field = new JavaMethod();
field.setComment( description );
final Attribute result =
interceptor.processMethodAttribute( field, attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "mx.operation", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(description)",
description, result.getParameter( "description" ) );
}
public void testProcessMethodAttributeWithPhoenixConfigurationSchema()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute attribute = new Attribute( "phoenix:configuration-schema" );
final JavaClass javaClass = new JavaClass();
javaClass.setName( "com.biz.MyClass" );
final JavaMethod method = new JavaMethod();
method.setParentClass( javaClass );
final Attribute result =
interceptor.processMethodAttribute( method, attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "dna.configuration", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 0, result.getParameterCount() );
}
public void testProcessMethodAttributeWithPhoenixConfigurationSchemaSpecifyingType()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Properties parameters = new Properties();
final String type = "BobbaFett";
parameters.setProperty( "type", type );
final Attribute attribute = new Attribute( "phoenix:configuration-schema", parameters );
final JavaClass javaClass = new JavaClass();
javaClass.setName( "com.biz.MyClass" );
final JavaMethod method = new JavaMethod();
method.setParentClass( javaClass );
final Attribute result =
interceptor.processMethodAttribute( method, attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "dna.configuration", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(type)",
type, result.getParameter( "type" ) );
}
public void testProcessMethodAttributeWithPhoenixConfigurationSchemaSpecifyingRelaxType()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Properties parameters = new Properties();
parameters.setProperty( "type", "relax-ng" );
final Attribute attribute = new Attribute( "phoenix:configuration-schema", parameters );
final JavaClass javaClass = new JavaClass();
javaClass.setName( "com.biz.MyClass" );
final JavaMethod method = new JavaMethod();
method.setParentClass( javaClass );
final Attribute result =
interceptor.processMethodAttribute( method, attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "dna.configuration", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(type)",
"http://relaxng.org/ns/structure/1.0",
result.getParameter( "type" ) );
}
public void testProcessMethodAttributeWithPhoenixDependency()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Properties parameters = new Properties();
final String type = "BobbaFett";
parameters.setProperty( "name", type );
final Attribute attribute = new Attribute( "phoenix:dependency", parameters );
final Attribute result =
interceptor.processMethodAttribute( new JavaMethod(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "dna.dependency", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 1, result.getParameterCount() );
assertEquals( "attribute.parameter(type)",
type, result.getParameter( "type" ) );
}
public void testProcessMethodAttributeWithPhoenixDependencyWithRoleSpecified()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Properties parameters = new Properties();
final String type = "BobbaFett";
final String key = "myKey";
parameters.setProperty( "name", type );
parameters.setProperty( "role", key );
final Attribute attribute = new Attribute( "phoenix:dependency", parameters );
final Attribute result =
interceptor.processMethodAttribute( new JavaMethod(), attribute );
assertNotNull( "attribute", result );
assertEquals( "attribute.name", "dna.dependency", result.getName() );
assertEquals( "attribute.value", null, result.getValue() );
assertEquals( "attribute.parameterCount", 2, result.getParameterCount() );
assertEquals( "attribute.parameter(type)",
type, result.getParameter( "type" ) );
assertEquals( "attribute.parameter(key)",
key, result.getParameter( "key" ) );
}
public void testProcessClassAttributesWithoutMXService()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute[] input = new Attribute[]{new Attribute( "RandomJAttribute" )};
final Attribute[] attributes =
interceptor.processClassAttributes( new JavaClass(), input );
assertEquals( "attributes.length", 1, attributes.length );
assertEquals( "attributes[0].name", "RandomJAttribute", attributes[ 0 ].getName() );
assertEquals( "attributes[0].value", null, attributes[ 0 ].getValue() );
assertEquals( "attributes[0].parameterCount", 0, attributes[ 0 ].getParameterCount() );
}
public void testProcessClassAttributesWithMXService()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Properties parameters = new Properties();
final String type = "PerformMagicService";
parameters.setProperty( "name", type );
final Attribute attribute = new Attribute( "phoenix:mx", parameters );
final Attribute[] input = new Attribute[]{attribute};
final Attribute[] attributes =
interceptor.processClassAttributes( new JavaClass(), input );
assertEquals( "attributes.length", 2, attributes.length );
assertEquals( "attributes[0].name", "dna.service", attributes[ 0 ].getName() );
assertEquals( "attributes[0].value", null, attributes[ 0 ].getValue() );
assertEquals( "attributes[0].parameterCount", 1, attributes[ 0 ].getParameterCount() );
assertEquals( "attributes[0].parameter(type)",
type, attributes[ 0 ].getParameter( "type" ) );
assertEquals( "attributes[1].name", "mx.interface", attributes[ 1 ].getName() );
assertEquals( "attributes[1].value", null, attributes[ 1 ].getValue() );
assertEquals( "attributes[1].parameterCount", 2, attributes[ 1 ].getParameterCount() );
assertEquals( "attributes[1].parameter(type)",
type, attributes[ 1 ].getParameter( "type" ) );
assertEquals( "attributes[1].parameter(topic)",
"PerformMagicService", attributes[ 1 ].getParameter( "type" ) );
}
public void testProcessMethodAttributesWithoutMXOperation()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute[] input = new Attribute[]{new Attribute( "RandomJAttribute" )};
final Attribute[] attributes =
interceptor.processMethodAttributes( new JavaMethod(), input );
assertEquals( "attributes.length", 1, attributes.length );
assertEquals( "attributes[0].name", "RandomJAttribute", attributes[ 0 ].getName() );
assertEquals( "attributes[0].value", null, attributes[ 0 ].getValue() );
assertEquals( "attributes[0].parameterCount", 0, attributes[ 0 ].getParameterCount() );
}
public void testProcessMethodAttributesWithMXOperationWithoutParameters()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute[] input = new Attribute[]{new Attribute( "mx.operation" )};
final Attribute[] attributes =
interceptor.processMethodAttributes( new JavaMethod(), input );
assertEquals( "attributes.length", 1, attributes.length );
assertEquals( "attributes[0].name", "mx.operation", attributes[ 0 ].getName() );
assertEquals( "attributes[0].value", null, attributes[ 0 ].getValue() );
assertEquals( "attributes[0].parameterCount", 0, attributes[ 0 ].getParameterCount() );
}
public void testProcessMethodAttributesWithMXOperationWithMalformedParameter()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute[] input =
new Attribute[]{new Attribute( "mx.operation" ),
new Attribute( "param", "var" )};
final Attribute[] attributes =
interceptor.processMethodAttributes( new JavaMethod(), input );
assertEquals( "attributes.length", 2, attributes.length );
assertEquals( "attributes[0].name", "mx.operation", attributes[ 0 ].getName() );
assertEquals( "attributes[0].value", null, attributes[ 0 ].getValue() );
assertEquals( "attributes[0].parameterCount", 0, attributes[ 0 ].getParameterCount() );
assertEquals( "attributes[1].name", "param", attributes[ 1 ].getName() );
assertEquals( "attributes[1].value", "var", attributes[ 1 ].getValue() );
assertEquals( "attributes[1].parameterCount", 0, attributes[ 1 ].getParameterCount() );
}
public void testProcessMethodAttributesWithMXOperationWithParameter()
throws Exception
{
final PhoenixAttributeInterceptor interceptor = new PhoenixAttributeInterceptor();
final Attribute[] input =
new Attribute[]{new Attribute( "mx.operation" ),
new Attribute( "param", "var This is the description" )};
final Attribute[] attributes =
interceptor.processMethodAttributes( new JavaMethod(), input );
assertEquals( "attributes.length", 3, attributes.length );
assertEquals( "attributes[0].name", "mx.operation", attributes[ 0 ].getName() );
assertEquals( "attributes[0].value", null, attributes[ 0 ].getValue() );
assertEquals( "attributes[0].parameterCount", 0, attributes[ 0 ].getParameterCount() );
assertEquals( "attributes[1].name", "param", attributes[ 1 ].getName() );
assertEquals( "attributes[1].value", "var This is the description", attributes[ 1 ].getValue() );
assertEquals( "attributes[1].parameterCount", 0, attributes[ 1 ].getParameterCount() );
assertEquals( "attributes[2].name", "mx.parameter", attributes[ 2 ].getName() );
assertEquals( "attributes[2].value", null, attributes[ 2 ].getValue() );
assertEquals( "attributes[2].parameterCount", 2, attributes[ 2 ].getParameterCount() );
assertEquals( "attributes[2].parameter(name)",
"var",
attributes[ 2 ].getParameter( "name" ) );
assertEquals( "attributes[2].parameter(description)",
"This is the description",
attributes[ 2 ].getParameter( "description" ) );
}
}
--- NEW FILE: GenerateLoomDescriptorsTaskTestCase.java ---
/*
* Copyright (C) The Spice Group. All rights reserved.
*
* This software is published under the terms of the Spice
* Software License version 1.1, a copy of which has been included
* with this distribution in the LICENSE.txt file.
*/
package org.jcontainer.loom.info;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import junit.framework.TestCase;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.FileSet;
import org.realityforge.metaclass.Attributes;
import org.realityforge.metaclass.introspector.DefaultMetaClassAccessor;
import org.realityforge.metaclass.io.MetaClassIOBinary;
import org.realityforge.metaclass.model.Attribute;
import org.realityforge.metaclass.model.ClassDescriptor;
/**
*
* @author <a href="mailto:peter at realityforge.org">Peter Donald</a>
* @version $Revision: 1.1 $ $Date: 2003/11/01 13:15:31 $
*/
public class GenerateLoomDescriptorsTaskTestCase
extends TestCase
{
public void testSourceFile()
throws Exception
{
final String source =
"package com.biz;\n" +
"\n" +
"/**\n" +
" * @phoenix:block\n" +
" */\n" +
"public class MyClass\n" +
"{\n" +
"}\n";
final File sourceDirectory = generateDirectory();
final File destDirectory = generateDirectory();
final FileSet fileSet = new FileSet();
fileSet.setDir( sourceDirectory );
fileSet.setIncludes( "**/*.java" );
final String sourceFilename =
sourceDirectory + File.separator + "com" + File.separator + "biz" + File.separator + "MyClass.java";
final File sourceFile = new File( sourceFilename );
sourceFile.getParentFile().mkdirs();
final FileOutputStream output = new FileOutputStream( sourceFile );
output.write( source.getBytes() );
output.close();
final GenerateLoomDescriptorsTask task = new GenerateLoomDescriptorsTask();
final Project project = new Project();
project.setBaseDir( getBaseDirectory() );
task.setProject( project );
task.setDestDir( destDirectory );
task.addFileset( fileSet );
task.execute();
final String destFilename =
destDirectory + File.separator + "com" + File.separator + "biz" + File.separator + "MyClass" + DefaultMetaClassAccessor.BINARY_EXT;
final File destFile = new File( destFilename );
assertTrue( "destFile.exists()", destFile.exists() );
final MetaClassIOBinary io = new MetaClassIOBinary();
final FileInputStream input = new FileInputStream( destFile );
final ClassDescriptor descriptor = io.deserializeClass( input );
assertEquals( "descriptor.name", "com.biz.MyClass", descriptor.getName() );
assertEquals( "descriptor.attributes.length", 1, descriptor.getAttributes().length );
assertEquals( "descriptor.attributes[0].name", "dna.component", descriptor.getAttributes()[ 0 ].getName() );
assertEquals( "descriptor.methods.length", 0, descriptor.getMethods().length );
assertEquals( "descriptor.fields.length", 0, descriptor.getFields().length );
}
public void testSourceFileWithTypeResolutionAndDefaultsAddition()
throws Exception
{
final String source =
"package com.biz;\n" +
"\n" +
"/**\n" +
" * @phoenix:block\n" +
" */\n" +
"public class MyClass\n" +
"{\n" +
" /**\n" +
" * @dna.configuration\n" +
" * @dna.dependency type=\"ClassLoader\"\n" +
" */\n" +
" public void myMethod()\n" +
" {\n" +
" }\n" +
"}\n";
final File sourceDirectory = generateDirectory();
final File destDirectory = generateDirectory();
final FileSet fileSet = new FileSet();
fileSet.setDir( sourceDirectory );
fileSet.setIncludes( "**/*.java" );
final String sourceFilename =
sourceDirectory + File.separator + "com" + File.separator + "biz" + File.separator + "MyClass.java";
final File sourceFile = new File( sourceFilename );
sourceFile.getParentFile().mkdirs();
final FileOutputStream output = new FileOutputStream( sourceFile );
output.write( source.getBytes() );
output.close();
final GenerateLoomDescriptorsTask task = new GenerateLoomDescriptorsTask();
final Project project = new Project();
project.setBaseDir( getBaseDirectory() );
task.setProject( project );
task.setDestDir( destDirectory );
task.addFileset( fileSet );
task.execute();
final String destFilename =
destDirectory + File.separator + "com" + File.separator + "biz" + File.separator + "MyClass" + DefaultMetaClassAccessor.BINARY_EXT;
final File destFile = new File( destFilename );
assertTrue( "destFile.exists()", destFile.exists() );
final MetaClassIOBinary io = new MetaClassIOBinary();
final FileInputStream input = new FileInputStream( destFile );
final ClassDescriptor descriptor = io.deserializeClass( input );
assertEquals( "descriptor.name", "com.biz.MyClass", descriptor.getName() );
final Attribute[] classAttributes = descriptor.getAttributes();
assertEquals( "descriptor.attributes.length", 1, classAttributes.length );
final Attribute componentAttribute =
Attributes.getAttributeByName( classAttributes, "dna.component" );
assertNotNull( "dna.component", componentAttribute );
assertEquals( "descriptor.methods.length", 1, descriptor.getMethods().length );
final Attribute[] methodAttributes = descriptor.getMethods()[ 0 ].getAttributes();
assertEquals( "descriptor.methods[0].attributes.length",
2, methodAttributes.length );
final Attribute configAttribute =
Attributes.getAttributeByName( methodAttributes, "dna.configuration" );
assertNotNull( "dna.configuration", configAttribute );
assertEquals( "dna.configuration location",
"MyClass-schema.xml",
configAttribute.getParameter( "location" ) );
final Attribute dependencyAttribute =
Attributes.getAttributeByName( methodAttributes, "dna.dependency" );
assertNotNull( "dna.dependency", dependencyAttribute );
assertEquals( "dna.dependency type",
"java.lang.ClassLoader",
dependencyAttribute.getParameter( "type" ) );
assertEquals( "descriptor.fields.length", 0, descriptor.getFields().length );
}
private static final File generateDirectory()
throws IOException
{
final File baseDirectory = getBaseDirectory();
final File dir =
File.createTempFile( "mgtest", ".tmp", baseDirectory ).getCanonicalFile();
dir.delete();
dir.mkdirs();
assertTrue( "dir.exists()", dir.exists() );
return dir;
}
private static final File getBaseDirectory()
{
final String tempDir = System.getProperty( "java.io.tmpdir" );
final String baseDir = System.getProperty( "basedir", tempDir );
final File base = new File( baseDir ).getAbsoluteFile();
final String pathname =
base + File.separator + "target" + File.separator + "test-data";
final File dir = new File( pathname );
dir.mkdirs();
return dir;
}
}