adammurdoch 2002/06/23 03:45:54
Modified: antlib/src/java/org/apache/antlib/runtime
TypeAvailableCondition.java
Added: antlib/src/test/org/apache/antlib/runtime/test
type-available.ant
TypeAvailableConditionTestCase.java
Log:
<type-available> condition was not mapping role short name to long name.
Added some tests.
Revision Changes Path
1.4 +13 -2
jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/runtime/TypeAvailableCondition.java
Index: TypeAvailableCondition.java
===================================================================
RCS file:
/home/cvs/jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/runtime/TypeAvailableCondition.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TypeAvailableCondition.java 13 May 2002 09:52:30 -0000 1.3
+++ TypeAvailableCondition.java 23 Jun 2002 10:45:54 -0000 1.4
@@ -15,6 +15,8 @@
import org.apache.myrmidon.framework.conditions.Condition;
import org.apache.myrmidon.interfaces.type.TypeFactory;
import org.apache.myrmidon.interfaces.type.TypeManager;
+import org.apache.myrmidon.interfaces.role.RoleManager;
+import org.apache.myrmidon.interfaces.role.RoleInfo;
/**
* A condition that evaluates to true if a particular type is available.
@@ -71,9 +73,18 @@
m_roleName = DataType.ROLE;
}
+ // Lookup the role
+ final RoleManager roleManager = (RoleManager)context.getService(
RoleManager.class );
+ final RoleInfo role = roleManager.getRoleByShortName( m_roleName
);
+ if( role == null )
+ {
+ // No such role
+ return false;
+ }
+
// Lookup the type
final TypeManager typeManager = (TypeManager)context.getService(
TypeManager.class );
- final TypeFactory typeFactory = typeManager.getFactory(
m_roleName );
+ final TypeFactory typeFactory = typeManager.getFactory(
role.getInterfaceName() );
// Check if the type is available
return typeFactory.canCreate( m_typeName );
1.1
jakarta-ant-myrmidon/antlib/src/test/org/apache/antlib/runtime/test/type-available.ant
Index: type-available.ant
===================================================================
<project version="2.0">
<target name="test-self">
<assert>
<type-available role="condition" name="type-available"/>
</assert>
</target>
<target name="unknown-role">
<assert expected="false">
<type-available role="some-unknown-role" name="some-type"/>
</assert>
</target>
<target name="unknown-type">
<assert expected="false">
<type-available role="task" name="some-unknown-type"/>
</assert>
</target>
<target name="validate">
<expect-error>
<exc>No type name was specified.</exc>
<tasks>
<assert>
<type-available/>
</assert>
</tasks>
</expect-error>
</target>
</project>
1.1
jakarta-ant-myrmidon/antlib/src/test/org/apache/antlib/runtime/test/TypeAvailableConditionTestCase.java
Index: TypeAvailableConditionTestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.antlib.runtime.test;
import org.apache.antlib.AbstractProjectTestCase;
import java.io.File;
/**
* Test cases for the <type-available> condition.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adam Murdoch</a>
* @version $Revision: 1.1 $ $Date: 2002/06/23 10:45:54 $
*/
public class TypeAvailableConditionTestCase
extends AbstractProjectTestCase
{
public TypeAvailableConditionTestCase( final String name )
{
super( name );
}
public void testEvaluation() throws Exception
{
final File projectFile = getTestResource( "type-available.ant" );
executeTarget( projectFile, "test-self" );
executeTarget( projectFile, "unknown-role" );
executeTarget( projectFile, "unknown-type" );
executeTarget( projectFile, "validate" );
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>