|
Commons Beanutils example source code file (WrapDynaBeanTestCase.java)
This example Commons Beanutils source code file (WrapDynaBeanTestCase.java) is included in the DevDaily.com
"Java Source Code
Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.
The Commons Beanutils WrapDynaBeanTestCase.java source code
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.beanutils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import junit.framework.Test;
import junit.framework.TestSuite;
/**
* <p>Test Case for the WrapDynaBean implementation class.
* These tests were based on the ones in <code>PropertyUtilsTestCase
* because the two classes provide similar levels of functionality.</p>
*
* @author Craig R. McClanahan
* @version $Revision: 745077 $ $Date: 2009-02-17 14:02:16 +0000 (Tue, 17 Feb 2009) $
*/
public class WrapDynaBeanTestCase extends BasicDynaBeanTestCase {
// ---------------------------------------------------- Instance Variables
// ---------------------------------------------------------- Constructors
/**
* Construct a new instance of this test case.
*
* @param name Name of the test case
*/
public WrapDynaBeanTestCase(String name) {
super(name);
}
// -------------------------------------------------- Overall Test Methods
/**
* Set up instance variables required by this test case.
*/
public void setUp() throws Exception {
bean = new WrapDynaBean(new TestBean());
}
/**
* Return the tests included in this test suite.
*/
public static Test suite() {
return (new TestSuite(WrapDynaBeanTestCase.class));
}
/**
* Tear down instance variables required by this test case.
*/
public void tearDown() {
bean = null;
}
// ------------------------------------------------ Individual Test Methods
/**
* The <code>set() method.
*/
public void testSimpleProperties() {
// Invalid getter
try {
Object result = bean.get("invalidProperty");
fail("Invalid get should have thrown IllegalArgumentException");
} catch (IllegalArgumentException t) {
// Expected result
}
// Invalid setter
try {
bean.set("invalidProperty", "XYZ");
fail("Invalid set should have thrown IllegalArgumentException");
} catch (IllegalArgumentException t) {
// Expected result
}
// Set up initial Value
String testValue = "Original Value";
String testProperty = "stringProperty";
TestBean instance = (TestBean)((WrapDynaBean)bean).getInstance();
instance.setStringProperty(testValue);
assertEquals("Check String property", testValue, instance.getStringProperty());
// Test Valid Get & Set
try {
testValue = "Some new value";
bean.set(testProperty, testValue);
assertEquals("Test Set", testValue, instance.getStringProperty());
assertEquals("Test Get", testValue, bean.get(testProperty));
} catch (IllegalArgumentException t) {
fail("Get threw exception: " + t);
}
}
/**
* The <code>set() method.
*/
public void testIndexedProperties() {
// Invalid getter
try {
Object result = bean.get("invalidProperty", 0);
fail("Invalid get should have thrown IllegalArgumentException");
} catch (IllegalArgumentException t) {
// Expected result
}
// Invalid setter
try {
bean.set("invalidProperty", 0, "XYZ");
fail("Invalid set should have thrown IllegalArgumentException");
} catch (IllegalArgumentException t) {
// Expected result
}
// Set up initial Value
String testValue = "Original Value";
String testProperty = "stringIndexed";
TestBean instance = (TestBean)((WrapDynaBean)bean).getInstance();
instance.setStringIndexed(0, testValue);
assertEquals("Check String property", testValue, instance.getStringIndexed(0));
// Test Valid Get & Set
try {
testValue = "Some new value";
bean.set(testProperty, 0, testValue);
assertEquals("Test Set", testValue, instance.getStringIndexed(0));
assertEquals("Test Get", testValue, bean.get(testProperty, 0));
} catch (IllegalArgumentException t) {
fail("Get threw exception: " + t);
}
}
/**
* The <code>contains() method is not supported by the
* <code>WrapDynaBean implementation class.
*/
public void testMappedContains() {
try {
assertTrue("Can see first key",
bean.contains("mappedProperty", "First Key"));
fail("Should have thrown UnsupportedOperationException");
} catch (UnsupportedOperationException t) {
// Expected result
} catch (Throwable t) {
fail("Exception: " + t);
}
try {
assertTrue("Can not see unknown key",
!bean.contains("mappedProperty", "Unknown Key"));
fail("Should have thrown UnsupportedOperationException");
} catch (UnsupportedOperationException t) {
// Expected result
} catch (Throwable t) {
fail("Exception: " + t);
}
}
/**
* The <code>remove() method is not supported by the
* <code>WrapDynaBean implementation class.
*/
public void testMappedRemove() {
try {
assertTrue("Can see first key",
bean.contains("mappedProperty", "First Key"));
bean.remove("mappedProperty", "First Key");
fail("Should have thrown UnsupportedOperationException");
// assertTrue("Can not see first key",
// !bean.contains("mappedProperty", "First Key"));
} catch (UnsupportedOperationException t) {
// Expected result
} catch (Throwable t) {
fail("Exception: " + t);
}
try {
assertTrue("Can not see unknown key",
!bean.contains("mappedProperty", "Unknown Key"));
bean.remove("mappedProperty", "Unknown Key");
fail("Should have thrown UnsupportedOperationException");
// assertTrue("Can not see unknown key",
// !bean.contains("mappedProperty", "Unknown Key"));
} catch (UnsupportedOperationException t) {
// Expected result
} catch (Throwable t) {
fail("Exception: " + t);
}
}
/** Tests getInstance method */
public void testGetInstance() {
AlphaBean alphaBean = new AlphaBean("Now On Air... John Peel");
WrapDynaBean dynaBean = new WrapDynaBean(alphaBean);
Object wrappedInstance = dynaBean.getInstance();
assertTrue("Object type is AlphaBean", wrappedInstance instanceof AlphaBean);
AlphaBean wrappedAlphaBean = (AlphaBean) wrappedInstance;
assertTrue("Same Object", wrappedAlphaBean == alphaBean);
}
/** Tests the newInstance implementation for WrapDynaClass */
public void testNewInstance() throws Exception {
WrapDynaClass dynaClass = WrapDynaClass.createDynaClass(AlphaBean.class);
Object createdInstance = dynaClass.newInstance();
assertTrue("Object type is WrapDynaBean", createdInstance instanceof WrapDynaBean);
WrapDynaBean dynaBean = (WrapDynaBean) createdInstance;
assertTrue("Object type is AlphaBean", dynaBean.getInstance() instanceof AlphaBean);
}
/**
* Serialization and deserialization tests.
* (WrapDynaBean is now serializable, although WrapDynaClass still is not)
*/
public void testSerialization() {
// Create a bean and set a value
WrapDynaBean origBean = new WrapDynaBean(new TestBean());
Integer newValue = new Integer(789);
assertEquals("origBean default", new Integer(123), (Integer)origBean.get("intProperty"));
origBean.set("intProperty", newValue);
assertEquals("origBean new value", newValue, (Integer)origBean.get("intProperty"));
// Serialize/Deserialize & test value
WrapDynaBean bean = (WrapDynaBean)serializeDeserialize(origBean, "First Test");
assertEquals("bean value", newValue, (Integer)bean.get("intProperty"));
}
/**
* Do serialization and deserialization.
*/
private Object serializeDeserialize(Object target, String text) {
// Serialize the test object
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(target);
oos.flush();
oos.close();
} catch (Exception e) {
fail(text + ": Exception during serialization: " + e);
}
// Deserialize the test object
Object result = null;
try {
ByteArrayInputStream bais =
new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
result = ois.readObject();
bais.close();
} catch (Exception e) {
fail(text + ": Exception during deserialization: " + e);
}
return result;
}
}
Other Commons Beanutils examples (source code examples)
Here is a short list of links related to this Commons Beanutils WrapDynaBeanTestCase.java source code file:
|