Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/FacesConfigParserTestCase.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/FacesConfigParserTestCase.java?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/FacesConfigParserTestCase.java (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/FacesConfigParserTestCase.java Mon Dec 12 16:46:02 2005 @@ -0,0 +1,274 @@ +/* + * Copyright 2004-2005 The Apache Software Foundation. + * + * Licensed 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.shale.tiger.config; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import org.apache.shale.tiger.managed.config.ManagedBeanConfig; +import org.apache.shale.tiger.managed.config.ManagedPropertyConfig; + +/** + * <p>Test case for <code>org.apache.shale.tiger.digester.FacesConfigParser</code>.</p> + */ +public class FacesConfigParserTestCase extends TestCase { + + + // ------------------------------------------------------------ Constructors + + + // Construct a new instance of this test case + public FacesConfigParserTestCase(String name) { + super(name); + } + + + // ---------------------------------------------------- Overall Test Methods + + + // Set up instance variables required by this test case. + public void setUp() { + + facesConfig = new FacesConfigConfig(); + parser = new FacesConfigParser(); + + } + + + // Return the tests included in this test case. + public static Test suite() { + return new TestSuite(FacesConfigParserTestCase.class); + } + + + // Tear down instance variables required by this test case + public void tearDown() { + + facesConfig = null; + parser = null; + + } + + + // ------------------------------------------------------ Instance Variables + + + // FacesConfigConfig instance representing our parsed metadata + FacesConfigConfig facesConfig = null; + + + // Parser instance to be tested + FacesConfigParser parser = null; + + + // ------------------------------------------------------------ Test Methods + + + // Test pristine instance of the parser + public void testPristine() { + + assertNull(parser.getFacesConfig()); + assertNull(parser.getResource()); + assertTrue(parser.isValidating()); + + assertEquals(0, facesConfig.getManagedBeans().size()); + } + + + // Test a static parse of our configuration resources that should + // reflect appropriate information merging, but should *not* reflect + // any annotations on included classes + public void testStatic() throws Exception { + + ManagedBeanConfig mb = null; + ManagedPropertyConfig mp = null; + + // Wire up our FacesConfigConfig instance + parser.setFacesConfig(facesConfig); + assertTrue(facesConfig == parser.getFacesConfig()); + + // Make sure we do validating parses + parser.setValidating(true); + assertTrue(parser.isValidating()); + + // Parse resource 0 + parser.setResource(this.getClass().getResource + ("/org/apache/shale/tiger/config/test-config-0.xml")); + assertNotNull(parser.getResource()); + parser.parse(); + assertEquals(1, facesConfig.getManagedBeans().size()); + + // Validate bean0 conditions after parsing resource 0 + mb = facesConfig.getManagedBean("bean0"); + assertNotNull(mb); + assertEquals("bean0", mb.getName()); + assertEquals("request", mb.getScope()); + assertNull(mb.getListEntries()); + assertNull(mb.getMapEntries()); + assertEquals(0, mb.getProperties().size()); + + // Validate bean1 conditions after parsing resource 0 + assertNull(mb.getProperty("bean1")); + + // Validate bean2 conditions after parsing resource 0 + assertNull(mb.getProperty("bean2")); + + // Validate bean3 conditions after parsing resource 0 + assertNull(mb.getProperty("bean3")); + + // Parse resource 1 + parser.setResource(this.getClass().getResource + ("/org/apache/shale/tiger/config/test-config-1.xml")); + assertNotNull(parser.getResource()); + parser.parse(); + assertEquals(2, facesConfig.getManagedBeans().size()); + + // Validate bean0 conditions after parsing resource 1 + mb = facesConfig.getManagedBean("bean0"); + assertNotNull(mb); + assertEquals("bean0", mb.getName()); + assertEquals("request", mb.getScope()); + assertNull(mb.getListEntries()); + assertNull(mb.getMapEntries()); + assertEquals(1, mb.getProperties().size()); + mp = mb.getProperty("stringProperty"); + assertNotNull(mp); + assertNull(mp.getValue()); + assertTrue(mp.isNullValue()); + + // Validate bean1 conditions after parsing resource 1 + mb = facesConfig.getManagedBean("bean1"); + assertNotNull(mb); + assertEquals(3, mb.getProperties().size()); + mp = mb.getProperty("byteProperty"); + assertNotNull(mp); + assertEquals("11", mp.getValue()); + assertTrue(!mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("doubleProperty"); + assertNotNull(mp); + assertEquals("222.0", mp.getValue()); + assertTrue(!mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("intProperty"); + assertNotNull(mp); + assertEquals("44", mp.getValue()); + assertTrue(!mp.isExpression()); + assertTrue(!mp.isNullValue()); + + // Validate bean2 conditions after parsing resource 1 + assertNull(facesConfig.getManagedBean("bean2")); + + // Validate bean3 conditions after parsing resource 1 + assertNull(facesConfig.getManagedBean("bean3")); + + // Parse resource 2 + parser.setResource(this.getClass().getResource + ("/org/apache/shale/tiger/config/test-config-2.xml")); + assertNotNull(parser.getResource()); + parser.parse(); + assertEquals(3, facesConfig.getManagedBeans().size()); + + // Validate bean2 conditions after parsing resource 2 + mb = facesConfig.getManagedBean("bean2"); + assertNotNull(mb); + assertEquals("bean2", mb.getName()); + assertEquals("request", mb.getScope()); + assertNull(mb.getListEntries()); + assertNull(mb.getMapEntries()); + assertEquals(1, mb.getProperties().size()); + mp = mb.getProperty("stringProperty"); + assertNotNull(mp); + assertEquals("java.lang.String", mp.getType()); + assertEquals("Override The Annotation", mp.getValue()); + assertTrue(!mp.isExpression()); + assertTrue(!mp.isNullValue()); + + // Parse resource 3 + parser.setResource(this.getClass().getResource + ("/org/apache/shale/tiger/config/test-config-3.xml")); + assertNotNull(parser.getResource()); + parser.parse(); + assertEquals(4, facesConfig.getManagedBeans().size()); + + // Validate bean3 conditions after parsing resource 3 + mb = facesConfig.getManagedBean("bean3"); + assertNotNull(mb); + assertEquals("bean3", mb.getName()); + assertEquals("none", mb.getScope()); + assertNull(mb.getListEntries()); + assertNull(mb.getMapEntries()); + assertEquals(8, mb.getProperties().size()); + mp = mb.getProperty("byteProperty"); + assertNotNull(mp); + assertEquals("byte", mp.getType()); + assertEquals("#{bean1.byteProperty}", mp.getValue()); + assertTrue(mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("charProperty"); + assertNotNull(mp); + assertEquals("char", mp.getType()); + assertEquals("#{bean1.charProperty}", mp.getValue()); + assertTrue(mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("charProperty"); + assertNotNull(mp); + assertEquals("char", mp.getType()); + assertEquals("#{bean1.charProperty}", mp.getValue()); + assertTrue(mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("doubleProperty"); + assertNotNull(mp); + assertEquals("double", mp.getType()); + assertEquals("#{bean1.doubleProperty}", mp.getValue()); + assertTrue(mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("floatProperty"); + assertNotNull(mp); + assertEquals("float", mp.getType()); + assertEquals("#{bean1.floatProperty}", mp.getValue()); + assertTrue(mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("intProperty"); + assertNotNull(mp); + assertEquals("int", mp.getType()); + assertEquals("#{bean1.intProperty}", mp.getValue()); + assertTrue(mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("longProperty"); + assertNotNull(mp); + assertEquals("long", mp.getType()); + assertEquals("#{bean1.longProperty}", mp.getValue()); + assertTrue(mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("shortProperty"); + assertNotNull(mp); + assertEquals("short", mp.getType()); + assertEquals("#{bean1.shortProperty}", mp.getValue()); + assertTrue(mp.isExpression()); + assertTrue(!mp.isNullValue()); + mp = mb.getProperty("stringProperty"); + assertNotNull(mp); + assertEquals("java.lang.String", mp.getType()); + assertEquals("#{bean1.stringProperty}", mp.getValue()); + assertTrue(mp.isExpression()); + assertTrue(!mp.isNullValue()); + + } + + +}
Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/TestBean.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/TestBean.java?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/TestBean.java (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/TestBean.java Mon Dec 12 16:46:02 2005 @@ -0,0 +1,225 @@ +/* + * Copyright 2004-2005 The Apache Software Foundation. + * + * Licensed 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.shale.tiger.config; + +import org.apache.shale.tiger.managed.Bean; +import org.apache.shale.tiger.managed.Scope; +import org.apache.shale.tiger.managed.Value; + +/** + * <p>JavaBean class for testing.</p> + */ [EMAIL PROTECTED](name="bean2", scope=Scope.APPLICATION) +public class TestBean { + + /** Creates a new instance of TestBean */ + public TestBean() { + } + + /** + * Holds value of property byteProperty. + */ + @Value("-1") + private byte byteProperty = (byte) 1; + + /** + * Getter for property byteProperty. + * @return Value of property byteProperty. + */ + public byte getByteProperty() { + + return this.byteProperty; + } + + /** + * Setter for property byteProperty. + * @param byteProperty New value of property byteProperty. + */ + public void setByteProperty(byte byteProperty) { + + this.byteProperty = byteProperty; + } + + /** + * Holds value of property charProperty. + */ + @Value("z") + private char charProperty = 'a'; + + /** + * Getter for property charProperty. + * @return Value of property charProperty. + */ + public char getCharProperty() { + + return this.charProperty; + } + + /** + * Setter for property charProperty. + * @param charProperty New value of property charProperty. + */ + public void setCharProperty(char charProperty) { + + this.charProperty = charProperty; + } + + /** + * Holds value of property doubleProperty. + */ + @Value("-2.0") + private double doubleProperty = (double) 2.0; + + /** + * Getter for property doubleProperty. + * @return Value of property doubleProperty. + */ + public double getDoubleProperty() { + + return this.doubleProperty; + } + + /** + * Setter for property doubleProperty. + * @param doubleProperty New value of property doubleProperty. + */ + public void setDoubleProperty(double doubleProperty) { + + this.doubleProperty = doubleProperty; + } + + /** + * Holds value of property floatProperty. + */ + @Value("-3.0") + private float floatProperty = (float) 3.0; + + /** + * Getter for property floatProperty. + * @return Value of property floatProperty. + */ + public float getFloatProperty() { + + return this.floatProperty; + } + + /** + * Setter for property floatProperty. + * @param floatProperty New value of property floatProperty. + */ + public void setFloatProperty(float floatProperty) { + + this.floatProperty = floatProperty; + } + + /** + * Holds value of property intProperty. + */ + @Value("-4") + private int intProperty = 4; + + /** + * Getter for property intProperty. + * @return Value of property intProperty. + */ + public int getIntProperty() { + + return this.intProperty; + } + + /** + * Setter for property intProperty. + * @param intProperty New value of property intProperty. + */ + public void setIntProperty(int intProperty) { + + this.intProperty = intProperty; + } + + /** + * Holds value of property longProperty. + */ + @Value("-5") + private long longProperty = (long) 5; + + /** + * Getter for property longProperty. + * @return Value of property longProperty. + */ + public long getLongProperty() { + + return this.longProperty; + } + + /** + * Setter for property longProperty. + * @param longProperty New value of property longProperty. + */ + public void setLongProperty(long longProperty) { + + this.longProperty = longProperty; + } + + /** + * Holds value of property shortProperty. + */ + @Value("-6") + private short shortProperty = (short) 6; + + /** + * Getter for property shortProperty. + * @return Value of property shortProperty. + */ + public short getShortProperty() { + + return this.shortProperty; + } + + /** + * Setter for property shortProperty. + * @param shortProperty New value of property shortProperty. + */ + public void setShortProperty(short shortProperty) { + + this.shortProperty = shortProperty; + } + + /** + * Holds value of property stringProperty. + */ + @Value("Annotated") + private String stringProperty = "String"; + + /** + * Getter for property stringProperty. + * @return Value of property stringProperty. + */ + public String getStringProperty() { + + return this.stringProperty; + } + + /** + * Setter for property stringProperty. + * @param stringProperty New value of property stringProperty. + */ + public void setStringProperty(String stringProperty) { + + this.stringProperty = stringProperty; + } + +} Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/TestBean3.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/TestBean3.java?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/TestBean3.java (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/TestBean3.java Mon Dec 12 16:46:02 2005 @@ -0,0 +1,225 @@ +/* + * Copyright 2004-2005 The Apache Software Foundation. + * + * Licensed 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.shale.tiger.config; + +import org.apache.shale.tiger.managed.Bean; +import org.apache.shale.tiger.managed.Scope; +import org.apache.shale.tiger.managed.Value; + +/** + * <p>JavaBean class for testing.</p> + */ [EMAIL PROTECTED](name="bean3", scope=Scope.SESSION) +public class TestBean3 { + + /** Creates a new instance of TestBean */ + public TestBean3() { + } + + /** + * Holds value of property byteProperty. + */ + @Value("-1") + private byte byteProperty = (byte) 1; + + /** + * Getter for property byteProperty. + * @return Value of property byteProperty. + */ + public byte getByteProperty() { + + return this.byteProperty; + } + + /** + * Setter for property byteProperty. + * @param byteProperty New value of property byteProperty. + */ + public void setByteProperty(byte byteProperty) { + + this.byteProperty = byteProperty; + } + + /** + * Holds value of property charProperty. + */ + @Value("z") + private char charProperty = 'a'; + + /** + * Getter for property charProperty. + * @return Value of property charProperty. + */ + public char getCharProperty() { + + return this.charProperty; + } + + /** + * Setter for property charProperty. + * @param charProperty New value of property charProperty. + */ + public void setCharProperty(char charProperty) { + + this.charProperty = charProperty; + } + + /** + * Holds value of property doubleProperty. + */ + @Value("-2.0") + private double doubleProperty = (double) 2.0; + + /** + * Getter for property doubleProperty. + * @return Value of property doubleProperty. + */ + public double getDoubleProperty() { + + return this.doubleProperty; + } + + /** + * Setter for property doubleProperty. + * @param doubleProperty New value of property doubleProperty. + */ + public void setDoubleProperty(double doubleProperty) { + + this.doubleProperty = doubleProperty; + } + + /** + * Holds value of property floatProperty. + */ + @Value("-3.0") + private float floatProperty = (float) 3.0; + + /** + * Getter for property floatProperty. + * @return Value of property floatProperty. + */ + public float getFloatProperty() { + + return this.floatProperty; + } + + /** + * Setter for property floatProperty. + * @param floatProperty New value of property floatProperty. + */ + public void setFloatProperty(float floatProperty) { + + this.floatProperty = floatProperty; + } + + /** + * Holds value of property intProperty. + */ + @Value("-4") + private int intProperty = 4; + + /** + * Getter for property intProperty. + * @return Value of property intProperty. + */ + public int getIntProperty() { + + return this.intProperty; + } + + /** + * Setter for property intProperty. + * @param intProperty New value of property intProperty. + */ + public void setIntProperty(int intProperty) { + + this.intProperty = intProperty; + } + + /** + * Holds value of property longProperty. + */ + @Value("-5") + private long longProperty = (long) 5; + + /** + * Getter for property longProperty. + * @return Value of property longProperty. + */ + public long getLongProperty() { + + return this.longProperty; + } + + /** + * Setter for property longProperty. + * @param longProperty New value of property longProperty. + */ + public void setLongProperty(long longProperty) { + + this.longProperty = longProperty; + } + + /** + * Holds value of property shortProperty. + */ + @Value("-6") + private short shortProperty = (short) 6; + + /** + * Getter for property shortProperty. + * @return Value of property shortProperty. + */ + public short getShortProperty() { + + return this.shortProperty; + } + + /** + * Setter for property shortProperty. + * @param shortProperty New value of property shortProperty. + */ + public void setShortProperty(short shortProperty) { + + this.shortProperty = shortProperty; + } + + /** + * Holds value of property stringProperty. + */ + @Value("Annotated") + private String stringProperty = "String"; + + /** + * Getter for property stringProperty. + * @return Value of property stringProperty. + */ + public String getStringProperty() { + + return this.stringProperty; + } + + /** + * Setter for property stringProperty. + * @param stringProperty New value of property stringProperty. + */ + public void setStringProperty(String stringProperty) { + + this.stringProperty = stringProperty; + } + +} Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-0.xml URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-0.xml?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-0.xml (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-0.xml Mon Dec 12 16:46:02 2005 @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + + Copyright 2002,2004-2005 The Apache Software Foundation. + + Licensed 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. + + $Id: build.xml 54942 2004-10-16 22:39:25Z craigmcc $ + +--> + +<!DOCTYPE faces-config PUBLIC + '-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN' + 'http://java.sun.com/dtd/web-facesconfig_1_0.dtd'> +<faces-config> + + <managed-bean> + <managed-bean-name>bean0</managed-bean-name> + <managed-bean-class>org.apache.shale.tiger.config.TestBean</managed-bean-class> + <managed-bean-scope>request</managed-bean-scope> + </managed-bean> + +</faces-config> Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-1.xml URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-1.xml?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-1.xml (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-1.xml Mon Dec 12 16:46:02 2005 @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + + Copyright 2002,2004-2005 The Apache Software Foundation. + + Licensed 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. + + $Id: build.xml 54942 2004-10-16 22:39:25Z craigmcc $ + +--> + +<!DOCTYPE faces-config PUBLIC + '-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN' + 'http://java.sun.com/dtd/web-facesconfig_1_1.dtd'> + +<faces-config> + + <!-- Initialize bean1 with *some* non-default values --> + <managed-bean> + <managed-bean-name>bean1</managed-bean-name> + <managed-bean-class>org.apache.shale.tiger.config.TestBean</managed-bean-class> + <managed-bean-scope>session</managed-bean-scope> + <managed-property> + <property-name>byteProperty</property-name> + <property-class>byte</property-class> + <value>11</value> + </managed-property> + <managed-property> + <property-name>doubleProperty</property-name> + <property-class>double</property-class> + <value>22.0</value> + </managed-property> + </managed-bean> + + <!-- Overlay some additional bean1 values --> + <managed-bean> + <managed-bean-name>bean1</managed-bean-name> + <managed-bean-class>org.apache.shale.tiger.config.TestBean</managed-bean-class> + <managed-bean-scope>session</managed-bean-scope> + <managed-property> + <property-name>intProperty</property-name> + <property-class>int</property-class> + <value>44</value> + </managed-property> + </managed-bean> + + <!-- Overlay again to confirm merging --> + <managed-bean> + <managed-bean-name>bean1</managed-bean-name> + <managed-bean-class>org.apache.shale.tiger.config.TestBean</managed-bean-class> + <managed-bean-scope>session</managed-bean-scope> + <managed-property> + <property-name>doubleProperty</property-name> + <property-class>double</property-class> + <value>222.0</value> + </managed-property> + </managed-bean> + + <!-- Overlay a value on bean0 as well --> + <managed-bean> + <managed-bean-name>bean0</managed-bean-name> + <managed-bean-class>org.apache.shale.tiger.config.TestBean</managed-bean-class> + <managed-bean-scope>request</managed-bean-scope> + <managed-property> + <property-name>stringProperty</property-name> + <property-class>java.lang.String</property-class> + <null-value/> + </managed-property> + </managed-bean> + +</faces-config> Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-2.xml URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-2.xml?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-2.xml (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-2.xml Mon Dec 12 16:46:02 2005 @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + + Copyright 2002,2004-2005 The Apache Software Foundation. + + Licensed 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. + + $Id: build.xml 54942 2004-10-16 22:39:25Z craigmcc $ + +--> + +<!DOCTYPE faces-config PUBLIC + '-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN' + 'http://java.sun.com/dtd/web-facesconfig_1_1.dtd'> + +<faces-config> + + <!-- Override an annotated value on bean2 --> + <managed-bean> + <managed-bean-name>bean2</managed-bean-name> + <managed-bean-class>org.apache.shale.tiger.config.TestBean</managed-bean-class> + <managed-bean-scope>request</managed-bean-scope> + <managed-property> + <property-name>stringProperty</property-name> + <property-class>java.lang.String</property-class> + <value>Override The Annotation</value> + </managed-property> + </managed-bean> + +</faces-config> Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-3.xml URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-3.xml?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-3.xml (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-config-3.xml Mon Dec 12 16:46:02 2005 @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + + Copyright 2002,2004-2005 The Apache Software Foundation. + + Licensed 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. + + $Id: build.xml 54942 2004-10-16 22:39:25Z craigmcc $ + +--> + +<!DOCTYPE faces-config PUBLIC + '-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN' + 'http://java.sun.com/dtd/web-facesconfig_1_1.dtd'> + +<faces-config> + + <!-- Configure bean properties with value binding expressions --> + <managed-bean> + <managed-bean-name>bean3</managed-bean-name> + <managed-bean-class>org.apache.shale.tiger.config.TestBean</managed-bean-class> + <managed-bean-scope>none</managed-bean-scope> + <managed-property> + <property-name>byteProperty</property-name> + <property-class>byte</property-class> + <value>#{bean1.byteProperty}</value> + </managed-property> + <managed-property> + <property-name>charProperty</property-name> + <property-class>char</property-class> + <value>#{bean1.charProperty}</value> + </managed-property> + <managed-property> + <property-name>doubleProperty</property-name> + <property-class>double</property-class> + <value>#{bean1.doubleProperty}</value> + </managed-property> + <managed-property> + <property-name>floatProperty</property-name> + <property-class>float</property-class> + <value>#{bean1.floatProperty}</value> + </managed-property> + <managed-property> + <property-name>intProperty</property-name> + <property-class>int</property-class> + <value>#{bean1.intProperty}</value> + </managed-property> + <managed-property> + <property-name>longProperty</property-name> + <property-class>long</property-class> + <value>#{bean1.longProperty}</value> + </managed-property> + <managed-property> + <property-name>shortProperty</property-name> + <property-class>short</property-class> + <value>#{bean1.shortProperty}</value> + </managed-property> + <managed-property> + <property-name>stringProperty</property-name> + <property-class>java.lang.String</property-class> + <value>#{bean1.stringProperty}</value> + </managed-property> + </managed-bean> + +</faces-config> Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-web.xml URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-web.xml?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-web.xml (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/config/test-web.xml Mon Dec 12 16:46:02 2005 @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Copyright 2004-2005 The Apache Software Foundation. + + Licensed 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. + +--> +<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> + + <display-name>Pseudo Application for Unit Tests</display-name> + + <!-- JSF RI verify objects at start --> + <context-param> + <param-name>com.sun.faces.verifyObjects</param-name> + <param-value>true</param-value> + </context-param> + + <!-- Select JSF State Saving Mode --> + <context-param> + <param-name>javax.faces.STATE_SAVING_METHOD</param-name> + <param-value>server</param-value> + </context-param> + + <!-- Specify faces-config.xml resource paths --> + <context-param> + <param-name>javax.faces.CONFIG_FILES</param-name> + <param-value> + /WEB-INF/test-config-0.xml, + /WEB-INF/test-config-1.xml, + /WEB-INF/test-config-2.xml + </param-value> + </context-param> + + <!-- Shale Application Controller Filter --> + <filter> + <filter-name>shale</filter-name> + <filter-class> + org.apache.shale.faces.ShaleApplicationFilter + </filter-class> + </filter> + + <!-- Shale Application Controller Filter Mapping --> + <filter-mapping> + <filter-name>shale</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + + <!-- JavaServer Faces Servlet Configuration --> + <servlet> + <servlet-name>faces</servlet-name> + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> + <load-on-startup>1</load-on-startup> + </servlet> + + <!-- JavaServer Faces Servlet Mapping --> + <servlet-mapping> + <servlet-name>faces</servlet-name> + <url-pattern>*.faces</url-pattern> + </servlet-mapping> + + <!-- Welcome File List --> + <welcome-file-list> + <welcome-file>index.jsp</welcome-file> + </welcome-file-list> + +</web-app> Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/faces/LifecycleListenerTestCase.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/faces/LifecycleListenerTestCase.java?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/faces/LifecycleListenerTestCase.java (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/faces/LifecycleListenerTestCase.java Mon Dec 12 16:46:02 2005 @@ -0,0 +1,278 @@ +/* + * Copyright 2004-2005 The Apache Software Foundation. + * + * Licensed 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.shale.tiger.faces; + +import java.io.File; +import java.util.Map; +import java.util.Set; +import javax.servlet.ServletContextEvent; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import org.apache.shale.test.base.AbstractJsfTestCase; +import org.apache.shale.tiger.config.FacesConfigConfig; +import org.apache.shale.tiger.managed.config.ManagedBeanConfig; +import org.apache.shale.tiger.managed.config.ManagedPropertyConfig; + +/** + * <p>Test case for <code>org.apache.shale.tiger.faces.LifecycleListener</code>.</p> + */ +public class LifecycleListenerTestCase extends AbstractJsfTestCase { + + + // ------------------------------------------------------------ Constructors + + + // Construct a new instance of this test case + public LifecycleListenerTestCase(String name) { + super(name); + } + + + // ---------------------------------------------------- Overall Test Methods + + + // Set up instance variables required by this test case. + public void setUp() { + + // Set up mock web application environment + super.setUp(); + servletContext.addInitParameter("javax.faces.CONFIG_FILES", + "/WEB-INF/test-config-0.xml," + + "/WEB-INF/test-config-1.xml," + + "/WEB-INF/test-config-2.xml"); + File root = new File(System.getProperty("basedir") + "/target/test-webapp"); + servletContext.setDocumentRoot(root); + + // Create listener instance to be tested + listener = new LifecycleListener(); + + } + + + // Return the tests included in this test case. + public static Test suite() { + return new TestSuite(LifecycleListenerTestCase.class); + } + + + // Tear down instance variables required by this test case + public void tearDown() { + + // Release tested instances + listener = null; + + // Tear down the mock web application environment + super.tearDown(); + + } + + + // ------------------------------------------------------ Instance Variables + + + // LifecycleListener instance to be tested + LifecycleListener listener = null; + + + // ------------------------------------------------------------ Test Methods + + + // Test basic operations -- can we initialize and destroy with no exceptions? + public void testBasic() { + + // Create a ServletContextEvent we will pass to the event methods + ServletContextEvent event = new ServletContextEvent(servletContext); + + // Initialize the servlet context listener + listener.contextInitialized(event); + + // Finalize the servlet context listener + listener.contextDestroyed(event); + + } + + + // Test configuration of managed beans + public void testManagedBeans() { + + // Create a ServletContextEvent we will pass to the event methods + ServletContextEvent event = new ServletContextEvent(servletContext); + + // Initialize the servlet context listener + listener.contextInitialized(event); + + // Check out the managed beans configuration information + FacesConfigConfig fcConfig = + (FacesConfigConfig) servletContext.getAttribute(LifecycleListener.FACES_CONFIG_CONFIG); + assertNotNull(config); + Map<String,ManagedBeanConfig> mbMap = fcConfig.getManagedBeans(); + assertNotNull(mbMap); + assertEquals(4, mbMap.size()); + + ManagedPropertyConfig mpConfig = null; + + // Validate configuration of bean0 + ManagedBeanConfig bean0 = fcConfig.getManagedBean("bean0"); + assertNotNull(bean0); + assertTrue(bean0 == mbMap.get("bean0")); + assertEquals("bean0", bean0.getName()); + assertEquals("org.apache.shale.tiger.config.TestBean", bean0.getType()); + assertEquals("request", bean0.getScope()); + assertNull(bean0.getListEntries()); + assertNull(bean0.getMapEntries()); + Map<String,ManagedPropertyConfig> bean0Map = bean0.getProperties(); + assertNotNull(bean0Map); + assertEquals(1, bean0Map.size()); + + mpConfig = bean0.getProperty("stringProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean0Map.get("stringProperty")); + assertEquals("stringProperty", mpConfig.getName()); + assertEquals("java.lang.String", mpConfig.getType()); + assertNull(mpConfig.getValue()); + assertTrue(mpConfig.isNullValue()); + + // Validate configuration of bean1 + ManagedBeanConfig bean1 = fcConfig.getManagedBean("bean1"); + assertNotNull(bean1); + assertTrue(bean1 == mbMap.get("bean1")); + assertEquals("bean1", bean1.getName()); + assertEquals("org.apache.shale.tiger.config.TestBean", bean1.getType()); + assertEquals("session", bean1.getScope()); + assertNull(bean1.getListEntries()); + assertNull(bean1.getMapEntries()); + Map<String,ManagedPropertyConfig> bean1Map = bean1.getProperties(); + assertNotNull(bean1Map); + assertEquals(3, bean1Map.size()); + + mpConfig = bean1.getProperty("byteProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean1Map.get("byteProperty")); + assertEquals("byteProperty", mpConfig.getName()); + assertEquals("byte", mpConfig.getType()); + assertEquals("11", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + mpConfig = bean1.getProperty("doubleProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean1Map.get("doubleProperty")); + assertEquals("doubleProperty", mpConfig.getName()); + assertEquals("double", mpConfig.getType()); + assertEquals("222.0", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + mpConfig = bean1.getProperty("intProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean1Map.get("intProperty")); + assertEquals("intProperty", mpConfig.getName()); + assertEquals("int", mpConfig.getType()); + assertEquals("44", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + // Validate configuration of bean2 + ManagedBeanConfig bean2 = fcConfig.getManagedBean("bean2"); + assertNotNull(bean2); + assertTrue(bean2 == mbMap.get("bean2")); + assertEquals("bean2", bean2.getName()); + assertEquals("org.apache.shale.tiger.config.TestBean", bean2.getType()); + assertEquals("request", bean2.getScope()); + assertNull(bean2.getListEntries()); + assertNull(bean2.getMapEntries()); + Map<String,ManagedPropertyConfig> bean2Map = bean2.getProperties(); + assertNotNull(bean2Map); + assertEquals(8, bean2Map.size()); + + mpConfig = bean2.getProperty("byteProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean2Map.get("byteProperty")); + assertEquals("byteProperty", mpConfig.getName()); + assertEquals("byte", mpConfig.getType()); + assertEquals("-1", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + mpConfig = bean2.getProperty("charProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean2Map.get("charProperty")); + assertEquals("charProperty", mpConfig.getName()); + assertEquals("char", mpConfig.getType()); + assertEquals("z", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + mpConfig = bean2.getProperty("doubleProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean2Map.get("doubleProperty")); + assertEquals("doubleProperty", mpConfig.getName()); + assertEquals("double", mpConfig.getType()); + assertEquals("-2.0", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + mpConfig = bean2.getProperty("floatProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean2Map.get("floatProperty")); + assertEquals("floatProperty", mpConfig.getName()); + assertEquals("float", mpConfig.getType()); + assertEquals("-3.0", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + mpConfig = bean2.getProperty("intProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean2Map.get("intProperty")); + assertEquals("intProperty", mpConfig.getName()); + assertEquals("int", mpConfig.getType()); + assertEquals("-4", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + mpConfig = bean2.getProperty("longProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean2Map.get("longProperty")); + assertEquals("longProperty", mpConfig.getName()); + assertEquals("long", mpConfig.getType()); + assertEquals("-5", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + mpConfig = bean2.getProperty("shortProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean2Map.get("shortProperty")); + assertEquals("shortProperty", mpConfig.getName()); + assertEquals("short", mpConfig.getType()); + assertEquals("-6", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + mpConfig = bean2.getProperty("stringProperty"); + assertNotNull(mpConfig); + assertTrue(mpConfig == bean2Map.get("stringProperty")); + assertEquals("stringProperty", mpConfig.getName()); + assertEquals("java.lang.String", mpConfig.getType()); + assertEquals("Override The Annotation", mpConfig.getValue()); + assertTrue(!mpConfig.isNullValue()); + + // Finalize the servlet context listener + listener.contextDestroyed(event); + + } + + + // Test pristine instance of the listener + public void testPristine() { + + assertNotNull(listener); + + } + + +} Added: struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/faces/VariableResolverImplTestCase.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/faces/VariableResolverImplTestCase.java?rev=356434&view=auto ============================================================================== --- struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/faces/VariableResolverImplTestCase.java (added) +++ struts/shale/trunk/tiger/src/test/org/apache/shale/tiger/faces/VariableResolverImplTestCase.java Mon Dec 12 16:46:02 2005 @@ -0,0 +1,254 @@ +/* + * Copyright 2004-2005 The Apache Software Foundation. + * + * Licensed 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.shale.tiger.faces; + +import java.io.File; +import java.util.Map; +import java.util.Set; +import javax.servlet.ServletContextEvent; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import org.apache.shale.test.base.AbstractJsfTestCase; +import org.apache.shale.tiger.config.FacesConfigConfig; +import org.apache.shale.tiger.config.TestBean; +import org.apache.shale.tiger.managed.config.ManagedBeanConfig; +import org.apache.shale.tiger.managed.config.ManagedPropertyConfig; + +/** + * <p>Test case for <code>org.apache.shale.tiger.faces.VariableResolverImpl</code>.</p> + */ +public class VariableResolverImplTestCase extends AbstractJsfTestCase { + + + // ------------------------------------------------------------ Constructors + + + // Construct a new instance of this test case + public VariableResolverImplTestCase(String name) { + super(name); + } + + + // ---------------------------------------------------- Overall Test Methods + + + // Set up instance variables required by this test case. + public void setUp() { + + // Set up mock web application environment + super.setUp(); + servletContext.addInitParameter("javax.faces.CONFIG_FILES", + "/WEB-INF/test-config-0.xml," + + "/WEB-INF/test-config-1.xml," + + "/WEB-INF/test-config-2.xml," + + "/WEB-INF/test-config-3.xml"); + File root = new File(System.getProperty("basedir") + "/target/test-webapp"); + servletContext.setDocumentRoot(root); + + // Process our configuration information + listener = new LifecycleListener(); + listener.contextInitialized(new ServletContextEvent(servletContext)); + + // Create resolver instance to be tested + // (Force NPEs on delegation use cases by default) + resolver = new VariableResolverImpl(null); + + } + + + // Return the tests included in this test case. + public static Test suite() { + return new TestSuite(VariableResolverImplTestCase.class); + } + + + // Tear down instance variables required by this test case + public void tearDown() { + + // Release tested instances + resolver = null; + + // Finalize our context listener + listener.contextDestroyed(new ServletContextEvent(servletContext)); + listener = null; + + // Tear down the mock web application environment + super.tearDown(); + + } + + + // ------------------------------------------------------ Instance Variables + + + // LifecycleListener instance to be tested + LifecycleListener listener = null; + + // VariableResolverImpl instance to be tested + VariableResolverImpl resolver = null; + + + // ------------------------------------------------------------ Test Methods + + + // Test creating "bean0" + public void testBean0() { + + TestBean bean = (TestBean) resolver.resolveVariable(facesContext, "bean0"); + assertNotNull(bean); + assertEquals((byte) 1, bean.getByteProperty()); + assertEquals('a', bean.getCharProperty()); + assertEquals((double) 2.0, bean.getDoubleProperty()); + assertEquals((float) 3.0, bean.getFloatProperty()); + assertEquals(4, bean.getIntProperty()); + assertEquals((long) 5, bean.getLongProperty()); + assertEquals((short) 6, bean.getShortProperty()); + assertNull(bean.getStringProperty()); // Overridden in test-config-1.xml + + } + + + // Test creating "bean1" + public void testBean1() { + + TestBean bean = (TestBean) resolver.resolveVariable(facesContext, "bean1"); + assertNotNull(bean); + assertEquals((byte) 11, bean.getByteProperty()); // Configured + assertEquals('a', bean.getCharProperty()); // Defaulted + assertEquals((double) 222.0, bean.getDoubleProperty()); // Configured and overridden + assertEquals((float) 3.0, bean.getFloatProperty()); // Defaulted + assertEquals(44, bean.getIntProperty()); // Configured + assertEquals((long) 5, bean.getLongProperty()); // Defaulted + assertEquals((short) 6, bean.getShortProperty()); // Defaulted + assertEquals("String", bean.getStringProperty()); // Defaulted + + } + + + // Test creating "bean2" + public void testBean2() { + + TestBean bean = (TestBean) resolver.resolveVariable(facesContext, "bean2"); + assertNotNull(bean); + assertEquals((byte) -1, bean.getByteProperty()); // Annotated + assertEquals('z', bean.getCharProperty()); // Annotated + assertEquals((double) -2.0, bean.getDoubleProperty()); // Annotated + assertEquals((float) -3.0, bean.getFloatProperty()); // Annotated + assertEquals(-4, bean.getIntProperty()); // Annotated + assertEquals((long) -5, bean.getLongProperty()); // Annotated + assertEquals((short) -6, bean.getShortProperty()); // Annotated + assertEquals("Override The Annotation", bean.getStringProperty()); // Annotated and overridden + + } + + + // Test creating "bean3" + public void testBean3() { + + // We need to hook into the rest of the expression evaluation framework, + // since we will be evaluating expressions to initialize property values + resolver = new VariableResolverImpl(application.getVariableResolver()); + application.setVariableResolver(resolver); + + // The configuration metadata for "bean3" sets *all* of the properties + // of the new bean to match the corresponding property values for "bean1". + // Therefore, all of the assertions below should match the corresponding + // assertions from testBean1(). + TestBean bean = (TestBean) resolver.resolveVariable(facesContext, "bean3"); + assertNotNull(bean); + assertEquals((byte) 11, bean.getByteProperty()); // Configured + assertEquals('a', bean.getCharProperty()); // Defaulted + assertEquals((double) 222.0, bean.getDoubleProperty()); // Configured and overridden + assertEquals((float) 3.0, bean.getFloatProperty()); // Defaulted + assertEquals(44, bean.getIntProperty()); // Configured + assertEquals((long) 5, bean.getLongProperty()); // Defaulted + assertEquals((short) 6, bean.getShortProperty()); // Defaulted + assertEquals("String", bean.getStringProperty()); // Defaulted + + } + + + // Test creating existing bean name (delegating) + public void testExistingDelegating() { + + resolver = new VariableResolverImpl(application.getVariableResolver()); + application.setVariableResolver(resolver); + externalContext.getRequestMap().put("existing", "This is an existing object"); + Object instance = resolver.resolveVariable(facesContext, "existing"); + assertNotNull(instance); + assertTrue(instance instanceof String); + assertEquals("This is an existing object", instance); + + } + + + // Test creating existing bean name (plain) + public void testExistingPlain() { + + externalContext.getRequestMap().put("existing", "This is an existing object"); + Object instance = null; + try { + instance = resolver.resolveVariable(facesContext, "existing"); + fail("Should have thrown NullPointerException"); + } catch (NullPointerException e) { + ; // Expected result + } + + } + + + // Test pristine instance of the resolver + public void testPristine() { + + assertNotNull(resolver); + assertNotNull(application.getVariableResolver()); + FacesConfigConfig config = (FacesConfigConfig) + externalContext.getApplicationMap(). + get(LifecycleListener.FACES_CONFIG_CONFIG); + assertNotNull(config); + assertEquals(4, config.getManagedBeans().size()); + + } + + + // Test creating unknown bean name (delegating) + public void testUnknownDelegating() { + + resolver = new VariableResolverImpl(application.getVariableResolver()); + application.setVariableResolver(resolver); + Object instance = resolver.resolveVariable(facesContext, "unknown"); + assertNull(instance); + + } + + + // Test creating unknown bean name (plain) + public void testUnknownPlain() { + + Object instance = null; + try { + instance = resolver.resolveVariable(facesContext, "unknown"); + fail("Should have thrown NullPointerException"); + } catch (NullPointerException e) { + ; // Expected result + } + + } + + +} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]