Browse Source

Continued to refactor tests so that they are easier to maintain

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271751 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
02a2cffe8f
28 changed files with 254 additions and 962 deletions
  1. +0
    -23
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTest4.java
  2. +0
    -32
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestInterfaceProp.java
  3. +0
    -83
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestMultiSetter.java
  4. +0
    -25
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestMultiTypedAdder.java
  5. +0
    -46
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestObjectProps.java
  6. +0
    -46
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestPrimConvert.java
  7. +0
    -61
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestStringProps.java
  8. +0
    -33
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestTypedConfigProp.java
  9. +0
    -32
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestTypedProp.java
  10. +104
    -92
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/DefaultConfigurerTest.java
  11. +3
    -3
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/data/ConfigTestConfigAdder.java
  12. +0
    -2
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/data/ConfigTestIgnoreStringMethods.java
  13. +20
    -0
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/data/ConfigTestNestedErrors.java
  14. +0
    -3
      proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/data/ConfigTestReferenceConversion.java
  15. +0
    -23
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTest4.java
  16. +0
    -32
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestInterfaceProp.java
  17. +0
    -83
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestMultiSetter.java
  18. +0
    -25
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestMultiTypedAdder.java
  19. +0
    -46
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestObjectProps.java
  20. +0
    -46
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestPrimConvert.java
  21. +0
    -61
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestStringProps.java
  22. +0
    -33
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestTypedConfigProp.java
  23. +0
    -32
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestTypedProp.java
  24. +104
    -92
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/DefaultConfigurerTest.java
  25. +3
    -3
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/data/ConfigTestConfigAdder.java
  26. +0
    -2
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/data/ConfigTestIgnoreStringMethods.java
  27. +20
    -0
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/data/ConfigTestNestedErrors.java
  28. +0
    -3
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/data/ConfigTestReferenceConversion.java

+ 0
- 23
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTest4.java View File

@@ -1,23 +0,0 @@
/*
* 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.myrmidon.components.configurer;

/**
* Simple class to test typed adder.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTest4
{
public void add( final Integer integer )
{
System.out.println( "This should not have been called as " +
"Integer is not an interface" );
}
}

+ 0
- 32
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestInterfaceProp.java View File

@@ -1,32 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;

/**
* A test class with an interface property.
*
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
* @version $Revision$ $Date$
*/
public class ConfigTestInterfaceProp
{
private final ArrayList m_elems = new ArrayList();

public void addPropA( final MyRole1 role1 )
{
m_elems.add( role1 );
}

public boolean equals( Object obj )
{
final ConfigTestInterfaceProp test = (ConfigTestInterfaceProp)obj;
return m_elems.equals( test.m_elems );
}
}

+ 0
- 83
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestMultiSetter.java View File

@@ -1,83 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;
import junit.framework.AssertionFailedError;

/**
* A test class with multiple setters/adders/creators for a property.
*
* @author Adam Murdoch
*/
public class ConfigTestMultiSetter
{
private ConfigTestStringProps m_prop1;
private ConfigTestStringProps m_prop2;
private ArrayList m_prop3 = new ArrayList();

public boolean equals( Object obj )
{
ConfigTestMultiSetter test = (ConfigTestMultiSetter)obj;
if( !DefaultConfigurerTest.equals( m_prop1, test.m_prop1 ) )
{
return false;
}
if( !DefaultConfigurerTest.equals( m_prop2, test.m_prop2 ) )
{
return false;
}
if( !m_prop3.equals( test.m_prop3 ) )
{
return false;
}
return true;
}

//
// Multiple setters
//

public void setProp1( final String value )
{
throw new AssertionFailedError();
}

public void setProp1( final ConfigTestStringProps value )
{
m_prop1 = value;
}

//
// Setter and Adder
//

public void addProp2( final String value )
{
throw new AssertionFailedError();
}

public void setProp2( final ConfigTestStringProps value )
{
m_prop2 = value;
}

//
// Multiple Adders
//

public void addProp3( final String value )
{
throw new AssertionFailedError();
}

public void addProp3( final ConfigTestStringProps value )
{
m_prop3.add( value );
}
}

+ 0
- 25
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestMultiTypedAdder.java View File

@@ -1,25 +0,0 @@
/*
* 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.myrmidon.components.configurer;

/**
* Simple class with more than one typed adder method.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTestMultiTypedAdder
{
public void add( final MyRole1 role1 )
{
}

public void add( final MyRole2 role2 )
{
}
}

+ 0
- 46
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestObjectProps.java View File

@@ -1,46 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;
import java.util.List;

/**
* A simple test class.
*
* @author Adam Murdoch
*/
public class ConfigTestObjectProps
{
ConfigTestStringProps m_prop;
List m_propList = new ArrayList();

public boolean equals( Object obj )
{
ConfigTestObjectProps test = (ConfigTestObjectProps)obj;
if( !DefaultConfigurerTest.equals( m_prop, test.m_prop ) )
{
return false;
}
if( !m_propList.equals( test.m_propList ) )
{
return false;
}
return true;
}

public void setProp( final ConfigTestStringProps test )
{
m_prop = test;
}

public void addAnotherProp( final ConfigTestStringProps test )
{
m_propList.add( test );
}
}

+ 0
- 46
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestPrimConvert.java View File

@@ -1,46 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import org.apache.myrmidon.components.AbstractComponentTest;

/**
* A class for testing conversion.
*
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
*/
public class ConfigTestPrimConvert
{
private int m_intProp;
private Integer m_integerProp;

public void setIntProp( final int intProp )
{
m_intProp = intProp;
}

public void setIntegerProp( final Integer integerProp )
{
m_integerProp = integerProp;
}

public boolean equals( Object obj )
{
ConfigTestPrimConvert test = (ConfigTestPrimConvert)obj;
if( m_intProp != test.m_intProp )
{
return false;
}
if( !AbstractComponentTest.equals( m_integerProp, test.m_integerProp ) )
{
return false;
}

return true;
}
}

+ 0
- 61
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestStringProps.java View File

@@ -1,61 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;
import java.util.List;
import org.apache.myrmidon.framework.DataType;

/**
* A simple test class with string properties.
*
* @author Adam Murdoch
*/
public class ConfigTestStringProps
implements DataType
{
private String m_someProp;
private List m_propList = new ArrayList();
private String m_content;

public boolean equals( final Object obj )
{
final ConfigTestStringProps test = (ConfigTestStringProps)obj;
if( !DefaultConfigurerTest.equals( m_someProp, test.m_someProp ) )
{
return false;
}
else if( !m_propList.equals( test.m_propList ) )
{
return false;
}
else if( !DefaultConfigurerTest.equals( m_content, test.m_content ) )
{
return false;
}
else
{
return true;
}
}

public void setSomeProp( final String value )
{
m_someProp = value;
}

public void addProp( final String value )
{
m_propList.add( value );
}

public void addContent( final String content )
{
m_content = content;
}
}

