001 package com.mockrunner.mock.web; 002 003 import java.lang.reflect.Method; 004 005 import org.apache.struts.action.ActionForward; 006 007 /** 008 * Mock implementation of <code>ActionForward</code>. 009 */ 010 public class MockActionForward extends MockForwardConfig 011 { 012 public MockActionForward() 013 { 014 this(null, false); 015 } 016 017 public MockActionForward(String name) 018 { 019 this(name, false); 020 } 021 022 public MockActionForward(String name, boolean redirect) 023 { 024 025 super(); 026 setName(name); 027 setPath(null); 028 setRedirect(redirect); 029 030 } 031 032 public MockActionForward(String name, String path, boolean redirect) 033 { 034 super(); 035 setName(name); 036 setPath(path); 037 setRedirect(redirect); 038 } 039 040 public MockActionForward(String name, String path, boolean redirect, boolean contextRelative) 041 { 042 super(); 043 setName(name); 044 setPath(path); 045 setRedirect(redirect); 046 setContextRelative(contextRelative); 047 } 048 049 public MockActionForward(String name, String path, boolean redirect, String module) 050 { 051 super(); 052 setName(name); 053 setPath(path); 054 setRedirect(redirect); 055 setModule(module); 056 } 057 058 public MockActionForward(ActionForward copyMe) 059 { 060 setName(copyMe.getName()); 061 setPath(copyMe.getPath()); 062 setRedirect(copyMe.getRedirect()); 063 try 064 { 065 Method getContextRelativeMethod = copyMe.getClass().getMethod("getContextRelative", null); 066 Boolean value = (Boolean)getContextRelativeMethod.invoke(copyMe, null); 067 if(null != value) 068 { 069 setContextRelative(value.booleanValue()); 070 } 071 } 072 catch(Exception exc) 073 { 074 //Struts 1.3 does not define the method "getContextRelative" 075 //this hack is necessary to avoid different versions for Struts 1.2 and 1.3 076 } 077 } 078 079 public boolean verifyName(String name) 080 { 081 if (null == getName()) return false; 082 if (getName().equals(name)) 083 { 084 return true; 085 } 086 return false; 087 } 088 089 public boolean verifyPath(String path) 090 { 091 if (null == getPath()) return false; 092 if (getPath().equals(path)) 093 { 094 return true; 095 } 096 return false; 097 } 098 099 public boolean verifyRedirect(boolean redirect) 100 { 101 return getRedirect() == redirect; 102 } 103 }