/*
* SoapUI, Copyright (C) 2004-2016 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.impl.EmptyPanelBuilder;
import com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestInterface;
import com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep;
import com.eviware.soapui.support.components.JPropertiesTable;
import com.eviware.soapui.support.types.StringList;
import javax.swing.JPanel;
/**
* PanelBuilder for RestTestRequest
*
* @author Ole.Matzura
*/
public class RestTestRequestPanelBuilder extends EmptyPanelBuilder<RestTestRequestStep> {
public RestTestRequestPanelBuilder() {
}
public RestTestRequestDesktopPanel buildDesktopPanel(RestTestRequestStep testStep) {
return new RestTestRequestDesktopPanel(testStep);
}
public boolean hasDesktopPanel() {
return true;
}
public JPanel buildOverviewPanel(RestTestRequestStep testStep) {
RestTestRequestInterface request = testStep.getTestRequest();
JPropertiesTable<RestTestRequestInterface> table = new JPropertiesTable<RestTestRequestInterface>(
"REST TestRequest Properties");
// basic properties
table.addProperty("Name", "name", true);
table.addProperty("Description", "description", true);
// table.addProperty( "Message Size", "contentLength", false );
table.addProperty("Encoding", "encoding", new String[]{null, "UTF-8", "iso-8859-1"});
if (request.getOperation() == null) {
table.addProperty("Path", "path", true);
} else {
table.addProperty("Endpoint", "endpoint", request.getInterface() == null ? new String[0] : request
.getInterface().getEndpoints());
table.addProperty("Service", "serviceName");
table.addProperty("Resource", "path");
table.addProperty("Method", "restMethodName");
}
table.addProperty("Timeout", "timeout", true);
table.addProperty("Bind Address", "bindAddress", true);
table.addProperty("Follow Redirects", "followRedirects", JPropertiesTable.BOOLEAN_OPTIONS);
StringList keystores = new StringList(request.getTestStep().getTestCase().getTestSuite().getProject()
.getWssContainer().getCryptoNames());
keystores.add("");
table.addProperty("SSL Keystore", "sslKeystore", keystores.toStringArray());
table.addProperty("Strip whitespaces", "stripWhitespaces", JPropertiesTable.BOOLEAN_OPTIONS);
table.addProperty("Remove Empty Content", "removeEmptyContent", JPropertiesTable.BOOLEAN_OPTIONS);
table.addProperty("Entitize Properties", "entitizeProperties", JPropertiesTable.BOOLEAN_OPTIONS);
table.addProperty("Multi-Value Delimiter", "multiValueDelimiter", true);
// post-processing
table.addProperty("Pretty Print", "prettyPrint", JPropertiesTable.BOOLEAN_OPTIONS);
table.addProperty("Dump File", "dumpFile", true).setDescription("Dumps response message to specified file");
table.addProperty("Max Size", "maxSize", true).setDescription("The maximum number of bytes to receive");
table.addProperty("Discard Response", "discardResponse", JPropertiesTable.BOOLEAN_OPTIONS);
table.setPropertyObject(request);
return table;
}
public boolean hasOverviewPanel() {
return true;
}
}