+ 0
- 33
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestTypedConfigProp.java View File

@@ -1,33 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;
import org.apache.avalon.framework.configuration.Configuration;

/**
* Simple class to test adder for Configurations.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTestTypedConfigProp
{
private ArrayList m_configurations = new ArrayList();

public void add( final Configuration configuration )
{
m_configurations.add( configuration );
}

public boolean equals( final Object object )
{
final ConfigTestTypedConfigProp other = (ConfigTestTypedConfigProp)object;
return m_configurations.equals( other.m_configurations );
}
}

+ 0
- 32
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestTypedProp.java View File

@@ -1,32 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;

/**
* Simple class to test typed adder.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTestTypedProp
{
private ArrayList m_roles = new ArrayList();

public void add( final MyRole1 role1 )
{
m_roles.add( role1 );
}

public boolean equals( final Object object )
{
final ConfigTestTypedProp other = (ConfigTestTypedProp)object;
return m_roles.equals( other.m_roles );
}
}

+ 104
- 92
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/DefaultConfigurerTest.java View File

@@ -13,8 +13,32 @@ import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.ExceptionUtil;
import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.components.AbstractComponentTest;
import org.apache.myrmidon.components.configurer.data.ConfigTestAttributeConvert;
import org.apache.myrmidon.components.configurer.data.ConfigTestContent;
import org.apache.myrmidon.components.configurer.data.ConfigTestEmpty;
import org.apache.myrmidon.components.configurer.data.ConfigTestInterfaceAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestNonInterfaceAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestPropResolution;
import org.apache.myrmidon.components.configurer.data.ConfigTestReferenceAttribute;
import org.apache.myrmidon.components.configurer.data.ConfigTestReferenceConversion;
import org.apache.myrmidon.components.configurer.data.ConfigTestReferenceElement;
import org.apache.myrmidon.components.configurer.data.ConfigTestSetAttribute;
import org.apache.myrmidon.components.configurer.data.ConfigTestSetElement;
import org.apache.myrmidon.components.configurer.data.ConfigTestMultipleTypedAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedAdderRole;
import org.apache.myrmidon.components.configurer.data.ConfigTestIgnoreStringMethods;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedAdderConversion;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedConfigAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestIdResolve;
import org.apache.myrmidon.components.configurer.data.ConfigTestUnknownReference;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedAdderReference;
import org.apache.myrmidon.components.configurer.data.ConfigTestMismatchedRefType;
import org.apache.myrmidon.components.configurer.data.ConfigTestConfigAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestNestedErrors;
import org.apache.myrmidon.components.workspace.DefaultTaskContext;
import org.apache.myrmidon.framework.DataType;
import org.apache.myrmidon.interfaces.configurer.Configurer;
@@ -69,15 +93,15 @@ public class DefaultConfigurerTest
final String value2 = "some other value";
config.setAttribute( "prop", value2 );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestSetAttribute test = new ConfigTestSetAttribute();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestStringProps expected = new ConfigTestStringProps();
final ConfigTestSetAttribute expected = new ConfigTestSetAttribute();
expected.setSomeProp( value1 );
expected.addProp( value2 );
expected.setProp( value2 );
assertEquals( expected, test );
}

@@ -95,13 +119,13 @@ public class DefaultConfigurerTest
// Register the converter
registerConverter( StringToIntegerConverter.class, String.class, Integer.class );

final ConfigTestPrimConvert test = new ConfigTestPrimConvert();
final ConfigTestAttributeConvert test = new ConfigTestAttributeConvert();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestPrimConvert expected = new ConfigTestPrimConvert();
final ConfigTestAttributeConvert expected = new ConfigTestAttributeConvert();
expected.setIntProp( 90 );
expected.setIntegerProp( new Integer( -401 ) );
assertEquals( expected, test );
@@ -117,7 +141,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "unknown", "some value" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestEmpty test = new ConfigTestEmpty();

// Configure the object
try
@@ -149,17 +173,17 @@ public class DefaultConfigurerTest
child2.setAttribute( "some-prop", value2 );
config.addChild( child2 );

final ConfigTestObjectProps test = new ConfigTestObjectProps();
final ConfigTestSetElement test = new ConfigTestSetElement();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestObjectProps expected = new ConfigTestObjectProps();
ConfigTestStringProps elem = new ConfigTestStringProps();
final ConfigTestSetElement expected = new ConfigTestSetElement();
ConfigTestSetElement elem = new ConfigTestSetElement();
elem.setSomeProp( value1 );
expected.setProp( elem );
elem = new ConfigTestStringProps();
expected.addProp( elem );
elem = new ConfigTestSetElement();
elem.setSomeProp( value2 );
expected.addAnotherProp( elem );
assertEquals( expected, test );
@@ -176,7 +200,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration elem = new DefaultConfiguration( "unknown", "test" );
config.addChild( elem );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestEmpty test = new ConfigTestEmpty();

// Configure the object
try
@@ -202,13 +226,13 @@ public class DefaultConfigurerTest
final String value1 = "some value";
config.setValue( value1 );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestContent test = new ConfigTestContent();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestStringProps expected = new ConfigTestStringProps();
final ConfigTestContent expected = new ConfigTestContent();
expected.addContent( value1 );
assertEquals( expected, test );
}
@@ -223,7 +247,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setValue( "some value" );

final ConfigTestObjectProps test = new ConfigTestObjectProps();
final ConfigTestEmpty test = new ConfigTestEmpty();

// Configure the object
try
@@ -248,7 +272,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "prop", "some ${prop-a} value" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestPropResolution test = new ConfigTestPropResolution();

m_context.setProperty( "prop-a", "other" );

@@ -256,8 +280,8 @@ public class DefaultConfigurerTest
m_configurer.configure( test, config, m_context );

// Check the configured object
final ConfigTestStringProps expected = new ConfigTestStringProps();
expected.addProp( "some other value" );
final ConfigTestPropResolution expected = new ConfigTestPropResolution();
expected.setProp( "some other value" );
assertEquals( expected, test );
}

@@ -270,7 +294,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "some-prop-ref", "prop-a" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestReferenceAttribute test = new ConfigTestReferenceAttribute();

m_context.setProperty( "prop-a", "some value" );

@@ -278,7 +302,7 @@ public class DefaultConfigurerTest
m_configurer.configure( test, config, m_context );

// Check the configured object
final ConfigTestStringProps expected = new ConfigTestStringProps();
final ConfigTestReferenceAttribute expected = new ConfigTestReferenceAttribute();
expected.setSomeProp( "some value" );
assertEquals( expected, test );
}
@@ -294,7 +318,7 @@ public class DefaultConfigurerTest
elem.setAttribute( "id", "prop-a" );
config.addChild( elem );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestReferenceElement test = new ConfigTestReferenceElement();

m_context.setProperty( "prop-a", "some value" );

@@ -302,8 +326,8 @@ public class DefaultConfigurerTest
m_configurer.configure( test, config, m_context );

// Check the configured object
final ConfigTestStringProps expected = new ConfigTestStringProps();
expected.setSomeProp( "some value" );
final ConfigTestReferenceElement expected = new ConfigTestReferenceElement();
expected.addSomeProp( "some value" );
assertEquals( expected, test );
}

@@ -320,7 +344,7 @@ public class DefaultConfigurerTest
elem.setAttribute( "extra-attr", "some value" );
config.addChild( elem );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestReferenceElement test = new ConfigTestReferenceElement();

try
{
@@ -330,7 +354,8 @@ public class DefaultConfigurerTest
}
catch( ConfigurationException e )
{
final String[] messages = {
final String[] messages = new String[]
{
REZ.getString( "bad-configure-element.error", "some-prop-ref" ),
REZ.getString( "extra-config-for-ref.error" )
};
@@ -352,14 +377,14 @@ public class DefaultConfigurerTest

registerConverter( ObjectToMyRole1Converter.class, Object.class, MyRole1.class );

final ConfigTestInterfaceProp test = new ConfigTestInterfaceProp();
final ConfigTestReferenceConversion test = new ConfigTestReferenceConversion();

// Configure
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestInterfaceProp expected = new ConfigTestInterfaceProp();
expected.addPropA( new MyRole1Adaptor( refValue ) );
final ConfigTestReferenceConversion expected = new ConfigTestReferenceConversion();
expected.setPropA( new MyRole1Adaptor( refValue ) );
assertEquals( expected, test );
}

@@ -378,13 +403,13 @@ public class DefaultConfigurerTest
registerRole( new RoleInfo( "myrole1", null, MyRole1.class, "default-type" ) );
registerType( MyRole1.class, "default-type", MyType1.class );

final ConfigTestInterfaceProp test = new ConfigTestInterfaceProp();
final ConfigTestInterfaceAdder test = new ConfigTestInterfaceAdder();

// Configure object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestInterfaceProp expected = new ConfigTestInterfaceProp();
final ConfigTestInterfaceAdder expected = new ConfigTestInterfaceAdder();
expected.addPropA( new MyType1() );
assertEquals( expected, test );
}
@@ -399,7 +424,7 @@ public class DefaultConfigurerTest
// Setup test data
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );

final ConfigTest4 test = new ConfigTest4();
final ConfigTestNonInterfaceAdder test = new ConfigTestNonInterfaceAdder();

try
{
@@ -412,7 +437,7 @@ public class DefaultConfigurerTest
final String[] messages = {
REZ.getString( "bad-configure-element.error", "test" ),
REZ.getString( "typed-adder-non-interface.error",
ConfigTest4.class.getName(),
ConfigTestNonInterfaceAdder.class.getName(),
Integer.class.getName() )
};
assertSameMessage( messages, ce );
@@ -428,7 +453,7 @@ public class DefaultConfigurerTest
// Setup test data
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );

final ConfigTestMultiTypedAdder test = new ConfigTestMultiTypedAdder();
final ConfigTestMultipleTypedAdder test = new ConfigTestMultipleTypedAdder();

try
{
@@ -438,10 +463,11 @@ public class DefaultConfigurerTest
}
catch( final ConfigurationException ce )
{
final String[] messages = {
final String[] messages = new String[]
{
REZ.getString( "bad-configure-element.error", "test" ),
REZ.getString( "multiple-adder-methods-for-element.error",
ConfigTestMultiTypedAdder.class.getName(),
ConfigTestMultipleTypedAdder.class.getName(),
"" )
};
assertSameMessage( messages, ce );
@@ -464,12 +490,12 @@ public class DefaultConfigurerTest
registerType( DataType.class, "my-type1", MyType1.class );
registerType( DataType.class, "my-type2", MyType2.class );

final ConfigTestTypedProp test = new ConfigTestTypedProp();
final ConfigTestTypedAdder test = new ConfigTestTypedAdder();

// Configure the object
m_configurer.configure( test, config, m_context );

final ConfigTestTypedProp expected = new ConfigTestTypedProp();
final ConfigTestTypedAdder expected = new ConfigTestTypedAdder();
expected.add( new MyType1() );
expected.add( new MyType2() );
assertEquals( expected, test );
@@ -491,13 +517,13 @@ public class DefaultConfigurerTest
registerType( MyRole1.class, "my-type1", MyType1.class );
registerType( DataType.class, "my-type1", StringBuffer.class );

final ConfigTestTypedProp test = new ConfigTestTypedProp();
final ConfigTestTypedAdderRole test = new ConfigTestTypedAdderRole();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check the result
final ConfigTestTypedProp expected = new ConfigTestTypedProp();
final ConfigTestTypedAdderRole expected = new ConfigTestTypedAdderRole();
expected.add( new MyType1() );
assertEquals( expected, test );
}
@@ -514,45 +540,35 @@ public class DefaultConfigurerTest
child.setAttribute( "prop", "some value" );
config.addChild( child );

registerType( DataType.class, "some-type", ConfigTestStringProps.class );
registerType( DataType.class, "some-type", ConfigTestTypedAdderConversion.class );
registerConverter( ObjectToMyRole1Converter.class, Object.class, MyRole1.class );

final ConfigTestTypedProp test = new ConfigTestTypedProp();
final ConfigTestTypedAdderConversion test = new ConfigTestTypedAdderConversion();

// Configure the object
m_configurer.configure( test, config, m_context );
configure( test, config );

// Check the result
final ConfigTestTypedProp expected = new ConfigTestTypedProp();
final ConfigTestStringProps nested = new ConfigTestStringProps();
nested.addProp( "some value" );
final ConfigTestTypedAdderConversion expected = new ConfigTestTypedAdderConversion();
final ConfigTestTypedAdderConversion nested = new ConfigTestTypedAdderConversion();
nested.setProp( "some value" );
expected.add( new MyRole1Adaptor( nested ) );
assertEquals( expected, test );
}

/**
* Tests to see if typed adder can be used via an attribute.
*/
public void testTypedAdderAttribute()
throws Exception
private void configure( final Object test,
final DefaultConfiguration config )
throws ConfigurationException
{
// Setup test data
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "my-role1", "some value" );

