Package com.eviware.soapui.impl.wsdl.submit.filters

Source Code of com.eviware.soapui.impl.wsdl.submit.filters.PropertyExpansionRequestFilterTest

/*
* Copyright 2004-2014 SmartBear Software
*
* Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the Licence for the specific language governing permissions and limitations
* under the Licence.
*/

package com.eviware.soapui.impl.wsdl.submit.filters;

import com.eviware.soapui.impl.rest.RestRequest;
import com.eviware.soapui.impl.settings.XmlBeansSettingsImpl;
import com.eviware.soapui.impl.support.AbstractHttpRequest;
import com.eviware.soapui.impl.support.http.HttpRequest;
import com.eviware.soapui.impl.wsdl.WsdlRequest;
import com.eviware.soapui.impl.wsdl.WsdlSubmitContext;
import com.eviware.soapui.impl.wsdl.submit.transports.http.BaseHttpRequestTransport;
import com.eviware.soapui.impl.wsdl.teststeps.HttpTestRequest;
import com.eviware.soapui.impl.wsdl.teststeps.RestTestRequest;
import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequest;
import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep;
import com.eviware.soapui.model.iface.SubmitContext;
import com.eviware.soapui.settings.CommonSettings;
import com.eviware.soapui.support.SoapUIException;
import com.eviware.soapui.utils.ModelItemFactory;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;

import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;

/**
*
*/
public class PropertyExpansionRequestFilterTest {
    private static final String REQUEST_CONTENT = "<type>${#TestCase#StoreType}</type>";

    private static final String EXPECTED_REQUEST_CONTENT_AFTER_PROPERTY_EXPANSION = "<type>shoe_Store</type>";

    private SubmitContext submitContext;
    private PropertyExpansionRequestFilter requestFilter;


    @Before
    public void setUp() throws SoapUIException {
        requestFilter = new PropertyExpansionRequestFilter();
        submitContext = createSubmitContext();
    }

    @Test
    public void performsPropertyExpansionOnWsdlTestRequestContent() throws SoapUIException {
        AbstractHttpRequest request = mockRequest(WsdlTestRequest.class);

        requestFilter.filterAbstractHttpRequest(submitContext, request);

        String contentAfterPropertyExpansion = (String) submitContext.getProperty(BaseHttpRequestTransport.REQUEST_CONTENT);
        assertThat(contentAfterPropertyExpansion, is(EXPECTED_REQUEST_CONTENT_AFTER_PROPERTY_EXPANSION));
    }

    @Test
    public void performsPropertyExpansionOnRestTestRequestContent() throws SoapUIException {
        AbstractHttpRequest request = mockRequest(RestTestRequest.class);
        requestFilter.filterAbstractHttpRequest(submitContext, request);

        String contentAfterPropertyExpansion = (String) submitContext.getProperty(BaseHttpRequestTransport.REQUEST_CONTENT);
        assertThat(contentAfterPropertyExpansion, is(EXPECTED_REQUEST_CONTENT_AFTER_PROPERTY_EXPANSION));
    }

    @Test
    public void performsPropertyExpansionOnHttpTestRequestContent() throws SoapUIException {
        AbstractHttpRequest request = mockRequest(HttpTestRequest.class);
        requestFilter.filterAbstractHttpRequest(submitContext, request);

        String contentAfterPropertyExpansion = (String) submitContext.getProperty(BaseHttpRequestTransport.REQUEST_CONTENT);
        assertThat(contentAfterPropertyExpansion, is(EXPECTED_REQUEST_CONTENT_AFTER_PROPERTY_EXPANSION));
    }

    @Test
    public void performsPropertyExpansionOnWsdlRequestContent() throws SoapUIException {
        AbstractHttpRequest request = mockRequest(WsdlRequest.class);
        requestFilter.filterAbstractHttpRequest(submitContext, request);

        String contentAfterPropertyExpansion = (String) submitContext.getProperty(BaseHttpRequestTransport.REQUEST_CONTENT);
        assertThat(contentAfterPropertyExpansion, is(EXPECTED_REQUEST_CONTENT_AFTER_PROPERTY_EXPANSION));
    }

    @Test
    public void performsPropertyExpansionOnRestRequestContent() throws SoapUIException {
        AbstractHttpRequest request = mockRequest(RestRequest.class);
        requestFilter.filterAbstractHttpRequest(submitContext, request);

        String contentAfterPropertyExpansion = (String) submitContext.getProperty(BaseHttpRequestTransport.REQUEST_CONTENT);
        assertThat(contentAfterPropertyExpansion, is(EXPECTED_REQUEST_CONTENT_AFTER_PROPERTY_EXPANSION));
    }

    @Test
    public void performsPropertyExpansionOnHttpRequestContent() throws SoapUIException {
        AbstractHttpRequest request = mockRequest(HttpRequest.class);
        requestFilter.filterAbstractHttpRequest(submitContext, request);

        String contentAfterPropertyExpansion = (String) submitContext.getProperty(BaseHttpRequestTransport.REQUEST_CONTENT);
        assertThat(contentAfterPropertyExpansion, is(EXPECTED_REQUEST_CONTENT_AFTER_PROPERTY_EXPANSION));
    }


    private SubmitContext createSubmitContext() throws SoapUIException {
        WsdlTestRequestStep requestStep = ModelItemFactory.makeTestRequestStep();
        requestStep.getTestCase().setPropertyValue("StoreType", "shoe_Store");
        SubmitContext context = new WsdlSubmitContext(requestStep);

        context.setProperty(BaseHttpRequestTransport.REQUEST_CONTENT, REQUEST_CONTENT);
        return context;
    }

    private <T extends AbstractHttpRequest> AbstractHttpRequest mockRequest(Class<T> type) {
        AbstractHttpRequest request = Mockito.mock(type);
        XmlBeansSettingsImpl settings = Mockito.mock(XmlBeansSettingsImpl.class);
        Mockito.when(settings.getBoolean(CommonSettings.ENTITIZE_PROPERTIES)).thenReturn(false);
        Mockito.when(request.getSettings()).thenReturn(settings);
        return request;
    }
}
TOP

Related Classes of com.eviware.soapui.impl.wsdl.submit.filters.PropertyExpansionRequestFilterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.