Author: schof Date: Wed Nov 9 11:53:29 2005 New Revision: 332129 URL: http://svn.apache.org/viewcvs?rev=332129&view=rev Log: Added test case for solution to Bug #36439 (allow user to configure additional properties in dialog-config.xml)
Added: struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/config/ struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/config/ConfigurationParserTestCase.java Modified: struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/faces/dialog-config.xml Added: struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/config/ConfigurationParserTestCase.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/config/ConfigurationParserTestCase.java?rev=332129&view=auto ============================================================================== --- struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/config/ConfigurationParserTestCase.java (added) +++ struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/config/ConfigurationParserTestCase.java Wed Nov 9 11:53:29 2005 @@ -0,0 +1,141 @@ +/* + * Copyright 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.dialog.config; + +import java.util.Map; +import junit.framework.Test; +import junit.framework.TestSuite; +import org.apache.commons.chain.Command; +import org.apache.commons.chain.Context; +import org.apache.commons.chain.impl.ContextBase; +import org.apache.shale.dialog.Dialog; +import org.apache.shale.dialog.Globals; +import org.apache.shale.dialog.config.ConfigurationInit; +import org.apache.shale.dialog.impl.DialogImpl; +import org.apache.shale.test.base.AbstractJsfTestCase; + +/** + * <p>Test case for <code>org.apache.shale.dialog.config. + * ConfigurationParser</code>.</p> + * + * $Id: ImplClassesTestCase.java 293010 2005-10-01 17:58:52Z wsmoak $ + */ + +public class ConfigurationParserTestCase extends AbstractJsfTestCase { + + + // ------------------------------------------------------------ Constructors + + + // Construct a new instance of this test case. + public ConfigurationParserTestCase(String name) { + super(name); + } + + // ---------------------------------------------------- Overall Test Methods + + + // Set up instance variables required by this test case. + public void setUp() { + + super.setUp(); + + // Configure the test dialogs we will be using + servletContext.addInitParameter + (Globals.CONFIGURATION_PARAM, + "/org/apache/shale/dialog/faces/dialog-config.xml"); + Context context = new ContextBase(); + context.put("context", servletContext); + Command command = new ConfigurationInit(); + try { + command.execute(context); + } + catch (Exception e) { + throw new RuntimeException(e); + } + dialogMap = (Map) externalContext.getApplicationMap().get(Globals. + DIALOGS); + + } + + // Return the tests included in this test case. + public static Test suite() { + + return (new TestSuite(ConfigurationParserTestCase.class)); + + } + + // Tear down instance variables required by this test case. + public void tearDown() { + + dialogMap = null; + super.tearDown(); + + } + + // ------------------------------------------------------ Instance Variables + + + // Map of configured Dialog instances for this test case, + // keyed by dialog id + Map dialogMap = null; + + // ------------------------------------------------------------ Test Methods + + // Test that the correct class instance was created for the + // "testClassName" dialog + public void testClassName() { + Dialog dialog = (Dialog) dialogMap.get("testClassName"); + assertNotNull(dialog); + assertTrue(dialog instanceof FooDialogImpl); + } + + + // Test that additional properties can be specified through the + // dialog-config + public void testAdditionalProps() { + Dialog dialog = (Dialog) dialogMap.get("testAdditionalProps"); + assertNotNull(dialog); + assertTrue(dialog instanceof FooDialogImpl); + assertEquals("testAdditionalProps", dialog.getName()); + + FooDialogImpl fooDialog = (FooDialogImpl)dialog; + assertEquals(fooDialog.getFoo(), "bar"); + + // FIXME + // still need to test inside state and transition + // requires a custom configuration class to create specialized classes + } + + // --------------------------------------------------------- Support Methods + + + // ----------------------------------------------------------- Inner Classes + + // Inner class used to test className attribute + public static final class FooDialogImpl extends DialogImpl { + private String foo; + + public void setFoo(String foo) { + this.foo = foo; + } + + public String getFoo() { + return foo; + } + } +} Modified: struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/faces/dialog-config.xml URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/faces/dialog-config.xml?rev=332129&r1=332128&r2=332129&view=diff ============================================================================== --- struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/faces/dialog-config.xml (original) +++ struts/shale/trunk/core-library/src/test/org/apache/shale/dialog/faces/dialog-config.xml Wed Nov 9 11:53:29 2005 @@ -198,5 +198,35 @@ </dialog> + <dialog name="testClassName" + className="org.apache.shale.dialog.config.ConfigurationParserTestCase$FooDialogImpl" + start="first"> + + <action name="first" + method="#{test.first}"> + <transition outcome="first" + target="end"/> + </action> + + <end name="finish"/> + + </dialog> + + <dialog name="testAdditionalProps" + className="org.apache.shale.dialog.config.ConfigurationParserTestCase$FooDialogImpl" + start="first"> + + <property name="foo" value="bar"/> + + <action name="first" + method="#{test.first}"> + <transition outcome="first" + target="end"/> + </action> + + <end name="finish"/> + + </dialog> + </dialogs> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]