Index: F:/work/xfire/xfire-aegis/src/test/org/codehaus/xfire/aegis/type/basic/ConfigurationTest.java =================================================================== --- F:/work/xfire/xfire-aegis/src/test/org/codehaus/xfire/aegis/type/basic/ConfigurationTest.java (revision 0) +++ F:/work/xfire/xfire-aegis/src/test/org/codehaus/xfire/aegis/type/basic/ConfigurationTest.java (revision 0) @@ -0,0 +1,112 @@ +/** + * + */ +package org.codehaus.xfire.aegis.type.basic; + +import javax.xml.namespace.QName; + +import org.codehaus.xfire.aegis.AbstractXFireAegisTest; +import org.codehaus.xfire.aegis.type.Configuration; +import org.codehaus.xfire.aegis.type.CustomTypeMapping; +import org.codehaus.xfire.aegis.type.DefaultTypeCreator; +import org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry; +import org.codehaus.xfire.aegis.type.Type; +import org.codehaus.xfire.aegis.type.XMLTypeCreator; + +/** + * Test cases to test the changing of the Configuration Object + * + * @author adam + * + */ +public class ConfigurationTest + extends AbstractXFireAegisTest +{ + + CustomTypeMapping tm; + Configuration config = null; + + protected void setUp() + throws Exception + { + super.setUp(); + + DefaultTypeMappingRegistry reg = new DefaultTypeMappingRegistry(true); + config = reg.getConfiguration(); + tm = (CustomTypeMapping) reg.getDefaultTypeMapping(); + + XMLTypeCreator creator = new XMLTypeCreator(); + creator.setConfiguration(reg.getConfiguration()); + DefaultTypeCreator next = new DefaultTypeCreator(); + next.setConfiguration(reg.getConfiguration()); + creator.setNextCreator(next); + tm.setTypeCreator(creator); + } + + public void testNillableDefaultTrue() throws Exception + { + config.setDefaultNillable( true ); + tm.setEncodingStyleURI("urn:xfire:bean-nillable"); + + Type type = tm.getTypeCreator().createType(MyBean.class); + BeanTypeInfo info = ((BeanType) type).getTypeInfo(); + + assertTrue(info.isNillable(new QName(info.getDefaultNamespace(), "prop2"))); + } + + public void testNillableDefaultFalse() throws Exception + { + config.setDefaultNillable( false ); + tm.setEncodingStyleURI("urn:xfire:bean-nillable"); + + Type type = tm.getTypeCreator().createType(MyBean.class); + BeanTypeInfo info = ((BeanType) type).getTypeInfo(); + + assertFalse(info.isNillable(new QName(info.getDefaultNamespace(), "prop2"))); + } + + public void testMinOccursDefault0() throws Exception + { + config.setDefaultMinOccurs( 0 ); + tm.setEncodingStyleURI("urn:xfire:bean-minoccurs"); + + Type type = tm.getTypeCreator().createType(MyBean.class); + BeanTypeInfo info = ((BeanType) type).getTypeInfo(); + + assertEquals(info.getMinOccurs(new QName(info.getDefaultNamespace(), "prop2")), 0); + } + + public void testMinOccursDefault1() throws Exception + { + config.setDefaultMinOccurs( 1 ); + tm.setEncodingStyleURI("urn:xfire:bean-minoccurs"); + + Type type = tm.getTypeCreator().createType(MyBean.class); + BeanTypeInfo info = ((BeanType) type).getTypeInfo(); + + assertEquals(info.getMinOccurs(new QName(info.getDefaultNamespace(), "prop2")), 1); + } + + public void testExtensibleDefaultTrue() throws Exception + { + config.setDefaultExtensibleElements( true ); + config.setDefaultExtensibleAttributes( true ); + tm.setEncodingStyleURI("urn:xfire:bean-extensible"); + Type type = tm.getTypeCreator().createType(MyBean.class); + BeanTypeInfo info = ((BeanType) type).getTypeInfo(); + assertTrue(info.isExtensibleElements()); + assertTrue(info.isExtensibleAttributes()); + } + + public void testExtensibleDefaultFalse() throws Exception + { + config.setDefaultExtensibleElements( false ); + config.setDefaultExtensibleAttributes( false ); + tm.setEncodingStyleURI("urn:xfire:bean-extensible"); + Type type = tm.getTypeCreator().createType(MyBean.class); + BeanTypeInfo info = ((BeanType) type).getTypeInfo(); + assertFalse(info.isExtensibleElements()); + assertFalse(info.isExtensibleAttributes()); + } + +}