// Set up the converter and role
registerRole( new RoleInfo( "my-role1", MyRole1.class ) );
registerConverter( ObjectToMyRole1Converter.class, String.class, MyRole1.class );

final ConfigTestTypedProp test = new ConfigTestTypedProp();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestTypedProp expected = new ConfigTestTypedProp();
expected.add( new MyRole1Adaptor( "some value" ) );
assertEquals( expected, test );
try
{
m_configurer.configure( test, config, m_context );
}
catch( final ConfigurationException ce )
{
ExceptionUtil.printStackTrace( ce );
throw ce;
}
}

/**
@@ -568,12 +584,12 @@ public class DefaultConfigurerTest
config.addChild( child1 );
config.addChild( child2 );

final ConfigTestTypedConfigProp test = new ConfigTestTypedConfigProp();
final ConfigTestTypedConfigAdder test = new ConfigTestTypedConfigAdder();

// Configure the object
m_configurer.configure( test, config, m_context );

final ConfigTestTypedConfigProp expected = new ConfigTestTypedConfigProp();
final ConfigTestTypedConfigAdder expected = new ConfigTestTypedConfigAdder();
expected.add( child1 );
expected.add( child2 );
assertEquals( expected, test );
@@ -592,12 +608,12 @@ public class DefaultConfigurerTest
config.addChild( child1 );
config.addChild( child2 );

final ConfigTestConfigProps test = new ConfigTestConfigProps();
final ConfigTestConfigAdder test = new ConfigTestConfigAdder();

// Configure the object
m_configurer.configure( test, config, m_context );

final ConfigTestConfigProps expected = new ConfigTestConfigProps();
final ConfigTestConfigAdder expected = new ConfigTestConfigAdder();
expected.addConfig( child1 );
expected.addConfig( child2 );
assertEquals( expected, test );
@@ -632,16 +648,16 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "some-prop-ref", "${id}" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestIdResolve test = new ConfigTestIdResolve();

m_context.setProperty( "id", "prop-a" );
m_context.setProperty( "prop-a", "some indirect value" );

// Configure the object
m_configurer.configure( test, config, m_context );
configure( test, config );

// Check the configured object
final ConfigTestStringProps expected = new ConfigTestStringProps();
final ConfigTestIdResolve expected = new ConfigTestIdResolve();
expected.setSomeProp( "some indirect value" );
assertEquals( expected, test );
}
@@ -656,7 +672,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "some-prop-ref", "unknown-prop" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestUnknownReference test = new ConfigTestUnknownReference();

// Configure the object
try
@@ -666,7 +682,8 @@ public class DefaultConfigurerTest
}
catch( ConfigurationException e )
{
final String[] messages = {
final String[] messages = new String[]
{
REZ.getString( "bad-set-attribute.error", "test", "some-prop-ref" ),
REZ.getString( "unknown-reference.error", "unknown-prop" )
};
@@ -684,9 +701,9 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "some-prop-ref", "prop-a" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestMismatchedRefType test = new ConfigTestMismatchedRefType();

m_context.setProperty( "prop-a", new ConfigTestObjectProps() );
m_context.setProperty( "prop-a", new Integer( 23 ) );

// Configure the object
try
@@ -696,7 +713,8 @@ public class DefaultConfigurerTest
}
catch( ConfigurationException e )
{
final String[] messages = {
final String[] messages = new String[]
{
REZ.getString( "bad-set-attribute.error", "test", "some-prop-ref" ),
REZ.getString( "mismatch-ref-types.error",
"prop-a",
@@ -715,24 +733,21 @@ public class DefaultConfigurerTest
{
// Setup test data
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "my-role1-ref", "id" );
final DefaultConfiguration child = new DefaultConfiguration( "my-role1-ref", "test" );
child.setAttribute( "id", "id2" );
config.addChild( child );

// Add role mapping, and add to reference to context
registerRole( new RoleInfo( "my-role1", MyRole1.class ) );
m_context.setProperty( "id", new MyType1() );
m_context.setProperty( "id2", new MyType2() );

final ConfigTestTypedProp test = new ConfigTestTypedProp();
final ConfigTestTypedAdderReference test = new ConfigTestTypedAdderReference();

// Configure the object
m_configurer.configure( test, config, m_context );

// Compare against expected value
final ConfigTestTypedProp expected = new ConfigTestTypedProp();
expected.add( new MyType1() );
final ConfigTestTypedAdderReference expected = new ConfigTestTypedAdderReference();
expected.add( new MyType2() );
assertEquals( expected, test );
}
@@ -748,7 +763,7 @@ public class DefaultConfigurerTest
elem.setAttribute( "not-a-prop", "not-a-value" );
config.addChild( elem );

final ConfigTestObjectProps test = new ConfigTestObjectProps();
final ConfigTestNestedErrors test = new ConfigTestNestedErrors();

try
{
@@ -778,19 +793,16 @@ public class DefaultConfigurerTest
config.addChild( elem );
elem = new DefaultConfiguration( "prop2", "test" );
config.addChild( elem );
elem = new DefaultConfiguration( "prop3", "test" );
config.addChild( elem );

final ConfigTestMultiSetter test = new ConfigTestMultiSetter();
final ConfigTestIgnoreStringMethods test = new ConfigTestIgnoreStringMethods();

// Configure the object
m_configurer.configure( test, config, m_context );

// Test expected value
final ConfigTestMultiSetter expected = new ConfigTestMultiSetter();
expected.setProp1( new ConfigTestStringProps() );
expected.setProp2( new ConfigTestStringProps() );
expected.addProp3( new ConfigTestStringProps() );
final ConfigTestIgnoreStringMethods expected = new ConfigTestIgnoreStringMethods();
expected.addProp1( new ConfigTestIgnoreStringMethods() );
expected.addProp2( new ConfigTestIgnoreStringMethods() );
assertEquals( expected, test );
}
}

proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/ConfigTestConfigProps.java → proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/data/ConfigTestConfigAdder.java View File

@@ -5,7 +5,7 @@
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.myrmidon.components.configurer;
package org.apache.myrmidon.components.configurer.data;

import java.util.ArrayList;
import org.apache.avalon.framework.configuration.Configuration;
@@ -16,7 +16,7 @@ import org.apache.avalon.framework.configuration.Configuration;
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTestConfigProps
public class ConfigTestConfigAdder
{
private ArrayList m_configurations = new ArrayList();

@@ -27,7 +27,7 @@ public class ConfigTestConfigProps

public boolean equals( final Object object )
{
final ConfigTestConfigProps other = (ConfigTestConfigProps)object;
final ConfigTestConfigAdder other = (ConfigTestConfigAdder)object;
return m_configurations.equals( other.m_configurations );
}
}

+ 0
- 2
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/data/ConfigTestIgnoreStringMethods.java View File

@@ -9,9 +9,7 @@ package org.apache.myrmidon.components.configurer.data;

import java.util.ArrayList;
import junit.framework.AssertionFailedError;
import org.apache.myrmidon.components.configurer.ConfigTestStringProps;
import org.apache.myrmidon.components.configurer.DefaultConfigurerTest;
import org.apache.myrmidon.components.configurer.ConfigTestMultiSetter;

/**
* A test class with multiple setters/adders/creators for a property.


+ 20
- 0
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/data/ConfigTestNestedErrors.java View File

@@ -0,0 +1,20 @@
/*
* 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.myrmidon.components.configurer.data;

/**
* A simple test class.
*
* @author Adam Murdoch
*/
public class ConfigTestNestedErrors
{
public void addProp( final ConfigTestEmpty test )
{
}
}

