⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lazydynamaptestcase.java

📁 apache beanutils开源项目源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }    /**     * Test setting mapped property for type which is not Map     */    public void testMappedInvalidType() {        dynaMap.set(testProperty, new Integer(1));        assertFalse("Check Property is not mapped", dynaMap.getDynaProperty(testProperty).isMapped());        try {            dynaMap.set(testProperty, testKey, testInteger1);            fail("set(property, key, value) should have thrown IllegalArgumentException");        } catch (IllegalArgumentException expected) {            // expected result        }    }    /**     * Test Getting/Setting an 'Indexed' Property - default ArrayList property     */    public void testIndexedPropertyDefault() {        int index = 3;        // Check the property & value doesn't exist        assertNull("Check Indexed Property doesn't exist", dynaMap.getDynaProperty(testProperty));        assertNull("Check Indexed Property is null", dynaMap.get(testProperty));        assertNull("Check Indexed value is null", dynaMap.get(testProperty, index));        // Set the property, should create new ArrayList and set appropriate indexed value        dynaMap.set(testProperty, index, testInteger1);        assertNotNull("Check Indexed Property is not null", dynaMap.get(testProperty));        assertEquals("Check Indexed Property is correct type", ArrayList.class, dynaMap.get(testProperty).getClass());        assertEquals("Check First Indexed Value is correct", testInteger1, dynaMap.get(testProperty, index));        assertEquals("Check First Array length is correct", new Integer(index+1),  new Integer(((ArrayList)dynaMap.get(testProperty)).size()));        // Set a second indexed value, should automatically grow the ArrayList and set appropriate indexed value        index = index + 2;        dynaMap.set(testProperty, index, testString1);        assertEquals("Check Second Indexed Value is correct", testString1, dynaMap.get(testProperty, index));        assertEquals("Check Second Array length is correct", new Integer(index+1),  new Integer(((ArrayList)dynaMap.get(testProperty)).size()));    }    /**     * Test Getting/Setting a List 'Indexed' Property - use alternative List (LinkedList)     */    public void testIndexedLinkedList() {        int   index     = 3;        // Check the property & value doesn't exist        assertNull("Check Indexed Property doesn't exist", dynaMap.getDynaProperty(testProperty));        assertNull("Check Indexed Property is null", dynaMap.get(testProperty));        // Add a 'LinkedList' property to the DynaClass - should instantiate a new LinkedList        dynaMap.add(testProperty, LinkedList.class);        assertTrue("Check Property is indexed", dynaMap.getDynaProperty(testProperty).isIndexed());        assertEquals("Check Property is correct type", LinkedList.class, dynaMap.getDynaProperty(testProperty).getType());        assertEquals("Check Indexed Property now exists", LinkedList.class, dynaMap.get(testProperty).getClass());        // Set the Indexed property, should grow the list to the correct size        dynaMap.set(testProperty, index, testString1);        assertEquals("Check Property type is correct", LinkedList.class, dynaMap.get(testProperty).getClass());        assertEquals("Check First Indexed Value is correct", testString1, dynaMap.get(testProperty, index));        assertEquals("Check First Array length is correct", new Integer(index+1),  new Integer(((LinkedList)dynaMap.get(testProperty)).size()));        // Set a second indexed value, should automatically grow the LinkedList and set appropriate indexed value        index = index + 2;        dynaMap.set(testProperty, index, testInteger1);        assertEquals("Check Second Indexed Value is correct", testInteger1, dynaMap.get(testProperty, index));        assertEquals("Check Second Array length is correct", new Integer(index+1),  new Integer(((LinkedList)dynaMap.get(testProperty)).size()));    }    /**     * Test Getting/Setting a primitive array 'Indexed' Property - use int[]     */    public void testIndexedPrimitiveArray() {        int   index     = 3;        int[] primitiveArray = new int[0];        // Check the property & value doesn't exist        assertNull("Check Indexed Property doesn't exist", dynaMap.getDynaProperty(testProperty));        assertNull("Check Indexed Property is null", dynaMap.get(testProperty));        // Add a DynaProperty of type int[]        dynaMap.add(testProperty, primitiveArray.getClass());        assertEquals("Check Indexed Property exists", primitiveArray.getClass(), dynaMap.getDynaProperty(testProperty).getType());        assertTrue("Check Indexed Property exists", dynaMap.get(testProperty).getClass().isInstance(primitiveArray));        // Set an indexed value        dynaMap.set(testProperty, index, testInteger1);        assertNotNull("Check Indexed Property is not null", dynaMap.get(testProperty));        assertEquals("Check Indexed Property is correct type", primitiveArray.getClass(), dynaMap.get(testProperty).getClass());        assertEquals("Check First Indexed Value is correct(a)", testInteger1, dynaMap.get(testProperty, index));        assertEquals("Check First Indexed Value is correct(b)", testInteger1, new Integer(((int[])dynaMap.get(testProperty))[index]));        assertEquals("Check Array length is correct", new Integer(index+1),  new Integer(((int[])dynaMap.get(testProperty)).length));        // Set a second indexed value, should automatically grow the int[] and set appropriate indexed value        index = index + 2;        dynaMap.set(testProperty, index, testInteger2);        assertEquals("Check Second Indexed Value is correct(a)", testInteger2, dynaMap.get(testProperty, index));        assertEquals("Check Second Indexed Value is correct(b)", testInteger2, new Integer(((int[])dynaMap.get(testProperty))[index]));        assertEquals("Check Second Array length is correct", new Integer(index+1),  new Integer(((int[])dynaMap.get(testProperty)).length));    }    /**     * Test Getting/Setting an Object array 'Indexed' Property - use String[]     */    public void testIndexedObjectArray() {        int   index     = 3;        Object objectArray = new String[0];        // Check the property & value doesn't exist        assertNull("Check Indexed Property doesn't exist", dynaMap.getDynaProperty(testProperty));        assertNull("Check Indexed Property is null", dynaMap.get(testProperty));        // Add a DynaProperty of type String[]        dynaMap.add(testProperty, objectArray.getClass());        assertEquals("Check Indexed Property exists", objectArray.getClass(), dynaMap.getDynaProperty(testProperty).getType());        assertTrue("Check Indexed Property exists", dynaMap.get(testProperty).getClass().isInstance(objectArray));        // Set an indexed value        dynaMap.set(testProperty, index, testString1);        assertNotNull("Check Indexed Property is not null", dynaMap.get(testProperty));        assertEquals("Check Indexed Property is correct type", objectArray.getClass(), dynaMap.get(testProperty).getClass());        assertEquals("Check First Indexed Value is correct(a)", testString1, dynaMap.get(testProperty, index));        assertEquals("Check First Indexed Value is correct(b)", testString1, ((String[])dynaMap.get(testProperty))[index]);        assertEquals("Check Array length is correct", new Integer(index+1),  new Integer(((String[])dynaMap.get(testProperty)).length));        // Set a second indexed value, should automatically grow the String[] and set appropriate indexed value        index = index + 2;        dynaMap.set(testProperty, index, testString2);        assertEquals("Check Second Indexed Value is correct(a)", testString2, dynaMap.get(testProperty, index));        assertEquals("Check Second Indexed Value is correct(b)", testString2, ((String[])dynaMap.get(testProperty))[index]);        assertEquals("Check Second Array length is correct", new Integer(index+1),  new Integer(((String[])dynaMap.get(testProperty)).length));    }    /**     * Test Getting/Setting an DynaBean[] array     */    public void testIndexedDynaBeanArray() {        int   index     = 3;        Object objectArray = new LazyDynaBean[0];        // Check the property & value doesn't exist        assertNull("Check Indexed Property doesn't exist", dynaMap.getDynaProperty(testProperty));        assertNull("Check Indexed Property is null", dynaMap.get(testProperty));        // Add a DynaProperty of type String[]        dynaMap.add(testProperty, objectArray.getClass());        assertEquals("Check Indexed Property exists", objectArray.getClass(), dynaMap.getDynaProperty(testProperty).getType());        assertEquals("Check Indexed Property is correct type", objectArray.getClass(), dynaMap.get(testProperty).getClass());        // Retrieving from Array should initialize DynaBean        for (int i = index; i >= 0; i--) {            assertEquals("Check Array Components initialized", LazyDynaBean.class, dynaMap.get(testProperty, index).getClass());        }        dynaMap.add(testPropertyB, objectArray.getClass());        LazyDynaBean newBean = new LazyDynaBean();        newBean.set(testPropertyB, testString2);        dynaMap.set(testPropertyA, index, newBean);        assertEquals("Check Indexed Value is correct(a)", testString2, ((DynaBean)dynaMap.get(testPropertyA, index)).get(testPropertyB));    }    /**     * Test Setting an 'Indexed' Property using PropertyUtils     */    public void testIndexedPropertyUtils() {        int   index     = 3;        dynaMap.setReturnNull(false);        // Check the property & value doesn't exist        assertFalse("Check Indexed Property doesn't exist", dynaMap.isDynaProperty(testProperty));        assertNull("Check Indexed Property is null", dynaMap.get(testProperty));        assertNull("Check Indexed value is null", dynaMap.get(testProperty, index));        // Use PropertyUtils to set the indexed value        try {          PropertyUtils.setProperty(dynaMap, testProperty+"["+index+"]", testString1);        }        catch (NoSuchMethodException ex) {            fail("testIndexedPropertyUtils threw "+ex);        }        catch (InvocationTargetException ex) {            fail("testIndexedPropertyUtils threw "+ex);        }        catch (IllegalAccessException ex) {            fail("testIndexedPropertyUtils threw "+ex);        }        // Check property value correctly set        assertEquals("Check Indexed Bean Value is correct", testString1, dynaMap.get(testProperty, index));    }    /**     * Test Setting an Indexed Property when MutableDynaClass is set to restricted     */    public void testIndexedPropertyRestricted() {        int   index     = 3;        // Set the MutableDyanClass to 'restricted' (i.e. no new properties cab be added        dynaMap.setRestricted(true);        assertTrue("Check MutableDynaClass is restricted", dynaMap.isRestricted());        // Check the property & value doesn't exist        assertNull("Check Property doesn't exist", dynaMap.getDynaProperty(testProperty));        assertNull("Check Value is null", dynaMap.get(testProperty));        // Set the property - should fail because property doesn't exist and MutableDynaClass is restricted        try {            dynaMap.set(testProperty, index, testInteger1);            fail("expected IllegalArgumentException trying to add new property to restricted MutableDynaClass");        } catch (IllegalArgumentException expected) {            // expected result        }    }    /**     * Test setting indexed property for type which is not List or Array     */    public void testIndexedInvalidType() {        int   index     = 3;        dynaMap.set(testProperty, "Test String");        assertFalse("Check Property is not indexed", dynaMap.getDynaProperty(testProperty).isIndexed());        try {            dynaMap.set(testProperty, index, testString1);            fail("set(property, index, value) should have thrown IllegalArgumentException");        } catch (IllegalArgumentException expected) {            // expected result        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -