Java.lang.AssertionError: lors de l'appel de la méthode dans easy mock spring webflow junit


J'ai essayé de reprendre le flux directement à partir d'un état particulier, c'est-à-dire setCurrentState("initialFlowSetup"). Dans lequel le flux est en transition vers un autre état avec l'eventid error donné mais après une certaine transition, il y a une action impliquée setErrorMessages.getErrorMessagesMap(flowRequestContext)" résultat="flowScope.errorMessageMap"dans l'état set_error_in_scope qui renvoie la carte.

Lorsque j'appelle la méthode en utilisant EasyMock et que je définis l'attente du résultat de retour comme map dans mon cas de test le résultat de retour n'est pas pris par webflow. Ci-dessous est l'erreur.

Je ne suis pas en mesure de comprendre le concept , quand définir l'attente et définir le résultat sur webflow afin que le résultat de retour soit identifié par flow.

Erreur

    org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing [AnnotatedAction@7c974942 targetAction = [EvaluateAction@1eea9d2d expression = setErrorMessages.getErrorMessagesMap(flowRequestContext), resultExpression = flowScope.errorMessageMap], attributes = map[[empty]]] in state 'set_error_in_scope' of flow 'shclogin-flow' -- action execution attributes were 'map[[empty]]'
    at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:60)
    at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:101)
    at org.springframework.webflow.engine.State.enter(State.java:194)
    at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
    at org.springframework.webflow.engine.DecisionState.doEnter(DecisionState.java:51)
    at org.springframework.webflow.engine.State.enter(State.java:194)
    at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
    at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
    at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
    at org.springframework.webflow.engine.support.TransitionExecutingFlowExecutionExceptionHandler.handle(TransitionExecutingFlowExecutionExceptionHandler.java:111)
    at org.springframework.webflow.engine.FlowExecutionExceptionHandlerSet.handleException(FlowExecutionExceptionHandlerSet.java:109)
    at org.springframework.webflow.engine.Flow.handleException(Flow.java:600)
    at org.springframework.webflow.engine.impl.FlowExecutionImpl.tryFlowHandlers(FlowExecutionImpl.java:647)
    at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleException(FlowExecutionImpl.java:603)
    at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:263)
    at org.springframework.webflow.test.execution.AbstractFlowExecutionTests.resumeFlow(AbstractFlowExecutionTests.java:136)
    at com.shc.ecom.test.usr.TestloginlFlow.testAction(TestloginlFlow.java:149)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.framework.TestSuite.runTest(TestSuite.java:208)
    at junit.framework.TestSuite.run(TestSuite.java:203)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:131)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.springframework.expression.ExpressionInvocationTargetException: A problem occurred when trying to execute method 'getErrorMessagesMap' on object of type [com.shc.ecom.sso.cas.web.flow.SetErrorMessages$$EnhancerByCGLIB$$ae43a022]
    at org.springframework.expression.spel.ast.MethodReference.throwSimpleExceptionIfPossible(MethodReference.java:227)
    at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:133)
    at org.springframework.expression.spel.ast.MethodReference.access$000(MethodReference.java:49)
    at org.springframework.expression.spel.ast.MethodReference$MethodValueRef.getValue(MethodReference.java:342)
    at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:88)
    at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:131)
    at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:299)
    at org.springframework.binding.expression.spel.SpringELExpression.getValue(SpringELExpression.java:84)
    at org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:75)
    at org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
    at org.springframework.webflow.execution.AnnotatedAction.execute(AnnotatedAction.java:145)
    at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
    ... 34 more