+ 0
- 3
proposal/myrmidon/src/test/org/apache/myrmidon/components/configurer/data/ConfigTestReferenceConversion.java View File

@@ -8,10 +8,7 @@
package org.apache.myrmidon.components.configurer.data;

import java.util.ArrayList;
import java.util.List;
import org.apache.myrmidon.components.configurer.DefaultConfigurerTest;
import org.apache.myrmidon.components.configurer.MyRole1;
import org.apache.myrmidon.components.configurer.ConfigTestInterfaceProp;

/**
* A simple test class.


+ 0
- 23
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTest4.java View File

@@ -1,23 +0,0 @@
/*
* 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.myrmidon.components.configurer;

/**
* Simple class to test typed adder.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTest4
{
public void add( final Integer integer )
{
System.out.println( "This should not have been called as " +
"Integer is not an interface" );
}
}

+ 0
- 32
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestInterfaceProp.java View File

@@ -1,32 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;

/**
* A test class with an interface property.
*
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
* @version $Revision$ $Date$
*/
public class ConfigTestInterfaceProp
{
private final ArrayList m_elems = new ArrayList();

public void addPropA( final MyRole1 role1 )
{
m_elems.add( role1 );
}

public boolean equals( Object obj )
{
final ConfigTestInterfaceProp test = (ConfigTestInterfaceProp)obj;
return m_elems.equals( test.m_elems );
}
}

