Package com.eviware.soapui.impl.wsdl.panels.teststeps

Source Code of com.eviware.soapui.impl.wsdl.panels.teststeps.RestTestRequestDesktopPanelTest

/*
* 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.panels.teststeps;

import com.eviware.soapui.config.RestMethodConfig;
import com.eviware.soapui.config.RestRequestConfig;
import com.eviware.soapui.config.RestRequestStepConfig;
import com.eviware.soapui.config.TestStepConfig;
import com.eviware.soapui.impl.rest.RestRequest;
import com.eviware.soapui.impl.rest.RestRequestInterface;
import com.eviware.soapui.impl.rest.RestResource;
import com.eviware.soapui.impl.rest.RestService;
import com.eviware.soapui.impl.rest.support.RestParamProperty;
import com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep;
import com.eviware.soapui.impl.wsdl.teststeps.registry.RestRequestStepFactory;
import com.eviware.soapui.support.SoapUIException;
import com.eviware.soapui.support.UISupport;
import com.eviware.soapui.utils.ContainerWalker;
import com.eviware.soapui.utils.StatefulModelItemFactory;
import com.eviware.soapui.utils.StubbedDialogs;
import com.eviware.x.dialogs.XDialogs;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import javax.swing.JComboBox;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

public class RestTestRequestDesktopPanelTest {

    public static final String PARAMETER_NAME = "jsessionid";
    public static final String PARAMETER_VALUE = "Da Value";
    public static final String ENDPOINT = "http://sunet.se/search";

    private RestTestRequestDesktopPanel restTestDesktopPanel;
    private RestRequest restRequest;
    private StubbedDialogs dialogs;
    private XDialogs originalDialogs;
    private JComboBox endpointsCombo;

    @Before
    public void setUp() throws Exception {
        buildRestTestPanel();
    }

    @After
    public void resetDialogs() {
        UISupport.setDialogs(originalDialogs);
    }

    @Test
    public void displaysEndpoint() {
        assertThat(restTestDesktopPanel.getEndpointsModel().getSelectedItem(), is((Object) ENDPOINT));
    }

    @Test
    public void reactsToEndpointChanges() {
        String anotherEndpoint = "http://google.com/search";
        restService().changeEndpoint(ENDPOINT, anotherEndpoint);
        assertThat(restTestDesktopPanel.getEndpointsModel().getSelectedItem(), is((Object) anotherEndpoint));
    }

    @Test
    public void displaysFullResourcePathInPathLabel() {
        String expectedPath = "[" + restRequest.getResource().getFullPath() + "]";
        assertThat(restTestDesktopPanel.pathLabel.getText(), is(expectedPath));
    }

    @Test
    public void displaysChangedPath() {
        restRequest.getResource().setPath("/newPath");
        String expectedPath = "[" + restRequest.getResource().getFullPath() + "]";
        assertThat(restTestDesktopPanel.pathLabel.getText(), is(expectedPath));
    }

    @Test
    public void displaysResourceMethodCombo() {
        Object expectedMethodResourceCombo = restRequest.getResource().getRestMethodByName("Get");
        assertThat(restTestDesktopPanel.methodResourceCombo.getSelectedItem(), is(expectedMethodResourceCombo));
    }

  /* Helpers */

    private JComboBox findEndpointsComboBox()

    {
        ContainerWalker finder = new ContainerWalker(restTestDesktopPanel);
        return finder.findComboBoxWithValue(ENDPOINT);
    }

    private RestService restService() {
        return restRequest.getOperation().getInterface();
    }

    private void buildRestTestPanel() throws SoapUIException, RestRequestStepFactory.ItemDeletedException {
        StatefulModelItemFactory modelItemFactory = new StatefulModelItemFactory();
        RestResource restResource = createRestRequestModel(modelItemFactory);
        mockPromptDiaglog(restResource);
        RestTestRequestStep testStep = createRestTestReqStep(modelItemFactory, restResource);
        restTestDesktopPanel = new RestTestRequestDesktopPanel(testStep);
        endpointsCombo = findEndpointsComboBox();
    }

    private RestResource createRestRequestModel(StatefulModelItemFactory modelItemFactory) throws SoapUIException {
        restRequest = modelItemFactory.makeRestRequest();
        restRequest.setMethod(RestRequestInterface.HttpMethod.GET);
        RestResource restResource = restRequest.getResource();
        restResource.getParams().addProperty(PARAMETER_NAME);
        restResource.addNewMethod(restRequest.getRestMethod().getName());
        RestMethodConfig restMethodConfig = restResource.getRestMethodList().get(0).getConfig();
        restMethodConfig.setMethod("GET");

        restService().addEndpoint(ENDPOINT);
        RestParamProperty restParamProperty = restRequest.getParams().getProperty(PARAMETER_NAME);
        restParamProperty.setValue(PARAMETER_VALUE);
        return restResource;
    }

    private RestTestRequestStep createRestTestReqStep(StatefulModelItemFactory modelItemFactory, RestResource restResource) throws RestRequestStepFactory.ItemDeletedException, SoapUIException {
        TestStepConfig config = TestStepConfig.Factory.newInstance();
        RestRequestStepConfig requestStepConfig = RestRequestStepConfig.Factory.newInstance();
        RestRequestConfig restRequestConfig = RestRequestConfig.Factory.newInstance();

        requestStepConfig.setMethodName(restRequest.getRestMethod().getName());
        requestStepConfig.setService(restService().getName());

        requestStepConfig.setRestRequest(restRequestConfig);
        requestStepConfig.getRestRequest().setEndpoint(ENDPOINT);
        config.setConfig(requestStepConfig);
        requestStepConfig.setResourcePath(restResource.getFullPath());

        return new RestTestRequestStep(modelItemFactory.makeTestCase(), config, false);
    }

    private void mockPromptDiaglog(RestResource restResource) {
        originalDialogs = UISupport.getDialogs();
        dialogs = new StubbedDialogs();
        UISupport.setDialogs(dialogs);
        String serviceName = restResource.getService().getName();
        String resourceName = restResource.getName();
        dialogs.mockPromptWithReturnValue(serviceName + " > " + resourceName);
    }

}
TOP

Related Classes of com.eviware.soapui.impl.wsdl.panels.teststeps.RestTestRequestDesktopPanelTest

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.