Here are some suggestions:
- Check the log files, etc.
- Determine if you can test a conventional action (just dummy one up if you don't have one)
- Get out your trusty debugger.
[EMAIL PROTECTED] wrote:
Yes:
/** * This is the method that defines the different button text items in a hashMap * for the BaseLookupDispatchAction to use. * * TODO: Need to externalize this, so these are not hard coded. */ protected Map getKeyMethodMap() { log.info( "getKeyMethodMap..." );
Map map = new HashMap();
ResourceBundle methods = ResourceBundle.getBundle( Constants.LOOKUP_METHOD_MESSAGE_RESOURCES );
Enumeration keys = methods.getKeys();
while( keys.hasMoreElements() ) { String key = ( String )keys.nextElement(); map.put( key, methods.getString( key ) ); }
return map; }
-----Original Message----- From: news [mailto:[EMAIL PROTECTED] Behalf Of Bill Siggelkow Sent: Thursday, August 26, 2004 10:53 AM To: [EMAIL PROTECTED] Subject: Re: Help with Cactus StrutsTestCase
Is your LookupDispatchAction implementing getKeyMethodMap()?
[EMAIL PROTECTED] wrote:
I am trying to write test cases for my Struts app, but can't seem to figure it out. I have used the examples, but I don't seem to get the correct outcome when I run them.
I am using LookupDispatchAction's exclusively.
So here is the method I am testing: ========================== public void productSelectionAction( ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response ) { log.info( "Process CreditApplicationActions productSelectionAction(...)" );
NavigationBean navigationBean = ( NavigationBean )request.getSession().getAttribute( "navigationBean" ); if( navigationBean == null ) { navigationBean = new NavigationBean(); }
if( Constants.TRUE.equals( request.getParameter( Constants.BUS_LINE_SELECTED ) ) ) { navigationBean.setHasBusinessLine( true ); } else { request.getSession().setAttribute( "businessLineForm", null ); navigationBean.setHasBusinessLine( false ); }
if( Constants.TRUE.equals( request.getParameter( Constants.BUS_CARD_SELECTED ) ) ) { navigationBean.setHasBusinessCard( true ); } else { request.getSession().setAttribute( "businessCardForm", null ); navigationBean.setHasBusinessCard( false ); }
if( Constants.TRUE.equals( request.getParameter( Constants.BUS_SEC_CARD_SELECTED ) ) ) { navigationBean.setHasSecuredCard( true ); } else { request.getSession().setAttribute( "securedCardForm", null ); navigationBean.setHasSecuredCard( false ); }
if( Constants.TRUE.equals( request.getParameter( Constants.EQUIP_EXPRESS_SELECTED ) ) ) { navigationBean.setHasEquipExpress( true ); } else { request.getSession().setAttribute( "equipExpressForm", null ); navigationBean.setHasEquipExpress( false ); }
request.getSession().setAttribute( "navigationBean", navigationBean ); };
Here is the action in the struts-config.xml:
===============================
<!-- Product selection action -->
<action path="/productSelection"
input=".productSelection"
name="productSelectionForm"
parameter="action"
scope="session" type="com.wf.bd.ice.creditapplication.CreditApplicationActions" validate="true">
<forward name="error" path=".productSelection" redirect="true" />
<forward name="continue" path=".business" redirect="true" />
<forward name="productSelection" path=".productSelection" redirect="true" />
<forward name="business" path=".business" redirect="true" />
<forward name="firstOwner" path=".firstOwner" redirect="true" />
<forward name="secondOwner" path=".secondOwner" redirect="true" />
<forward name="businessLine" path=".businessLine" redirect="true" />
<forward name="businessCard" path=".businessCard" redirect="true" />
<forward name="securedCard" path=".securedCard" redirect="true" />
<forward name="equipExpress" path=".equipExpress" redirect="true" />
<forward name="noSecondOwner" path=".noSecondOwner" redirect="true" />
<forward name="noBusinessLine" path=".noBusinessLine" redirect="true" />
<forward name="noBusinessCard" path=".noBusinessCard" redirect="true" />
<forward name="noSecuredCard" path=".noSecuredCard" redirect="true" />
<forward name="noEquipExpress" path=".noEquipExpress" redirect="true" />
<forward name="conclude" path=".acceptanceAgreement" redirect="true" />
</action>
Here is the test method: ================== public void testProductSelection() throws Exception { // JUnitDoclet begin method productSelection
setRequestPathInfo( "/productSelection" );
addRequestParameter( "action", "nextPage" );
addRequestParameter( "businessLineSelected", "true" ); addRequestParameter( "businessCardSelected", "true" ); addRequestParameter( "businessSecuredCardSelected", "true" ); addRequestParameter( "equipmentExpressSelected", "true" );
actionPerform();
verifyForward( Constants.ERROR_FWD ); verifyForward( Constants.PRODUCTSELECTION_FWD );
//verifyActionErrors(new String[] {"error.nodefault.implementation" } ); //verifyActionErrors(new String[] { "error.noaction.specified"} );
//NavigationBean navigationBean = (NavigationBean)getSession().getAttribute( "navigationBean" ); //assertTrue( "NavigationBean is null", navigationBean == null); verifyNoActionErrors();
// JUnitDoclet end method productSelection }
And I get zero errors at all...
---
Thanks... Mick Knutson
525 Market Street, SF, CA 94103 (415) 222-1020 [EMAIL PROTECTED] MAC A0103-223
---
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]