Author: julien(a)jboss.com
Date: 2007-03-04 16:55:27 -0500 (Sun, 04 Mar 2007)
New Revision: 6531
Added:
trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanInterface.java
trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanInterfaceSuperInterface.java
Modified:
trunk/faces/src/main/org/jboss/portal/test/faces/el/AbstractBeanDecoratorTestCase.java
trunk/faces/src/main/org/jboss/portal/test/faces/el/AbstractDynamicBeanTestCase.java
trunk/faces/src/main/org/jboss/portal/test/faces/el/DelegatingPropertyResolverTestCase.java
trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBean.java
trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanDecorator.java
Log:
added test cases for DelegatingPropertyResolver acting on one of the implemented interface
of a bean
Modified:
trunk/faces/src/main/org/jboss/portal/test/faces/el/AbstractBeanDecoratorTestCase.java
===================================================================
---
trunk/faces/src/main/org/jboss/portal/test/faces/el/AbstractBeanDecoratorTestCase.java 2007-03-04
14:38:16 UTC (rev 6530)
+++
trunk/faces/src/main/org/jboss/portal/test/faces/el/AbstractBeanDecoratorTestCase.java 2007-03-04
21:55:27 UTC (rev 6531)
@@ -32,13 +32,16 @@
public class AbstractBeanDecoratorTestCase extends TestCase
{
+ /** . */
private TestBean testBean;
+
+ /** . */
private TestBeanDecorator testBeanDecorator;
protected void setUp() throws Exception
{
testBean = new TestBean();
- testBeanDecorator = new TestBeanDecorator();
+ testBeanDecorator = new TestBeanDecorator(testBean.property);
}
@@ -52,7 +55,7 @@
{
try
{
- testBeanDecorator.getType(null, testBeanDecorator.propertyName);
+ testBeanDecorator.getType(null, testBeanDecorator.property.name);
fail("Was expecting an IAE");
}
catch (IllegalArgumentException expected)
@@ -69,7 +72,7 @@
}
//
- assertEquals(Value.class, testBeanDecorator.getType(testBean,
testBeanDecorator.propertyName));
+ assertEquals(Value.class, testBeanDecorator.getType(testBean,
testBeanDecorator.property.name));
}
public void testGetValue()
@@ -85,7 +88,7 @@
try
{
- testBeanDecorator.getValue(null, testBeanDecorator.propertyName);
+ testBeanDecorator.getValue(null, testBeanDecorator.property.name);
fail("Was expecting an IAE");
}
catch (IllegalArgumentException expected)
@@ -94,14 +97,14 @@
//
assertEquals(null, testBeanDecorator.getValue(testBean, new Object()));
- assertEquals(new PropertyValue(testBean.propertyValue),
testBeanDecorator.getValue(testBean, testBeanDecorator.propertyName));
+ assertEquals(new PropertyValue(testBean.property.value),
testBeanDecorator.getValue(testBean, testBeanDecorator.property.name));
}
public void testSetValue()
{
try
{
- testBeanDecorator.setValue(null, testBeanDecorator.propertyName, new Object());
+ testBeanDecorator.setValue(null, testBeanDecorator.property.name, new
Object());
fail("Was expecting an IAE");
}
catch (IllegalArgumentException expected)
@@ -119,11 +122,11 @@
//
Value expectedValue = new Value();
- assertEquals(true, testBeanDecorator.setValue(testBean,
testBeanDecorator.propertyName, expectedValue));
- assertEquals(expectedValue, testBean.propertyValue);
+ assertEquals(true, testBeanDecorator.setValue(testBean,
testBeanDecorator.property.name, expectedValue));
+ assertEquals(expectedValue, testBean.property.value);
//
- assertEquals(true, testBeanDecorator.setValue(testBean,
testBeanDecorator.propertyName, null));
- assertEquals(null, testBean.propertyValue);
+ assertEquals(true, testBeanDecorator.setValue(testBean,
testBeanDecorator.property.name, null));
+ assertEquals(null, testBean.property.value);
}
}
Modified:
trunk/faces/src/main/org/jboss/portal/test/faces/el/AbstractDynamicBeanTestCase.java
===================================================================
---
trunk/faces/src/main/org/jboss/portal/test/faces/el/AbstractDynamicBeanTestCase.java 2007-03-04
14:38:16 UTC (rev 6530)
+++
trunk/faces/src/main/org/jboss/portal/test/faces/el/AbstractDynamicBeanTestCase.java 2007-03-04
21:55:27 UTC (rev 6531)
@@ -32,9 +32,9 @@
public class AbstractDynamicBeanTestCase extends TestCase
{
+ /** . */
private TestDynamicBean testDynamicBean;
-
protected void setUp() throws Exception
{
testDynamicBean = new TestDynamicBean();
Modified:
trunk/faces/src/main/org/jboss/portal/test/faces/el/DelegatingPropertyResolverTestCase.java
===================================================================
---
trunk/faces/src/main/org/jboss/portal/test/faces/el/DelegatingPropertyResolverTestCase.java 2007-03-04
14:38:16 UTC (rev 6530)
+++
trunk/faces/src/main/org/jboss/portal/test/faces/el/DelegatingPropertyResolverTestCase.java 2007-03-04
21:55:27 UTC (rev 6531)
@@ -34,11 +34,28 @@
public class DelegatingPropertyResolverTestCase extends TestCase
{
+ /** . */
private Object propertyName;
+
+ /** . */
private Object bean;
+
+ /** . */
private TestBean testBean;
+
+ /** . */
private TestBeanDecorator testBeanDecorator;
+
+ /** . */
+ private TestBeanDecorator testBeanInterfaceDecorator;
+
+ /** . */
+ private TestBeanDecorator testBeanInterfaceSuperInterfaceDecorator;
+
+ /** . */
private TestDynamicBean testDynamicBean;
+
+ /** . */
private DelegatingPropertyResolver resolver;
protected void setUp() throws Exception
@@ -46,8 +63,12 @@
propertyName = new Object();
bean = new Object();
testBean = new TestBean();
- testBeanDecorator = new TestBeanDecorator();
+ testBeanDecorator = new TestBeanDecorator(testBean.property);
+ testBeanInterfaceDecorator = new TestBeanDecorator(testBean.interfaceProperty);
+ testBeanInterfaceSuperInterfaceDecorator = new
TestBeanDecorator(testBean.interfaceSuperInterfaceProperty);
DelegatingPropertyResolver.registerDecorator(TestBean.class, testBeanDecorator);
+ DelegatingPropertyResolver.registerDecorator(TestBeanInterface.class,
testBeanInterfaceDecorator);
+ DelegatingPropertyResolver.registerDecorator(TestBeanInterfaceSuperInterface.class,
testBeanInterfaceSuperInterfaceDecorator);
testDynamicBean = new TestDynamicBean();
resolver = new DelegatingPropertyResolver();
}
@@ -63,7 +84,7 @@
{
}
- //
+ // TestBean
try
{
resolver.getType(testBean, new Object());
@@ -72,7 +93,9 @@
catch (PropertyNotFoundException expected)
{
}
- assertEquals(Value.class, resolver.getType(testBean,
testBeanDecorator.propertyName));
+ assertEquals(Value.class, resolver.getType(testBean,
testBeanDecorator.property.name));
+ assertEquals(Value.class, resolver.getType(testBean,
testBeanInterfaceDecorator.property.name));
+ assertEquals(Value.class, resolver.getType(testBean,
testBeanInterfaceSuperInterfaceDecorator.property.name));
//
try
@@ -118,7 +141,9 @@
catch (PropertyNotFoundException expected)
{
}
- assertEquals(testBean.propertyValue, resolver.getValue(testBean,
testBeanDecorator.propertyName));
+ assertEquals(testBean.property.value, resolver.getValue(testBean,
testBeanDecorator.property.name));
+ assertEquals(testBeanInterfaceDecorator.property.value, resolver.getValue(testBean,
testBeanInterfaceDecorator.property.name));
+ assertEquals(testBeanInterfaceSuperInterfaceDecorator.property.value,
resolver.getValue(testBean, testBeanInterfaceSuperInterfaceDecorator.property.name));
//
try
@@ -152,9 +177,15 @@
catch (PropertyNotFoundException expected)
{
}
- Value expectedValue = new Value();
- resolver.setValue(testBean, testBeanDecorator.propertyName, expectedValue);
- assertEquals(expectedValue, testBean.propertyValue);
+ Value propertyExpectedValue = new Value();
+ resolver.setValue(testBean, testBeanDecorator.property.name,
propertyExpectedValue);
+ assertEquals(propertyExpectedValue, testBeanDecorator.property.value);
+ Value interfacePropertyExpectedValue = new Value();
+ resolver.setValue(testBean, testBeanInterfaceDecorator.property.name,
interfacePropertyExpectedValue);
+ assertEquals(interfacePropertyExpectedValue,
testBeanInterfaceDecorator.property.value);
+ Value interfaceSuperInterfacePropertyExpectedValue = new Value();
+ resolver.setValue(testBean, testBeanInterfaceSuperInterfaceDecorator.property.name,
interfaceSuperInterfacePropertyExpectedValue);
+ assertEquals(interfaceSuperInterfacePropertyExpectedValue,
testBeanInterfaceSuperInterfaceDecorator.property.value);
//
try
@@ -165,7 +196,7 @@
catch (PropertyNotFoundException expected)
{
}
- resolver.setValue(testDynamicBean, testDynamicBean.propertyName, expectedValue);
- assertEquals(expectedValue, testDynamicBean.propertyValue);
+ resolver.setValue(testDynamicBean, testDynamicBean.propertyName,
propertyExpectedValue);
+ assertEquals(propertyExpectedValue, testDynamicBean.propertyValue);
}
}
Modified: trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBean.java
===================================================================
--- trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBean.java 2007-03-04 14:38:16
UTC (rev 6530)
+++ trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBean.java 2007-03-04 21:55:27
UTC (rev 6531)
@@ -26,14 +26,42 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
*/
-public class TestBean
+public class TestBean implements TestBeanInterface
{
/** . */
- Value propertyValue;
+ Property property;
+ /** . */
+ Property interfaceProperty;
+
+ /** . */
+ Property interfaceSuperInterfaceProperty;
+
public TestBean()
{
- this.propertyValue = new Value();
+ this.property = new Property();
+ this.interfaceProperty = new Property();
+ this.interfaceSuperInterfaceProperty = new Property();
}
+
+ public class Property
+ {
+
+ /** . */
+ final TestBean bean;
+
+ /** . */
+ final Object name;
+
+ /** . */
+ Value value;
+
+ public Property()
+ {
+ this.bean = TestBean.this;
+ this.name = new Object();
+ this.value = new Value();
+ }
+ }
}
Modified: trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanDecorator.java
===================================================================
--- trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanDecorator.java 2007-03-04
14:38:16 UTC (rev 6530)
+++ trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanDecorator.java 2007-03-04
21:55:27 UTC (rev 6531)
@@ -34,27 +34,35 @@
{
/** . */
- final Object propertyName;
+ final TestBean.Property property;
- public TestBeanDecorator()
+ public TestBeanDecorator(TestBean.Property property)
{
- propertyName = new Object();
+ this.property = property;
}
protected PropertyDecorator getProperty(Object propertyName)
{
- if (this.propertyName == propertyName)
+ if (property.name == propertyName)
{
return new AbstractPropertyDecorator(Value.class)
{
public Object getValue(Object bean) throws IllegalArgumentException
{
- return ((TestBean)bean).propertyValue;
+ if (property.bean == bean)
+ {
+ return property.value;
+ }
+ throw new IllegalArgumentException("Not the bean we expected");
}
public boolean setValue(Object bean, Object value) throws
IllegalArgumentException
{
- ((TestBean)bean).propertyValue = (Value)value;
- return true;
+ if (property.bean == bean)
+ {
+ property.value = (Value)value;
+ return true;
+ }
+ return false;
}
};
}
Added: trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanInterface.java
===================================================================
--- trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanInterface.java
(rev 0)
+++ trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanInterface.java 2007-03-04
21:55:27 UTC (rev 6531)
@@ -0,0 +1,31 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.faces.el;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public interface TestBeanInterface extends TestBeanInterfaceSuperInterface
+{
+}
Added:
trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanInterfaceSuperInterface.java
===================================================================
---
trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanInterfaceSuperInterface.java
(rev 0)
+++
trunk/faces/src/main/org/jboss/portal/test/faces/el/TestBeanInterfaceSuperInterface.java 2007-03-04
21:55:27 UTC (rev 6531)
@@ -0,0 +1,31 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.faces.el;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public interface TestBeanInterfaceSuperInterface
+{
+}