/*
* Copyright (C) 2004 Joe Walnes.
* Copyright (C) 2006, 2007 XStream Committers.
* All rights reserved.
*
* The software in this package is published under the terms of the BSD
* style license a copy of which has been included with this distribution in
* the LICENSE.txt file.
*
* Created on 08. March 2004 by Joe Walnes
*/
package com.thoughtworks.xstream.converters.reflection;
public class Sun14ReflectionProviderTest extends AbstractReflectionProviderTest {
// inherits tests from superclass
public ReflectionProvider createReflectionProvider() {
return new Sun14ReflectionProvider();
}
public void testCanWriteFinalFields() {
WithFinalFields thingy = new WithFinalFields();
reflectionProvider.writeField(thingy, "finalField", "zero", WithFinalFields.class);
assertEquals("zero", thingy.finalField);
reflectionProvider.writeField(thingy, "finalInt", new Integer(1), WithFinalFields.class);
assertEquals(1, thingy.finalInt);
reflectionProvider.writeField(thingy, "finalLong", new Long(2), WithFinalFields.class);
assertEquals(2, thingy.finalLong);
reflectionProvider.writeField(thingy, "finalShort", new Short((short) 3), WithFinalFields.class);
assertEquals(3, thingy.finalShort);
reflectionProvider.writeField(thingy, "finalChar", new Character('4'), WithFinalFields.class);
assertEquals('4', thingy.finalChar);
reflectionProvider.writeField(thingy, "finalByte", new Byte((byte) 5), WithFinalFields.class);
assertEquals(5, thingy.finalByte);
reflectionProvider.writeField(thingy, "finalFloat", new Float(0.6), WithFinalFields.class);
assertEquals(0.6f, thingy.finalFloat, 0.0);
reflectionProvider.writeField(thingy, "finalDouble", new Double(0.7), WithFinalFields.class);
assertEquals(0.7, thingy.finalDouble, 0.0);
reflectionProvider.writeField(thingy, "finalBoolean", new Boolean(true), WithFinalFields.class);
assertEquals(true, thingy.finalBoolean);
reflectionProvider.writeField(thingy, "finalBoolean", new Boolean(false), null);
assertEquals(false, thingy.finalBoolean);
}
private static class WithFinalFields {
final String finalField;
final int finalInt;
final long finalLong;
final short finalShort;
final char finalChar;
final byte finalByte;
final float finalFloat;
final double finalDouble;
final boolean finalBoolean;
private WithFinalFields() {
finalField = null;
finalChar = '\0';
finalInt = 0;
finalLong = 0;
finalShort = 0;
finalByte = 0;
finalFloat = 0.0f;
finalDouble = 0.0;
finalBoolean = false;
}
}
}