+ 0
- 83
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestMultiSetter.java View File

@@ -1,83 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;
import junit.framework.AssertionFailedError;

/**
* A test class with multiple setters/adders/creators for a property.
*
* @author Adam Murdoch
*/
public class ConfigTestMultiSetter
{
private ConfigTestStringProps m_prop1;
private ConfigTestStringProps m_prop2;
private ArrayList m_prop3 = new ArrayList();

public boolean equals( Object obj )
{
ConfigTestMultiSetter test = (ConfigTestMultiSetter)obj;
if( !DefaultConfigurerTest.equals( m_prop1, test.m_prop1 ) )
{
return false;
}
if( !DefaultConfigurerTest.equals( m_prop2, test.m_prop2 ) )
{
return false;
}
if( !m_prop3.equals( test.m_prop3 ) )
{
return false;
}
return true;
}

//
// Multiple setters
//

public void setProp1( final String value )
{
throw new AssertionFailedError();
}

public void setProp1( final ConfigTestStringProps value )
{
m_prop1 = value;
}

//
// Setter and Adder
//

public void addProp2( final String value )
{
throw new AssertionFailedError();
}

public void setProp2( final ConfigTestStringProps value )
{
m_prop2 = value;
}

//
// Multiple Adders
//

public void addProp3( final String value )
{
throw new AssertionFailedError();
}

public void addProp3( final ConfigTestStringProps value )
{
m_prop3.add( value );
}
}

+ 0
- 25
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestMultiTypedAdder.java View File

@@ -1,25 +0,0 @@
/*
* 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.myrmidon.components.configurer;

/**
* Simple class with more than one typed adder method.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTestMultiTypedAdder
{
public void add( final MyRole1 role1 )
{
}

public void add( final MyRole2 role2 )
{
}
}

+ 0
- 46
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestObjectProps.java View File

@@ -1,46 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;
import java.util.List;

/**
* A simple test class.
*
* @author Adam Murdoch
*/
public class ConfigTestObjectProps
{
ConfigTestStringProps m_prop;
List m_propList = new ArrayList();

public boolean equals( Object obj )
{
ConfigTestObjectProps test = (ConfigTestObjectProps)obj;
if( !DefaultConfigurerTest.equals( m_prop, test.m_prop ) )
{
return false;
}
if( !m_propList.equals( test.m_propList ) )
{
return false;
}
return true;
}

public void setProp( final ConfigTestStringProps test )
{
m_prop = test;
}

public void addAnotherProp( final ConfigTestStringProps test )
{
m_propList.add( test );
}
}

+ 0
- 46
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestPrimConvert.java View File

@@ -1,46 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import org.apache.myrmidon.components.AbstractComponentTest;

/**
* A class for testing conversion.
*
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
*/
public class ConfigTestPrimConvert
{
private int m_intProp;
private Integer m_integerProp;

public void setIntProp( final int intProp )
{
m_intProp = intProp;
}

public void setIntegerProp( final Integer integerProp )
{
m_integerProp = integerProp;
}

public boolean equals( Object obj )
{
ConfigTestPrimConvert test = (ConfigTestPrimConvert)obj;
if( m_intProp != test.m_intProp )
{
return false;
}
if( !AbstractComponentTest.equals( m_integerProp, test.m_integerProp ) )
{
return false;
}

return true;
}
}

+ 0
- 61
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestStringProps.java View File

@@ -1,61 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;
import java.util.List;
import org.apache.myrmidon.framework.DataType;

/**
* A simple test class with string properties.
*
* @author Adam Murdoch
*/
public class ConfigTestStringProps
implements DataType
{
private String m_someProp;
private List m_propList = new ArrayList();
private String m_content;

public boolean equals( final Object obj )
{
final ConfigTestStringProps test = (ConfigTestStringProps)obj;
if( !DefaultConfigurerTest.equals( m_someProp, test.m_someProp ) )
{
return false;
}
else if( !m_propList.equals( test.m_propList ) )
{
return false;
}
else if( !DefaultConfigurerTest.equals( m_content, test.m_content ) )
{
return false;
}
else
{
return true;
}
}

public void setSomeProp( final String value )
{
m_someProp = value;
}

public void addProp( final String value )
{
m_propList.add( value );
}

public void addContent( final String content )
{
m_content = content;
}
}

+ 0
- 33
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestTypedConfigProp.java View File

@@ -1,33 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;
import org.apache.avalon.framework.configuration.Configuration;

