net.shibboleth.idp.cas.flow.AbstractFlowTest.java Source code

Java tutorial

Introduction

Here is the source code for net.shibboleth.idp.cas.flow.AbstractFlowTest.java

Source

/*
 * See LICENSE for licensing and NOTICE for copyright.
 */

package net.shibboleth.idp.cas.flow;

import net.shibboleth.idp.spring.IdPPropertiesApplicationContextInitializer;
import net.shibboleth.utilities.java.support.net.HttpServletRequestResponseContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.webflow.executor.FlowExecutor;
import org.springframework.webflow.test.MockExternalContext;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;

/**
 * Abstract base class for all tests that exercise flows.
 *
 * @author Marvin S. Addison
 */
@ContextConfiguration(locations = { "/system/conf/global-system.xml", "/system/conf/mvc-beans.xml",
        "/system/conf/relying-party-system.xml", "/test/test-service-registry.xml", "/test/test-webflow-config.xml",
        "/flows/cas/login/login-beans.xml", "/flows/cas/serviceValidate/serviceValidate-beans.xml",
        "/flows/cas/proxyValidate/proxyValidate-beans.xml" }, initializers = IdPPropertiesApplicationContextInitializer.class)
@WebAppConfiguration
public abstract class AbstractFlowTest extends AbstractTestNGSpringContextTests {

    /** Mock request. */
    protected MockHttpServletRequest request;

    /** Mock response. */
    protected MockHttpServletResponse response;

    /** Mock external context. */
    protected MockExternalContext externalContext;

    /** The web flow executor. */
    @Autowired
    protected FlowExecutor flowExecutor;

    /**
     * Initialize HTTP request, response, and flow context.
     */
    @BeforeMethod
    public void initialize() {
        request = new MockHttpServletRequest();
        response = new MockHttpServletResponse();
        externalContext = new MockExternalContext();
        externalContext.setNativeRequest(request);
        externalContext.setNativeResponse(response);
        HttpServletRequestResponseContext.loadCurrent(request, response);
    }

    @AfterMethod
    public void clearThreadLocals() {
        HttpServletRequestResponseContext.clearCurrent();
    }
}