alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Commons Beanutils example source code file (LazyDynaListTestCase.java)

This example Commons Beanutils source code file (LazyDynaListTestCase.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.

Java - Commons Beanutils tags/keywords

array, created, dynabean, io, lazydynalist, lazydynalist, map, not, not, object, object, size, util, value, wrong, wrong

The Commons Beanutils LazyDynaListTestCase.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.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.TreeMap;
import java.util.ArrayList;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import junit.framework.TestCase;
import junit.framework.Test;
import junit.framework.TestSuite;

/**
 * <p>Test Case for the LazyDynaListclass.

* * @author Niall Pemberton */ public class LazyDynaListTestCase extends TestCase { private static final String BASIC_PROP1 = "BasicDynaClass_Property1"; private static final String BASIC_PROP2 = "BasicDynaClass_Property2"; protected DynaProperty[] properties = new DynaProperty[] { new DynaProperty(BASIC_PROP1, String.class), new DynaProperty(BASIC_PROP2, HashMap.class)}; protected DynaClass treeMapDynaClass = new LazyDynaMap(new TreeMap()); protected DynaClass hashMapDynaClass = new LazyDynaMap(new HashMap()); protected DynaClass pojoDynaClass = new WrapDynaBean(new TestBean()).getDynaClass(); protected DynaClass basicDynaClass = new BasicDynaClass("test", BasicDynaBean.class, properties); // ---------------------------------------------------------- Constructors /** * Construct a new instance of this test case. * * @param name Name of the test case */ public LazyDynaListTestCase(String name) { super(name); } // -------------------------------------------------- Overall Test Methods /** * Run thus Test */ public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } /** * Return the tests included in this test suite. */ public static Test suite() { return (new TestSuite(LazyDynaListTestCase.class)); } /** * Set up instance variables required by this test case. */ public void setUp() throws Exception { } /** * Tear down instance variables required by this test case. */ public void tearDown() { } // ------------------------------------------------ Individual Test Methods /** * Test DynaBean Create */ public void testDynaBeanDynaClass() { // Create LazyArrayList for DynaBeans LazyDynaList list = new LazyDynaList(basicDynaClass); // test dynaBeanTest(list, BasicDynaBean.class, basicDynaClass, new BenchBean()); } /** * Test DynaBean Create */ public void testDynaBeanType() { // Create LazyArrayList for DynaBeans LazyDynaList list = new LazyDynaList(LazyDynaBean.class); LazyDynaBean bean = new LazyDynaBean(); bean.set("prop1", "val"); // test dynaBeanTest(list, LazyDynaBean.class, bean.getDynaClass(), new BenchBean()); } /** * Test Map Create */ public void testMapDynaClass() { // Create LazyArrayList for TreeMap's LazyDynaList list = new LazyDynaList(treeMapDynaClass); // test mapTest(list, TreeMap.class, new BenchBean()); } /** * Test Map Create */ public void testMapType() { // Create LazyArrayList for HashMap's LazyDynaList list = new LazyDynaList(HashMap.class); // test mapTest(list, HashMap.class, new BenchBean()); } /** * Test Pojo Create */ public void testPojoDynaClass() { // Create LazyArrayList for POJO's LazyDynaList list = new LazyDynaList(pojoDynaClass); // test pojoTest(list, TestBean.class, new BenchBean()); } /** * Test Pojo Create */ public void testPojoType() { // Create LazyArrayList for POJO's LazyDynaList list = new LazyDynaList(TestBean.class); // test pojoTest(list, TestBean.class, new BenchBean()); } /** * Test Collection */ public void testCollection(LazyDynaList list, Class testClass, DynaClass testDynaClass, Object wrongBean) { // ----- Create Collection & Array of Maps ----- int size = 5; List testList = new ArrayList(size); TreeMap[] testArray = new TreeMap[size]; for (int i = 0; i < size; i++) { testArray[i] = new TreeMap(); testArray[i].put("prop"+i, "val"+i); testList.add(testArray[i]); } // ----- Create LazyArrayList from Collection ----- LazyDynaList lazyList = new LazyDynaList(testList); assertEquals("1. check size", size, lazyList.size()); DynaBean[] dynaArray = lazyList.toDynaBeanArray(); TreeMap[] mapArray = (TreeMap[])lazyList.toArray(); // Check values assertEquals("2. check size", size, dynaArray.length); assertEquals("3. check size", size, mapArray.length); for (int i = 0; i < size; i++) { assertEquals("4."+i+" DynaBean error ", "val"+i, dynaArray[i].get("prop"+i)); assertEquals("5."+i+" Map error ", "val"+i, mapArray[i].get("prop"+i)); } // ----- Create LazyArrayList from Array ----- lazyList = new LazyDynaList(testArray); assertEquals("6. check size", size, lazyList.size()); dynaArray = lazyList.toDynaBeanArray(); mapArray = (TreeMap[])lazyList.toArray(); // Check values assertEquals("7. check size", size, dynaArray.length); assertEquals("8. check size", size, mapArray.length); for (int i = 0; i < size; i++) { assertEquals("9."+i+" DynaBean error ", "val"+i, dynaArray[i].get("prop"+i)); assertEquals("10."+i+" Map error ", "val"+i, mapArray[i].get("prop"+i)); } } /** * Test adding a map to List with no type set. */ public void testNullType() { LazyDynaList lazyList = new LazyDynaList(); lazyList.add(new HashMap()); } /** * Test DynaBean Create */ private void dynaBeanTest(LazyDynaList list, Class testClass, DynaClass testDynaClass, Object wrongBean) { // Test get(index) created correct DynaBean - Second Object dynaBean = list.get(1); assertNotNull("1. DynaBean Not Created", dynaBean); assertEquals("2. Wrong Type", testClass, dynaBean.getClass()); // Test toArray() creates correct Array - Second Object array = list.toArray(); assertNotNull("3. Array Not Created", array); assertEquals("4. Not DynaBean[]", testClass, array.getClass().getComponentType()); DynaBean[] dynaArray = (DynaBean[])array; assertEquals("5. Array Size Wrong", 2, dynaArray.length); // Test get(index) created correct DynaBean - Fourth dynaBean = list.get(3); assertNotNull("6. DynaBean Not Created", dynaBean); assertEquals("7. Wrong type", testClass, dynaBean.getClass()); // Test toArray() creates correct Array - Fourth array = list.toArray(); assertNotNull("8. Array Not Created", array); assertEquals("9. Not DynaBean[]", testClass, array.getClass().getComponentType()); dynaArray = (DynaBean[])array; assertEquals("10. Array Size Wrong", 4, dynaArray.length); // Test fail if different type added try { list.add(2, wrongBean); fail("Expected IllegalArgumentException"); } catch(IllegalArgumentException ignore) { // expected result } // find a String property to set String testProperty = findStringProperty(testDynaClass); assertNotNull("Test Property Not Found", testProperty); dynaArray = list.toDynaBeanArray(); for (int i = 0; i < dynaArray.length; i++) { dynaArray[i].set(testProperty, "orig_pos"+i); } // Create Collection List collection = new ArrayList(); try { collection.add(testDynaClass.newInstance()); collection.add(testDynaClass.newInstance()); collection.add(testDynaClass.newInstance()); } catch(Exception ex) { fail("1. FAILED: " + ex); } int expectedSize = dynaArray.length + collection.size(); String origValue = (String)((DynaBean)collection.get(0)).get(testProperty); ((DynaBean)collection.get(0)).set(testProperty, origValue+"_updated_"+0); ((DynaBean)collection.get(1)).set(testProperty, origValue+"_updated_"+1); ((DynaBean)collection.get(2)).set(testProperty, origValue+"_updated_"+2); // Test Insert - addAll(index, Collection) list.addAll(1, collection); dynaArray = list.toDynaBeanArray(); // Check array after insert dynaArray = list.toDynaBeanArray(); assertEquals("11. Array Size Wrong", expectedSize, dynaArray.length); // Check Beans have inserted correctly - by checking the property values assertEquals("12. Wrong Value", "orig_pos0", dynaArray[0].get(testProperty)); assertEquals("13. Wrong Value", origValue+"_updated_"+0, dynaArray[1].get(testProperty)); assertEquals("14. Wrong Value", origValue+"_updated_"+1, dynaArray[2].get(testProperty)); assertEquals("15. Wrong Value", origValue+"_updated_"+2, dynaArray[3].get(testProperty)); assertEquals("16. Wrong Value", "orig_pos1", dynaArray[4].get(testProperty)); // Test Insert - add(index, Object) try { DynaBean extraElement = (DynaBean)testDynaClass.newInstance(); extraElement.set(testProperty, "extraOne"); list.add(2, extraElement); dynaArray = list.toDynaBeanArray(); assertEquals("17. Wrong Value", origValue+"_updated_"+0, dynaArray[1].get(testProperty)); assertEquals("18. Wrong Value", "extraOne", dynaArray[2].get(testProperty)); assertEquals("19. Wrong Value", origValue+"_updated_"+1, dynaArray[3].get(testProperty)); } catch(Exception ex) { fail("2. FAILED: " + ex); } } /** * Test Map Create */ private String findStringProperty(DynaClass dynaClass) { DynaProperty[] properties = dynaClass.getDynaProperties(); for (int i = 0; i < properties.length; i++) { if (properties[i].getType() == String.class) { return properties[i].getName(); } } return null; } /** * Test Map Create */ private void mapTest(LazyDynaList list, Class testClass, Object wrongBean) { // Test get(index) created correct DynaBean - First Object dynaBean = list.get(0); assertNotNull("1. DynaBean Not Created", dynaBean); assertEquals("2. Not LazyDynaMap", LazyDynaMap.class, dynaBean.getClass()); // Test get(index) created correct Map - First Object map = ((LazyDynaMap)dynaBean).getMap(); assertNotNull("3. Map Not Created", map); assertEquals("4. Wrong Map", testClass, map.getClass()); // Test toArray() creates correct Array - First Object array = list.toArray(); assertNotNull("5. Array Not Created", array); assertEquals("6. Not Map[]", testClass, array.getClass().getComponentType()); Map[] mapArray = (Map[])array; assertEquals("7. Array Size Wrong", 1, mapArray.length); // Test get(index) created correct DynaBean - Third dynaBean = list.get(2); assertNotNull("8. DynaBean Not Created", dynaBean); assertEquals("9. Not LazyDynaMap", LazyDynaMap.class, dynaBean.getClass()); // Test get(index) created correct Map - Third map = ((LazyDynaMap)dynaBean).getMap(); assertNotNull("10. Map Not Created", map); assertEquals("11. Wrong Map", testClass, map.getClass()); // Test toArray() creates correct Array - Third array = list.toArray(); assertNotNull("12. Array Not Created", array); assertEquals("13. Not Map[]", testClass, array.getClass().getComponentType()); mapArray = (Map[])array; assertEquals("14. Array Size Wrong", 3, mapArray.length); // Test fail if different type added try { list.add(2, wrongBean); fail("Expected IllegalArgumentException"); } catch(IllegalArgumentException ignore) { // expected result } } /** * Test Pojo Create */ private void pojoTest(LazyDynaList list, Class testClass, Object wrongBean) { // Test get(index) created correct DynaBean - First Object dynaBean = list.get(0); assertNotNull("1. DynaBean Not Created", dynaBean); assertEquals("2. Not WrapDynaBean", WrapDynaBean.class, dynaBean.getClass()); // Test get(index) created correct POJO - First Object pojoBean = ((WrapDynaBean)dynaBean).getInstance(); assertNotNull("3. POJO Not Created", pojoBean); assertEquals("4. Not WrapDynaBean", testClass, pojoBean.getClass()); // Test toArray() creates correct Array - First Object array = list.toArray(); assertNotNull("5. Array Not Created", array); assertEquals("6. Wrong array", testClass, array.getClass().getComponentType()); Object[] pojoArray = (Object[])array; assertEquals("7. Array Size Wrong", 1, pojoArray.length); // Test get(index) created correct DynaBean - Second dynaBean = list.get(1); assertNotNull("8. DynaBean Not Created", dynaBean); assertEquals("9. Not WrapDynaBean", WrapDynaBean.class, dynaBean.getClass()); // Test get(index) created correct POJO - Second pojoBean = ((WrapDynaBean)dynaBean).getInstance(); assertNotNull("10. POJO Not Created", pojoBean); assertEquals("11. Not WrapDynaBean", testClass, pojoBean.getClass()); // Test toArray() creates correct Array - Second array = list.toArray(); assertNotNull("12. Array Not Created", array); assertEquals("13. Wrong array", testClass, array.getClass().getComponentType()); pojoArray = (Object[])array; assertEquals("14. Array Size Wrong", 2, pojoArray.length); // Test fail if different type added try { list.add(2, wrongBean); fail("Expected IllegalArgumentException"); } catch(IllegalArgumentException ignore) { // expected result } } /** * Test DynaBean serialization. */ public void testSerializationDynaBean() { // Create LazyArrayList for DynaBeans LazyDynaList target = new LazyDynaList(basicDynaClass); BasicDynaBean bean = (BasicDynaBean)target.get(0); // Set a Property assertNull("pre-set check", bean.get(BASIC_PROP1)); bean.set(BASIC_PROP1, "value1"); assertEquals("post-set check", "value1", bean.get(BASIC_PROP1)); // Serialize/Deserialize LazyDynaList result = (LazyDynaList)serializeDeserialize(target, "DynaBean"); target = null; bean = null; // Confirm property value bean = (BasicDynaBean)result.get(0); assertEquals("post-serialize check", "value1", bean.get(BASIC_PROP1)); } /** * Test DynaBean serialization. */ public void testSerializationLazyDynaBean() { // Create LazyArrayList for DynaBeans LazyDynaList target = new LazyDynaList(); LazyDynaBean bean = (LazyDynaBean)target.get(0); // Set a Property assertNull("pre-set check", bean.get(BASIC_PROP1)); bean.set(BASIC_PROP1, "value1"); assertEquals("post-set check", "value1", bean.get(BASIC_PROP1)); // Serialize/Deserialize LazyDynaList result = (LazyDynaList)serializeDeserialize(target, "DynaBean"); target = null; bean = null; // Confirm property value bean = (LazyDynaBean)result.get(0); assertEquals("post-serialize check", "value1", bean.get(BASIC_PROP1)); } /** * Test Map serialization. */ public void testSerializationMap() { // Create LazyArrayList for DynaBeans LazyDynaList target = new LazyDynaList(treeMapDynaClass); LazyDynaMap bean = (LazyDynaMap)target.get(0); // Set a Property assertNull("pre-set check", bean.get(BASIC_PROP1)); bean.set(BASIC_PROP1, "value1"); assertEquals("post-set check", "value1", bean.get(BASIC_PROP1)); // Serialize/Deserialize LazyDynaList result = (LazyDynaList)serializeDeserialize(target, "Map"); target = null; bean = null; // Confirm property value bean = (LazyDynaMap)result.get(0); assertEquals("post-serialize check", "value1", bean.get(BASIC_PROP1)); } /** * Test POJO (WrapDynaBean) serialization. */ public void testSerializationPojo() { // Create LazyArrayList for DynaBeans LazyDynaList target = new LazyDynaList(pojoDynaClass); WrapDynaBean bean = (WrapDynaBean)target.get(0); // Set a Property assertEquals("pre-set check", "This is a string", bean.get("stringProperty")); bean.set("stringProperty", "value1"); assertEquals("post-set check", "value1", bean.get("stringProperty")); // Serialize/Deserialize LazyDynaList result = (LazyDynaList)serializeDeserialize(target, "POJO"); target = null; bean = null; // Test BEANUTILS-300 result.add(null); // Confirm property value bean = (WrapDynaBean)result.get(0); assertEquals("post-serialize check", "value1", bean.get("stringProperty")); } /** * 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 LazyDynaListTestCase.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.