/**
* Simple class to test adder for Configurations.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTestTypedConfigProp
{
private ArrayList m_configurations = new ArrayList();

public void add( final Configuration configuration )
{
m_configurations.add( configuration );
}

public boolean equals( final Object object )
{
final ConfigTestTypedConfigProp other = (ConfigTestTypedConfigProp)object;
return m_configurations.equals( other.m_configurations );
}
}

+ 0
- 32
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestTypedProp.java View File

@@ -1,32 +0,0 @@
/*
* 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.myrmidon.components.configurer;

import java.util.ArrayList;

/**
* Simple class to test typed adder.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTestTypedProp
{
private ArrayList m_roles = new ArrayList();

public void add( final MyRole1 role1 )
{
m_roles.add( role1 );
}

public boolean equals( final Object object )
{
final ConfigTestTypedProp other = (ConfigTestTypedProp)object;
return m_roles.equals( other.m_roles );
}
}

+ 104
- 92
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/DefaultConfigurerTest.java View File

@@ -13,8 +13,32 @@ import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.ExceptionUtil;
import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.components.AbstractComponentTest;
import org.apache.myrmidon.components.configurer.data.ConfigTestAttributeConvert;
import org.apache.myrmidon.components.configurer.data.ConfigTestContent;
import org.apache.myrmidon.components.configurer.data.ConfigTestEmpty;
import org.apache.myrmidon.components.configurer.data.ConfigTestInterfaceAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestNonInterfaceAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestPropResolution;
import org.apache.myrmidon.components.configurer.data.ConfigTestReferenceAttribute;
import org.apache.myrmidon.components.configurer.data.ConfigTestReferenceConversion;
import org.apache.myrmidon.components.configurer.data.ConfigTestReferenceElement;
import org.apache.myrmidon.components.configurer.data.ConfigTestSetAttribute;
import org.apache.myrmidon.components.configurer.data.ConfigTestSetElement;
import org.apache.myrmidon.components.configurer.data.ConfigTestMultipleTypedAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedAdderRole;
import org.apache.myrmidon.components.configurer.data.ConfigTestIgnoreStringMethods;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedAdderConversion;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedConfigAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestIdResolve;
import org.apache.myrmidon.components.configurer.data.ConfigTestUnknownReference;
import org.apache.myrmidon.components.configurer.data.ConfigTestTypedAdderReference;
import org.apache.myrmidon.components.configurer.data.ConfigTestMismatchedRefType;
import org.apache.myrmidon.components.configurer.data.ConfigTestConfigAdder;
import org.apache.myrmidon.components.configurer.data.ConfigTestNestedErrors;
import org.apache.myrmidon.components.workspace.DefaultTaskContext;
import org.apache.myrmidon.framework.DataType;
import org.apache.myrmidon.interfaces.configurer.Configurer;
@@ -69,15 +93,15 @@ public class DefaultConfigurerTest
final String value2 = "some other value";
config.setAttribute( "prop", value2 );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestSetAttribute test = new ConfigTestSetAttribute();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestStringProps expected = new ConfigTestStringProps();
final ConfigTestSetAttribute expected = new ConfigTestSetAttribute();
expected.setSomeProp( value1 );
expected.addProp( value2 );
expected.setProp( value2 );
assertEquals( expected, test );
}

@@ -95,13 +119,13 @@ public class DefaultConfigurerTest
// Register the converter
registerConverter( StringToIntegerConverter.class, String.class, Integer.class );

final ConfigTestPrimConvert test = new ConfigTestPrimConvert();
final ConfigTestAttributeConvert test = new ConfigTestAttributeConvert();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestPrimConvert expected = new ConfigTestPrimConvert();
final ConfigTestAttributeConvert expected = new ConfigTestAttributeConvert();
expected.setIntProp( 90 );
expected.setIntegerProp( new Integer( -401 ) );
assertEquals( expected, test );
@@ -117,7 +141,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "unknown", "some value" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestEmpty test = new ConfigTestEmpty();

// Configure the object
try
@@ -149,17 +173,17 @@ public class DefaultConfigurerTest
child2.setAttribute( "some-prop", value2 );
config.addChild( child2 );

final ConfigTestObjectProps test = new ConfigTestObjectProps();
final ConfigTestSetElement test = new ConfigTestSetElement();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestObjectProps expected = new ConfigTestObjectProps();
ConfigTestStringProps elem = new ConfigTestStringProps();
final ConfigTestSetElement expected = new ConfigTestSetElement();
ConfigTestSetElement elem = new ConfigTestSetElement();
elem.setSomeProp( value1 );
expected.setProp( elem );
elem = new ConfigTestStringProps();
expected.addProp( elem );
elem = new ConfigTestSetElement();
elem.setSomeProp( value2 );
expected.addAnotherProp( elem );
assertEquals( expected, test );
@@ -176,7 +200,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration elem = new DefaultConfiguration( "unknown", "test" );
config.addChild( elem );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestEmpty test = new ConfigTestEmpty();

// Configure the object
try
@@ -202,13 +226,13 @@ public class DefaultConfigurerTest
final String value1 = "some value";
config.setValue( value1 );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestContent test = new ConfigTestContent();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestStringProps expected = new ConfigTestStringProps();
final ConfigTestContent expected = new ConfigTestContent();
expected.addContent( value1 );
assertEquals( expected, test );
}
@@ -223,7 +247,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setValue( "some value" );

final ConfigTestObjectProps test = new ConfigTestObjectProps();
final ConfigTestEmpty test = new ConfigTestEmpty();

// Configure the object
try
@@ -248,7 +272,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "prop", "some ${prop-a} value" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestPropResolution test = new ConfigTestPropResolution();

m_context.setProperty( "prop-a", "other" );

@@ -256,8 +280,8 @@ public class DefaultConfigurerTest
m_configurer.configure( test, config, m_context );

// Check the configured object
final ConfigTestStringProps expected = new ConfigTestStringProps();
expected.addProp( "some other value" );
final ConfigTestPropResolution expected = new ConfigTestPropResolution();
expected.setProp( "some other value" );
assertEquals( expected, test );
}

@@ -270,7 +294,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "some-prop-ref", "prop-a" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestReferenceAttribute test = new ConfigTestReferenceAttribute();

m_context.setProperty( "prop-a", "some value" );

@@ -278,7 +302,7 @@ public class DefaultConfigurerTest
m_configurer.configure( test, config, m_context );

// Check the configured object
final ConfigTestStringProps expected = new ConfigTestStringProps();
final ConfigTestReferenceAttribute expected = new ConfigTestReferenceAttribute();
expected.setSomeProp( "some value" );
assertEquals( expected, test );
}
@@ -294,7 +318,7 @@ public class DefaultConfigurerTest
elem.setAttribute( "id", "prop-a" );
config.addChild( elem );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestReferenceElement test = new ConfigTestReferenceElement();

m_context.setProperty( "prop-a", "some value" );

@@ -302,8 +326,8 @@ public class DefaultConfigurerTest
m_configurer.configure( test, config, m_context );

// Check the configured object
final ConfigTestStringProps expected = new ConfigTestStringProps();
expected.setSomeProp( "some value" );
final ConfigTestReferenceElement expected = new ConfigTestReferenceElement();
expected.addSomeProp( "some value" );
assertEquals( expected, test );
}

@@ -320,7 +344,7 @@ public class DefaultConfigurerTest
elem.setAttribute( "extra-attr", "some value" );
config.addChild( elem );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestReferenceElement test = new ConfigTestReferenceElement();

try
{
@@ -330,7 +354,8 @@ public class DefaultConfigurerTest
}
catch( ConfigurationException e )
{
final String[] messages = {
final String[] messages = new String[]
{
REZ.getString( "bad-configure-element.error", "some-prop-ref" ),
REZ.getString( "extra-config-for-ref.error" )
};
@@ -352,14 +377,14 @@ public class DefaultConfigurerTest

registerConverter( ObjectToMyRole1Converter.class, Object.class, MyRole1.class );

final ConfigTestInterfaceProp test = new ConfigTestInterfaceProp();
final ConfigTestReferenceConversion test = new ConfigTestReferenceConversion();

// Configure
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestInterfaceProp expected = new ConfigTestInterfaceProp();
expected.addPropA( new MyRole1Adaptor( refValue ) );
final ConfigTestReferenceConversion expected = new ConfigTestReferenceConversion();
expected.setPropA( new MyRole1Adaptor( refValue ) );
assertEquals( expected, test );
}

@@ -378,13 +403,13 @@ public class DefaultConfigurerTest
registerRole( new RoleInfo( "myrole1", null, MyRole1.class, "default-type" ) );
registerType( MyRole1.class, "default-type", MyType1.class );

final ConfigTestInterfaceProp test = new ConfigTestInterfaceProp();
final ConfigTestInterfaceAdder test = new ConfigTestInterfaceAdder();

// Configure object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestInterfaceProp expected = new ConfigTestInterfaceProp();
final ConfigTestInterfaceAdder expected = new ConfigTestInterfaceAdder();
expected.addPropA( new MyType1() );
assertEquals( expected, test );
}
@@ -399,7 +424,7 @@ public class DefaultConfigurerTest
// Setup test data
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );

final ConfigTest4 test = new ConfigTest4();
final ConfigTestNonInterfaceAdder test = new ConfigTestNonInterfaceAdder();

try
{
@@ -412,7 +437,7 @@ public class DefaultConfigurerTest
final String[] messages = {
REZ.getString( "bad-configure-element.error", "test" ),
REZ.getString( "typed-adder-non-interface.error",
ConfigTest4.class.getName(),
ConfigTestNonInterfaceAdder.class.getName(),
Integer.class.getName() )
};
assertSameMessage( messages, ce );
@@ -428,7 +453,7 @@ public class DefaultConfigurerTest
// Setup test data
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );

final ConfigTestMultiTypedAdder test = new ConfigTestMultiTypedAdder();
final ConfigTestMultipleTypedAdder test = new ConfigTestMultipleTypedAdder();

try
{
@@ -438,10 +463,11 @@ public class DefaultConfigurerTest
}
catch( final ConfigurationException ce )
{
final String[] messages = {
final String[] messages = new String[]
{
REZ.getString( "bad-configure-element.error", "test" ),
REZ.getString( "multiple-adder-methods-for-element.error",
ConfigTestMultiTypedAdder.class.getName(),
ConfigTestMultipleTypedAdder.class.getName(),
"" )
};
assertSameMessage( messages, ce );
@@ -464,12 +490,12 @@ public class DefaultConfigurerTest
registerType( DataType.class, "my-type1", MyType1.class );
registerType( DataType.class, "my-type2", MyType2.class );

final ConfigTestTypedProp test = new ConfigTestTypedProp();
final ConfigTestTypedAdder test = new ConfigTestTypedAdder();

// Configure the object
m_configurer.configure( test, config, m_context );

final ConfigTestTypedProp expected = new ConfigTestTypedProp();
final ConfigTestTypedAdder expected = new ConfigTestTypedAdder();
expected.add( new MyType1() );
expected.add( new MyType2() );
assertEquals( expected, test );
@@ -491,13 +517,13 @@ public class DefaultConfigurerTest
registerType( MyRole1.class, "my-type1", MyType1.class );
registerType( DataType.class, "my-type1", StringBuffer.class );

final ConfigTestTypedProp test = new ConfigTestTypedProp();
final ConfigTestTypedAdderRole test = new ConfigTestTypedAdderRole();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check the result
final ConfigTestTypedProp expected = new ConfigTestTypedProp();
final ConfigTestTypedAdderRole expected = new ConfigTestTypedAdderRole();
expected.add( new MyType1() );
assertEquals( expected, test );
}
@@ -514,45 +540,35 @@ public class DefaultConfigurerTest
child.setAttribute( "prop", "some value" );
config.addChild( child );

registerType( DataType.class, "some-type", ConfigTestStringProps.class );
registerType( DataType.class, "some-type", ConfigTestTypedAdderConversion.class );
registerConverter( ObjectToMyRole1Converter.class, Object.class, MyRole1.class );

final ConfigTestTypedProp test = new ConfigTestTypedProp();
final ConfigTestTypedAdderConversion test = new ConfigTestTypedAdderConversion();

// Configure the object
m_configurer.configure( test, config, m_context );
configure( test, config );

// Check the result
final ConfigTestTypedProp expected = new ConfigTestTypedProp();
final ConfigTestStringProps nested = new ConfigTestStringProps();
nested.addProp( "some value" );
final ConfigTestTypedAdderConversion expected = new ConfigTestTypedAdderConversion();
final ConfigTestTypedAdderConversion nested = new ConfigTestTypedAdderConversion();
nested.setProp( "some value" );
expected.add( new MyRole1Adaptor( nested ) );
assertEquals( expected, test );
}

/**
* Tests to see if typed adder can be used via an attribute.
*/
public void testTypedAdderAttribute()
throws Exception
private void configure( final Object test,
final DefaultConfiguration config )
throws ConfigurationException
{
// Setup test data
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "my-role1", "some value" );