Caused by: java.lang.AssertionError: 
  Unexpected method call SetErrorMessages.getErrorMessagesMap([RequestControlContextImpl@48bfb884 externalContext = org.springframework.webflow.test.MockExternalContext@11653e3b, currentEvent = [null], requestScope = map[[empty]], attributes = map[[empty]], messageContext = [DefaultMessageContext@715fb77 sourceMessages = map[[null] -> list[[empty]]]], flowExecution = [FlowExecutionImpl@1b9c1b51 flow = 'shclogin-flow', flowSessions = list[[FlowSessionImpl@2e52fb3e flow = 'shclogin-flow', state = 'set_error_in_scope', scope = map['errorMessageMap' -> map['originalUrl' -> 123]]]]]]):
    SetErrorMessages.getErrorMessagesMap(requestContext): expected: 1, actual: 0
    at org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:44)
    at org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:85)
    at org.easymock.internal.ClassProxyFactory$MockMethodInterceptor.intercept(ClassProxyFactory.java:94)
    at com.shc.ecom.sso.cas.web.flow.SetErrorMessages$$EnhancerByCGLIB$$ae43a022.getErrorMessagesMap(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:112)
    at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:129)
    ... 44 more

Xml

    <?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
              http://www.springframework.org/schema/webflow
              http://www.springframework.org/schema/webflow/spring-webflow-2.4.xsd" 
              start-state="initialFlowSetup" >


    <input name="loginId" value="requestScope.loginId" />
    <input name="logonPassword" value="requestScope.logonPassword" />
    <input name="sourceSiteId" value="requestScope.sourceSiteId" />
    <input name="fullpage" value="requestScope.fullpage" />
    <input name="partialuser" value="requestScope.partialuser" />
    <input name="sourceSiteId" value="flowScope.sourceSite" />
    <input name="service" value="requestScope.service" />
    <input name="redirectUrl" value="requestScope.redirectUrl" />
    <input name="sywLogin" value="requestScope.sywLogin" />
    <input name="tncmodal" value="requestScope.tncmodal" />
    <input name="modifyservice" value="requestScope.modifyservice" />
    <input name="reglogin" value="flowScope.reglogin" />
    <input name="enrollresponse" value="flowScope.enrollresponse" />
    <input name="shcCaptchaKey" value="requestScope.shcKey" />
    <input name="shcCaptchaResponse" value="requestScope.shcResponse" />
    <input name="sywmax" value="flowScope.sywmax" />
    <input name="auth" value="flowScope.auth" />
    <input name="maxactivationflow" value="flowScope.maxactivationflow" />


    <action-state id="initialFlowSetup">
        <evaluate expression="usrInitialFlowSetupAction" />
        <transition on="success" to="ticketGrantingTicketExistsCheck" />
        <transition on="error" to="pickup_error_redirect" />
    </action-state>

    <decision-state id="ticketGrantingTicketExistsCheck">
        <if test="flowScope.ticketGrantingTicketId != null" then="hasServiceCheck"
            else="gatewayRequestCheck" />
    </decision-state>

    <decision-state id="gatewayRequestCheck">
        <if
            test="externalContext.requestParameterMap['gateway'] != '' &amp;&amp; externalContext.requestParameterMap['gateway'] != null &amp;&amp; flowScope.service != null"
            then="redirect" else="submit" />
    </decision-state>

    <decision-state id="hasServiceCheck">
        <if test="flowScope.service != null" then="renewRequestCheck"
            else="viewGenericLoginSuccess" />
    </decision-state>

    <decision-state id="renewRequestCheck">
        <if
            test="externalContext.requestParameterMap['renew'] != '' &amp;&amp; externalContext.requestParameterMap['renew'] != null"
            then="submit" else="generateServiceTicket" />
    </decision-state>

    <!-- The "warn" action makes the determination of whether to redirect directly 
        to the requested service or display the "confirmation" page to go back to 
        the server. -->
    <decision-state id="warn">
        <if test="flowScope.warnCookieValue" then="showWarningView"
            else="redirect" />
    </decision-state>

    <!-- <action-state id="startAuthenticate"> <action bean="x509Check" /> <transition 
        on="success" to="sendTicketGrantingTicket" /> <transition on="error" to="viewLoginForm" 
        /> </action-state> -->
    <view-state id="viewLoginForm" view="casLoginView">
        <on-render>
            <evaluate expression="authenticationViaFormAction.setupForm()" />
            <evaluate expression="authenticationViaFormAction.referenceData()"/>
        </on-render>
        <transition on="submit" to="bindAndValidate" />
    </view-state>

    <action-state id="bindAndValidate">
        <evaluate expression="usrAuthenticationViaFormAction" />
        <transition on="success" to="submit" />
        <transition on="error" to="redirect" />
    </action-state>

    <action-state id="submit">
        <evaluate expression = "usrAuthenticationViaFormAction.setCredentialsToFlowScope()" />
        <evaluate expression="usrAuthenticationViaFormAction.submit(flowRequestContext, flowScope.credentials, messageContext)" />
        <transition on="success" to="sendTicketGrantingTicket" />
        <transition on="authenticationFailure" to="pickup_error_redirect" />
        <transition on="error" to="pickup_error_redirect">
            <set name="errorCode" value="flowScope.errorCode" /> <!--  scope="conversation" />-->
        </transition>
    </action-state>

    <action-state id="sendTicketGrantingTicket">
        <evaluate expression="sendTicketGrantingTicketAction" />
        <transition on="success" to="serviceCheck" />
    </action-state>

    <decision-state id="serviceCheck">
        <if test="flowScope.service != null" then="checkEnrollResponse"
            else="viewGenericLoginSuccess" />
    </decision-state>

    <decision-state id="checkEnrollResponse">
        <if test="flowScope.enrollresponse != null" then="generateServiceTicket"
            else="checksywrrequired" />
    </decision-state>

    <!-- select the success modal based on the flow caller -->
    <decision-state id="checksywrrequired">
        <if test="requestScope.sywLogin == 'true'" then="sywrRequired"
            else="generateServiceTicket" />
    </decision-state>

    <action-state id="sywrRequired">
        <evaluate expression="usrIsSYWRUserCheckAction" />
        <transition on="success" to="isAffinityCheckRequired" />
        <transition on="error" to="generateServiceTicketNoSywr" />
    </action-state>
    <decision-state id="isAffinityCheckRequired">
        <if test="requestScope.sourceSiteId==6" then="craftsmanAffinityCheck"
            else="generateServiceTicket" />
    </decision-state>
    <action-state id="craftsmanAffinityCheck">
    <evaluate expression="ssoGatewayService.searchUserByMemberNumberInTelluride(flowScope.sywrNumber,
                    requestParameters.sourceSiteId)" result="returnEmailResponse"/>
        <transition on="success" to="checkForCcAffinityModal" />
    </action-state>

    <!-- 
        <bean-action bean="ssoGatewayService" method="searchUserByMemberNumberInTelluride">
            <method-arguments>
                <argument expression="flowScope.sywrNumber" />
                <argument expression="${requestParameters.sourceSiteId}" />
            </method-arguments>
            <method-result name="returnEmailResponse" scope="flow" />
        </bean-action>
     -->

    <decision-state id="checkForCcAffinityModal">
        <if test="flowScope.returnEmailResponse.ccAffinity==true" then="generateServiceTicket"
            else="generateServiceTicketNoCcaffinity" />
    </decision-state>
    <action-state id="generateServiceTicketNoSywr">
        <evaluate expression="generateServiceTicketAction" />
        <transition on="success" to="sendtickettomodalforloginnosywr" />
        <transition on="error" to="setErrorCode" />
        <transition on="gateway" to="redirect" />
    </action-state>

    <action-state id="generateServiceTicketNoCcaffinity">
        <evaluate expression="generateServiceTicketAction" />
        <transition on="success" to="sendtickettomodalforloginnoccaffinity" />
        <transition on="error" to="setErrorCode" />
        <transition on="gateway" to="redirect" />
    </action-state>

    <action-state id="generateServiceTicket">
        <evaluate expression="generateServiceTicketAction" />
        <transition on="success" to="pickupticketmodal" />
        <transition on="error" to="setErrorCode" />
        <transition on="gateway" to="redirect" />
    </action-state>

    <action-state id="setErrorCode">
        <evaluate expression="setErrorCodeBean.submit()" />
        <transition on="success" to="pickup_error_redirect" />
    </action-state>

    <!-- the "viewGenericLogin" is the end state for when a user attempts to 
        login without coming directly from a service. They have only initialized 
        their single-sign on session. -->
    <end-state id="viewGenericLoginSuccess" view="casLoginGenericSuccessView" />

    <!-- The "showWarningView" end state is the end state for when the user 
        has requested privacy settings (to be "warned") to be turned on. It delegates 
        to a view defines in default_views.properties that display the "Please click 
        here to go to the service." message. -->
    <end-state id="showWarningView" view="casLoginConfirmView" />

    <!-- The "redirect" end state allows CAS to properly end the workflow while 
        still redirecting the user back to the service required. -->
    <end-state id="redirect" view="externalRedirect:#{requestScope.response.url}" />

    <end-state id="viewServiceErrorView" view="viewServiceErrorView" />

    <end-state id="viewServiceSsoErrorView" view="viewServiceSsoErrorView" />


    <!-- select the success modal based on the flow caller -->
    <decision-state id="pickupticketmodal">
        <if test="flowScope.enrollresponse != null" then="sendtickettomodal_reg"
            else="sendTicket" />
    </decision-state>

    <!-- send the service ticket back to the modal, no view required in this 
        subflow -->
    <end-state id="sendtickettomodal_reg">
        <output name = "serviceTicketId" value = "requestScope.serviceTicketId"/>
    </end-state>

    <!-- <output-mapper>
            <mapping source="${requestScope.serviceTicketId}" target="serviceTicketId" />
        </output-mapper> -->

    <decision-state id="sendTicket">
        <if test="flowScope.auth != null &amp;&amp; flowScope.auth != ''"
            then="sendtickettomodalforloginnosywr" else="sendtickettomodalforlogin" />
    </decision-state>

    <end-state id="sendtickettomodalforlogin" view="/displayserviceticketandcookie">    
        <output name = "modifyservice" value = "requestScope.modifyservice"/>
        <output name = "sywmax" value = "requestScope.sywmax"/>
        <output name = "irp" value = "requestScope.irp"/>
        <output name = "auth" value = "requestScope.auth"/>
    </end-state>

    <!-- 
        <output-mapper>
            <mapping source="${requestScope.modifyservice}" target="modifyservice"/>
            <mapping source="${requestScope.sywmax}" target="sywmax"/>
            <mapping source="${requestScope.irp}" target="irp"/>
            <mapping source="${requestScope.auth}" target="auth"/>
        </output-mapper>
     -->

    <!-- for login, directly sending the st to the modal -->
    <end-state id="sendtickettomodalforloginnosywr" view="displayserviceticketandcookienosywr" >
        <output name = "modifyservice" value = "requestScope.modifyservice"/>
        <output name = "irp" value = "requestScope.irp"/>
    </end-state>
    <!-- 
        <output-mapper>
            <mapping source="${requestScope.modifyservice}" target="modifyservice" />
            <mapping source="${requestScope.irp}" target="irp" />
        </output-mapper>
     -->
    <end-state id="sendtickettomodalforloginnoccaffinity" view="displayserviceticketandcookienoccaffinity">
        <output name = "modifyservice" value = "requestScope.modifyservice"/>
        <output name = "irp" value = "requestScope.irp"/>
    </end-state>
    <!-- 
        <output-mapper>
            <mapping source="${requestScope.modifyservice}" target="modifyservice" />
            <mapping source="${requestScope.irp}" target="irp" />
        </output-mapper>
     -->

    <!-- for login, directly sending the st to the modal -->
    <end-state id="showTnCModal" view="/showTnCModalToUsers">

    </end-state>
    <!-- select the error redirect based on the flow caller -->
    <decision-state id="pickup_error_redirect">
        <if test="flowScope.enrollresponse != null" then="pickup_error_redirect_reg"
            else="set_error_in_scope" />
    </decision-state>

    <action-state id="set_error_in_scope">
        <evaluate expression="setErrorMessages.getErrorMessagesMap(flowRequestContext)" result="flowScope.errorMessageMap"
        result-type="java.util.HashMap"></evaluate>
        <transition on="success" to="pickup_error_redirect_login">  </transition>
    </action-state>

      <!-- redirect when error to create sso session, no view required in this subflow -->
    <end-state id="pickup_error_redirect_reg"  />


    <end-state id="pickup_error_redirect_login" view="/loginfailure" >
        <on-entry>
            <set name="flowScope.parameters" value="flowScope.errorMessageMap.parameters"></set>
        </on-entry>
    </end-state>


    <!-- current not properly defined the global error condition -->
    <global-transitions>
        <transition to="pickup_error_redirect"
            on-exception="org.springframework.webflow.execution.repository.NoSuchFlowExecutionException" />
        <transition to="pickup_error_redirect"
            on-exception="org.jasig.cas.services.UnauthorizedSsoServiceException" />
        <transition to="pickup_error_redirect"
            on-exception="org.jasig.cas.services.UnauthorizedServiceException" />
        <transition to="pickup_error_redirect"
            on-exception="org.springframework.webflow.execution.FlowExecutionException" />
    </global-transitions>

