}
public void testMutableConfigsPlusDefaultBindings() throws Exception
{
final Element element = this.getRootElement( "/correct/config.xml" );
final MutableConfig config = XML2Java.bind( element, MutableConfig.class );
// assert values load from config file - this verifies default binding is constructed properly
Assert.assertFalse( "Unexpected primitive boolean value", config.getBooleanPrimitive() );
Assert.assertTrue( "Unexpected primitive byte value", config.getBytePrimitive() == ( ( byte ) 1 ) );
Assert.assertTrue( "Unexpected primitive char value", config.getCharPrimitive() == ( ( char ) 'c' ) );
Assert.assertTrue( "Unexpected primitive short value", config.getShortPrimitive() == ( ( short ) 2 ) );
Assert.assertTrue( "Unexpected primitive int value", config.getIntPrimitive() == 3 );
Assert.assertTrue( "Unexpected primitive long value", config.getLongPrimitive() == 4 );
Assert.assertTrue( "Unexpected primitive float value", config.getFloatPrimitive() == ( ( float ) 5. ) );
Assert.assertTrue( "Unexpected primitive double value", config.getDoublePrimitive() == 6. );
Assert.assertTrue( "Unexpected Boolean value", config.getBoolean().equals( Boolean.FALSE ) );
Assert.assertTrue( "Unexpected Byte value", config.getByte().equals( Byte.valueOf( ( byte ) 7 ) ) );
Assert.assertTrue( "Unexpected Character value", config.getCharacter().equals( Character.valueOf( 'C' ) ) );
Assert.assertTrue( "Unexpected Short value", config.getShort().equals( Short.valueOf( ( short ) 8 ) ) );
Assert.assertTrue( "Unexpected Integer value", config.getInteger().equals( Integer.valueOf( 9 ) ) );
Assert.assertTrue( "Unexpected Long value", config.getLong().equals( Long.valueOf( 10 ) ) );
Assert.assertTrue( "Unexpected Float value", config.getFloat().equals( Float.valueOf( ( float ) 11. ) ) );
Assert.assertTrue( "Unexpected Double value", config.getDouble().equals( Double.valueOf( 12. ) ) );
Assert.assertTrue( "Unexpected String value", config.getString().equals( "hello" ) );
Assert.assertTrue( "Unexpected QName value",
config.getQName().equals( QName.valueOf( "{http://mycompany}/department" ) ) );
Assert.assertTrue( "Unexpected BigInteger value", config.getBigInteger().equals( BigInteger.valueOf( 13 ) ) );
Assert.assertTrue( "Unexpected BigDecimal value", config.getBigDecimal().equals( BigDecimal.valueOf( 14 ) ) );
XML2JavaTest.ensureArray( config.getBooleanArray(), Boolean.FALSE, 4 );
// modifying values
config.setBooleanPrimitive( true );
Assert.assertTrue( "Unexpected primitive boolean value", config.getBooleanPrimitive() );
config.setBytePrimitive( ( byte ) 2 );
Assert.assertTrue( "Unexpected primitive byte value", config.getBytePrimitive() == ( ( byte ) 2 ) );
config.setCharPrimitive( 'n' );
Assert.assertTrue( "Unexpected primitive char value", config.getCharPrimitive() == ( ( char ) 'n' ) );
config.setShortPrimitive( ( short ) 4 );
Assert.assertTrue( "Unexpected primitive short value", config.getShortPrimitive() == ( ( short ) 4 ) );
config.setIntPrimitive( 6 );
Assert.assertTrue( "Unexpected primitive int value", config.getIntPrimitive() == 6 );
config.setLongPrimitive( 8 );
Assert.assertTrue( "Unexpected primitive long value", config.getLongPrimitive() == 8 );
config.setFloatPrimitive( ( float ) 10. );
Assert.assertTrue( "Unexpected primitive float value", config.getFloatPrimitive() == ( ( float ) 10. ) );
config.setDoublePrimitive( 12. );
Assert.assertTrue( "Unexpected primitive double value", config.getDoublePrimitive() == 12. );
config.setBoolean( Boolean.TRUE );
Assert.assertTrue( "Unexpected Boolean value", config.getBoolean().equals( Boolean.TRUE ) );
config.setByte( Byte.valueOf( ( byte ) 14 ) );
Assert.assertTrue( "Unexpected Byte value", config.getByte().equals( Byte.valueOf( ( byte ) 14 ) ) );
config.setCharacter( Character.valueOf( 'N' ) );
Assert.assertTrue( "Unexpected Character value", config.getCharacter().equals( Character.valueOf( 'N' ) ) );
config.setShort( Short.valueOf( ( short ) 16 ) );
Assert.assertTrue( "Unexpected Short value", config.getShort().equals( Short.valueOf( ( short ) 16 ) ) );
config.setInteger( Integer.valueOf( 18 ) );
Assert.assertTrue( "Unexpected Integer value", config.getInteger().equals( Integer.valueOf( 18 ) ) );
config.setLong( Long.valueOf( 20 ) );
Assert.assertTrue( "Unexpected Long value", config.getLong().equals( Long.valueOf( 20 ) ) );
config.setFloat( Float.valueOf( ( float ) 22. ) );
Assert.assertTrue( "Unexpected Float value", config.getFloat().equals( Float.valueOf( ( float ) 22. ) ) );
config.setDouble( Double.valueOf( 24. ) );
Assert.assertTrue( "Unexpected Double value", config.getDouble().equals( Double.valueOf( 24. ) ) );
config.setString( "modified hello" );
Assert.assertTrue( "Unexpected String value", config.getString().equals( "modified hello" ) );
config.setQName( QName.valueOf( "{http://mycompany}/modified_department" ) );
Assert.assertTrue( "Unexpected QName value",
config.getQName().equals( QName.valueOf( "{http://mycompany}/modified_department" ) ) );
config.setBigInteger( BigInteger.valueOf( 26 ) );
Assert.assertTrue( "Unexpected BigInteger value", config.getBigInteger().equals( BigInteger.valueOf( 26 ) ) );
config.setBigDecimal( BigDecimal.valueOf( 28. ) );
Assert.assertTrue( "Unexpected BigDecimal value", config.getBigDecimal().equals( BigDecimal.valueOf( 28. ) ) );
final Boolean[] clonedArray = config.getBooleanArray();
for ( int i = 0; i < clonedArray.length; i++ )
{
clonedArray[ i ] = Boolean.TRUE;
}
XML2JavaTest.ensureArray( config.getBooleanArray(), Boolean.FALSE, 4 );
config.setBooleanArray( clonedArray );
XML2JavaTest.ensureArray( config.getBooleanArray(), Boolean.TRUE, 4 );
}