// Set up the converter and role
registerRole( new RoleInfo( "my-role1", MyRole1.class ) );
registerConverter( ObjectToMyRole1Converter.class, String.class, MyRole1.class );

final ConfigTestTypedProp test = new ConfigTestTypedProp();

// Configure the object
m_configurer.configure( test, config, m_context );

// Check result
final ConfigTestTypedProp expected = new ConfigTestTypedProp();
expected.add( new MyRole1Adaptor( "some value" ) );
assertEquals( expected, test );
try
{
m_configurer.configure( test, config, m_context );
}
catch( final ConfigurationException ce )
{
ExceptionUtil.printStackTrace( ce );
throw ce;
}
}

/**
@@ -568,12 +584,12 @@ public class DefaultConfigurerTest
config.addChild( child1 );
config.addChild( child2 );

final ConfigTestTypedConfigProp test = new ConfigTestTypedConfigProp();
final ConfigTestTypedConfigAdder test = new ConfigTestTypedConfigAdder();

// Configure the object
m_configurer.configure( test, config, m_context );

final ConfigTestTypedConfigProp expected = new ConfigTestTypedConfigProp();
final ConfigTestTypedConfigAdder expected = new ConfigTestTypedConfigAdder();
expected.add( child1 );
expected.add( child2 );
assertEquals( expected, test );
@@ -592,12 +608,12 @@ public class DefaultConfigurerTest
config.addChild( child1 );
config.addChild( child2 );

final ConfigTestConfigProps test = new ConfigTestConfigProps();
final ConfigTestConfigAdder test = new ConfigTestConfigAdder();

// Configure the object
m_configurer.configure( test, config, m_context );

final ConfigTestConfigProps expected = new ConfigTestConfigProps();
final ConfigTestConfigAdder expected = new ConfigTestConfigAdder();
expected.addConfig( child1 );
expected.addConfig( child2 );
assertEquals( expected, test );
@@ -632,16 +648,16 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "some-prop-ref", "${id}" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestIdResolve test = new ConfigTestIdResolve();

m_context.setProperty( "id", "prop-a" );
m_context.setProperty( "prop-a", "some indirect value" );

// Configure the object
m_configurer.configure( test, config, m_context );
configure( test, config );

// Check the configured object
final ConfigTestStringProps expected = new ConfigTestStringProps();
final ConfigTestIdResolve expected = new ConfigTestIdResolve();
expected.setSomeProp( "some indirect value" );
assertEquals( expected, test );
}
@@ -656,7 +672,7 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "some-prop-ref", "unknown-prop" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestUnknownReference test = new ConfigTestUnknownReference();

// Configure the object
try
@@ -666,7 +682,8 @@ public class DefaultConfigurerTest
}
catch( ConfigurationException e )
{
final String[] messages = {
final String[] messages = new String[]
{
REZ.getString( "bad-set-attribute.error", "test", "some-prop-ref" ),
REZ.getString( "unknown-reference.error", "unknown-prop" )
};
@@ -684,9 +701,9 @@ public class DefaultConfigurerTest
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "some-prop-ref", "prop-a" );

final ConfigTestStringProps test = new ConfigTestStringProps();
final ConfigTestMismatchedRefType test = new ConfigTestMismatchedRefType();

m_context.setProperty( "prop-a", new ConfigTestObjectProps() );
m_context.setProperty( "prop-a", new Integer( 23 ) );

// Configure the object
try
@@ -696,7 +713,8 @@ public class DefaultConfigurerTest
}
catch( ConfigurationException e )
{
final String[] messages = {
final String[] messages = new String[]
{
REZ.getString( "bad-set-attribute.error", "test", "some-prop-ref" ),
REZ.getString( "mismatch-ref-types.error",
"prop-a",
@@ -715,24 +733,21 @@ public class DefaultConfigurerTest
{
// Setup test data
final DefaultConfiguration config = new DefaultConfiguration( "test", "test" );
config.setAttribute( "my-role1-ref", "id" );
final DefaultConfiguration child = new DefaultConfiguration( "my-role1-ref", "test" );
child.setAttribute( "id", "id2" );
config.addChild( child );

// Add role mapping, and add to reference to context
registerRole( new RoleInfo( "my-role1", MyRole1.class ) );
m_context.setProperty( "id", new MyType1() );
m_context.setProperty( "id2", new MyType2() );

final ConfigTestTypedProp test = new ConfigTestTypedProp();
final ConfigTestTypedAdderReference test = new ConfigTestTypedAdderReference();

// Configure the object
m_configurer.configure( test, config, m_context );

// Compare against expected value
final ConfigTestTypedProp expected = new ConfigTestTypedProp();
expected.add( new MyType1() );
final ConfigTestTypedAdderReference expected = new ConfigTestTypedAdderReference();
expected.add( new MyType2() );
assertEquals( expected, test );
}
@@ -748,7 +763,7 @@ public class DefaultConfigurerTest
elem.setAttribute( "not-a-prop", "not-a-value" );
config.addChild( elem );

final ConfigTestObjectProps test = new ConfigTestObjectProps();
final ConfigTestNestedErrors test = new ConfigTestNestedErrors();

try
{
@@ -778,19 +793,16 @@ public class DefaultConfigurerTest
config.addChild( elem );
elem = new DefaultConfiguration( "prop2", "test" );
config.addChild( elem );
elem = new DefaultConfiguration( "prop3", "test" );
config.addChild( elem );

final ConfigTestMultiSetter test = new ConfigTestMultiSetter();
final ConfigTestIgnoreStringMethods test = new ConfigTestIgnoreStringMethods();

// Configure the object
m_configurer.configure( test, config, m_context );

// Test expected value
final ConfigTestMultiSetter expected = new ConfigTestMultiSetter();
expected.setProp1( new ConfigTestStringProps() );
expected.setProp2( new ConfigTestStringProps() );
expected.addProp3( new ConfigTestStringProps() );
final ConfigTestIgnoreStringMethods expected = new ConfigTestIgnoreStringMethods();
expected.addProp1( new ConfigTestIgnoreStringMethods() );
expected.addProp2( new ConfigTestIgnoreStringMethods() );
assertEquals( expected, test );
}
}

proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/ConfigTestConfigProps.java → proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/data/ConfigTestConfigAdder.java View File

@@ -5,7 +5,7 @@
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.myrmidon.components.configurer;
package org.apache.myrmidon.components.configurer.data;

import java.util.ArrayList;
import org.apache.avalon.framework.configuration.Configuration;
@@ -16,7 +16,7 @@ import org.apache.avalon.framework.configuration.Configuration;
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class ConfigTestConfigProps
public class ConfigTestConfigAdder
{
private ArrayList m_configurations = new ArrayList();

@@ -27,7 +27,7 @@ public class ConfigTestConfigProps

public boolean equals( final Object object )
{
final ConfigTestConfigProps other = (ConfigTestConfigProps)object;
final ConfigTestConfigAdder other = (ConfigTestConfigAdder)object;
return m_configurations.equals( other.m_configurations );
}
}

+ 0
- 2
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/data/ConfigTestIgnoreStringMethods.java View File

@@ -9,9 +9,7 @@ package org.apache.myrmidon.components.configurer.data;

import java.util.ArrayList;
import junit.framework.AssertionFailedError;
import org.apache.myrmidon.components.configurer.ConfigTestStringProps;
import org.apache.myrmidon.components.configurer.DefaultConfigurerTest;
import org.apache.myrmidon.components.configurer.ConfigTestMultiSetter;

/**
* A test class with multiple setters/adders/creators for a property.


+ 20
- 0
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/data/ConfigTestNestedErrors.java View File

@@ -0,0 +1,20 @@
/*
* 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.myrmidon.components.configurer.data;

/**
* A simple test class.
*
* @author Adam Murdoch
*/
public class ConfigTestNestedErrors
{
public void addProp( final ConfigTestEmpty test )
{
}
}

+ 0
- 3
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer/data/ConfigTestReferenceConversion.java View File

@@ -8,10 +8,7 @@
package org.apache.myrmidon.components.configurer.data;

import java.util.ArrayList;
import java.util.List;
import org.apache.myrmidon.components.configurer.DefaultConfigurerTest;
import org.apache.myrmidon.components.configurer.MyRole1;
import org.apache.myrmidon.components.configurer.ConfigTestInterfaceProp;

/**
* A simple test class.


Loading…
Cancel
Save