</flow>

Cas de test

 public class TestloginlFlow extends AbstractXmlFlowExecutionTests {

    UsrInitialFlowSetupAction usrInitialFlowSetupAction;

    AuthenticationViaFormAction authenticationViaFormAction;

    UsrIsSYWRUserCheckAction usrIsSYWRUserCheckAction;

    SSOGatewayService ssoGatewayService;

    CustomGenerateServiceTicketAction generateServiceTicketAction;

    CentralAuthenticationService centralAuthenticateService;

    CookieRetrievingCookieGenerator warnCookieGenerator;

    USRAuthenticationViaFormAction usrAuthenticationViaFormAction;

    List<ArgumentExtractor> argumentExtractor;

    SetErrorMessages setErrorMessages;
    RequestControlContext requestContext;

    @Override
    protected void setUp() throws Exception {
        usrInitialFlowSetupAction = EasyMock.createMock("usrInitialFlowSetupAction", UsrInitialFlowSetupAction.class); // usrAuthenticationViaFormAction
        setErrorMessages = EasyMock.createMock("SetErrorMessages", SetErrorMessages.class);
        usrAuthenticationViaFormAction = EasyMock.createMock("usrAuthenticationViaFormAction",
                USRAuthenticationViaFormAction.class);
        usrIsSYWRUserCheckAction = EasyMock.createMock("usrIsSYWRUserCheckAction", UsrIsSYWRUserCheckAction.class); // ssoGatewayService

        ssoGatewayService = EasyMock.createMock("ssoGatewayService", SSOGatewayService.class);
        generateServiceTicketAction = EasyMock.createMock("generateServiceTicketAction",
                CustomGenerateServiceTicketAction.class);
        centralAuthenticateService = EasyMock.createMock("centralAuthenticateService",
                CentralAuthenticationService.class);
        warnCookieGenerator = EasyMock.createMock("centralAuthenticateService", CookieRetrievingCookieGenerator.class);
        argumentExtractor = EasyMock.createMock("argumentExtractors", List.class);
        generateServiceTicketAction = EasyMock.createMock("generateServiceTicketAction",
                CustomGenerateServiceTicketAction.class);
        requestContext=EasyMock.createMock("requestContext",RequestControlContext.class);
    }

    @Override
    protected FlowDefinitionResource getResource(FlowDefinitionResourceFactory resourceFactory) {
        return resourceFactory.createFileResource("src/main/webapp/WEB-INF/usr/flows/shclogin-flow.xml");
    }

    @Override
    protected void registerMockFlowBeans(ConfigurableBeanFactory builderContext) {

        builderContext.registerSingleton("argumentExtractors", argumentExtractor);
        builderContext.registerSingleton("warnCookieGenerator", warnCookieGenerator);
        builderContext.registerSingleton("centralAuthenticateService", centralAuthenticateService);
        builderContext.registerSingleton("usrAuthenticationViaFormAction", usrAuthenticationViaFormAction);
        builderContext.registerSingleton("usrIsSYWRUserCheckAction", usrIsSYWRUserCheckAction);
        builderContext.registerSingleton("ssoGatewayService", ssoGatewayService);
        builderContext.registerSingleton("generateServiceTicketAction", generateServiceTicketAction);
        builderContext.registerSingleton("ticketGrantingTicketCookieGenerator", warnCookieGenerator);
        builderContext.registerSingleton("setErrorMessages", setErrorMessages);
        builderContext.registerSingleton("request", requestContext);

    }

    @Override
    protected void configureFlowBuilderContext(MockFlowBuilderContext builderContext) {

        usrAuthenticationViaFormAction.setCentralAuthenticationService(centralAuthenticateService);
        usrAuthenticationViaFormAction.setWarnCookieGenerator(warnCookieGenerator);
        builderContext.registerBean("warnCookieGenerator", warnCookieGenerator);
        builderContext.registerBean("centralAuthenticateService", centralAuthenticateService);
        builderContext.registerBean("usrAuthenticationViaFormAction", usrAuthenticationViaFormAction);
        builderContext.registerBean("usrIsSYWRUserCheckAction", usrIsSYWRUserCheckAction);
        builderContext.registerBean("ssoGatewayService", ssoGatewayService);
        builderContext.registerBean("generateServiceTicketAction", generateServiceTicketAction);
        builderContext.registerBean("setErrorMessages", setErrorMessages);
        builderContext.registerBean("request", requestContext);

    }

    public void testAction() throws Exception {
        setCurrentState("initialFlowSetup");
        MockExternalContext ctx = new MockExternalContext();
        MutableAttributeMap input = new LocalAttributeMap();
        MockRequestControlContext context = new MockRequestControlContext();

        FlowExecution flowExecution = getFlowExecution();
        FlowSession session = flowExecution.getActiveSession();
        Map<String, Object> model = new HashMap<String, Object>();
        model.put("originalUrl", 123);
        session.getScope().put("errorMessageMap", model);

        updateFlowExecution(flowExecution);
        ctx.setEventId("error");
        EasyMock.expect(setErrorMessages.getErrorMessagesMap(requestContext)).andReturn(model);
        EasyMock.replay(setErrorMessages);

        resumeFlow(ctx);
        assertResponseWrittenEquals("/loginfailure", ctx);
        assertFlowExecutionEnded();

    }

    public void testAction1() throws Exception {
    // setCurrentState("initialFlowSetup");
    MockExternalContext ctx = new MockExternalContext();
    MutableAttributeMap input = new LocalAttributeMap();

    input.put("loginId", "12");
    input.put("logonPassword", "ankur");
    input.put("sourceSiteId", "3");
    input.put("fullpage", "");
    input.put("partialuser", "true");
    input.put("service", "");
    input.put("redirectUrl", "");
    input.put("sywLogin", "er4fju");
    input.put("tncmodal", null);
    input.put("modifyservice", "no");
    // input.put("reglogin", false);
    // input.put("enrollresponse", 200);
    input.put("shcCaptchaKey", null);
    input.put("ticketGrantingTicketId", "1234");
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("renew", "yes");
    ParameterMap requestParameterMap = new LocalParameterMap(parameters);
    ctx.setRequestParameterMap(requestParameterMap);
    MockRequestContext context = new MockRequestContext();
    Event event = new Event(this, "success");
    EasyMock.expect(usrInitialFlowSetupAction.doExecute(flowRequestContext)).andReturn(event);
    EasyMock.replay(usrInitialFlowSetupAction);

    //Mockito.mock(usrInitialFlowSetupAction.doExecute(flowRequestContext), event)
    /*
     * FlowExecution flowExecution = getFlowExecution(); FlowSession session
     * = flowExecution.getActiveSession();
     * session.getScope().put("ticketGrantingTicketId", "ee");
     */
    // updateFlowExecution(flowExecution);

    startFlow(input, ctx);

}

}
Author: henrycharles, 2016-08-26