View Javadoc

    1   /*
    2    *  soapUI, copyright (C) 2004-2007 eviware.com
    3    *
    4    *  soapUI is free software; you can redistribute it and/or modify it under the
    5    *  terms of version 2.1 of the GNU Lesser General Public License as published by
    6    *  the Free Software Foundation.
    7    *
    8    *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
    9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    10   *  See the GNU Lesser General Public License for more details at gnu.org.
    11   */
    12
    13  package com.eviware.soapui.impl.wsdl.teststeps;
    14
    15  import java.io.PrintWriter;
    16
    17  import com.eviware.soapui.impl.wsdl.submit.transports.http.WsdlResponse;
    18  import com.eviware.soapui.impl.wsdl.teststeps.actions.ShowMessageExchangeAction;
    19  import com.eviware.soapui.model.iface.Attachment;
    20  import com.eviware.soapui.model.iface.MessageExchange;
    21  import com.eviware.soapui.support.action.swing.ActionList;
    22  import com.eviware.soapui.support.types.StringToStringMap;
    23  import com.eviware.soapui.support.xml.XmlUtils;
    24
    25  /***
    26   * TestStepResult for a WsdlTestRequestStep
    27   *
    28   * @author ole.matzura
    29   */
    30
    31  public class WsdlTestRequestStepResult extends WsdlTestStepResult implements MessageExchange
    32  {
    33  	private String requestContent;
    34  	private WsdlResponse response;
    35  	private String domain;
    36  	private String username;
    37  	private String endpoint;
    38  	private String encoding;
    39  	private String password;
    40  	private StringToStringMap properties;
    41  	private boolean addedAction;
    42
    43  	public WsdlTestRequestStepResult(WsdlTestRequestStep step )
    44  	{
    45  		super( step );
    46  	}
    47
    48  	public String getRequestContent()
    49  	{
    50  		if( isDiscarded() )
    51  			return "<discarded>";
    52
    53  		return requestContent;
    54  	}
    55
    56  	public void setRequestContent(String requestContent)
    57  	{
    58  		this.requestContent = requestContent;
    59  	}
    60
    61  	public WsdlResponse getResponse()
    62  	{
    63  		return response;
    64  	}
    65
    66  	@Override
    67  	public ActionList getActions()
    68  	{
    69  		if( !addedAction )
    70  		{
    71  			addAction( new ShowMessageExchangeAction( this, "TestStep" ), true );
    72  			addedAction = true;
    73  		}
    74
    75  		return super.getActions();
    76  	}
    77
    78  	public void setResponse(WsdlResponse response)
    79  	{
    80  		this.response = response;
    81  	}
    82
    83  	public String getDomain()
    84  	{
    85  		return domain;
    86  	}
    87
    88  	public void setDomain(String domain)
    89  	{
    90  		this.domain = domain;
    91  		addProperty( "domain", domain );
    92  	}
    93
    94  	private void addProperty( String key, String value )
    95  	{
    96  		if( properties == null )
    97  			properties = new StringToStringMap();
    98
    99  		properties.put( key, value );
    100 	}
    101
    102 	public String getEncoding()
    103 	{
    104 		return encoding;
    105 	}
    106
    107 	public void setEncoding(String encoding)
    108 	{
    109 		this.encoding = encoding;
    110 		addProperty( "encoding", encoding );
    111 	}
    112
    113 	public String getEndpoint()
    114 	{
    115 		return endpoint;
    116 	}
    117
    118 	public void setEndpoint(String endpoint)
    119 	{
    120 		this.endpoint = endpoint;
    121 		addProperty( "endpoint", endpoint );
    122 	}
    123
    124 	public String getPassword()
    125 	{
    126 		return password;
    127 	}
    128
    129 	public void setPassword(String password)
    130 	{
    131 		this.password = password;
    132 		addProperty( "password", password );
    133 	}
    134
    135 	public String getUsername()
    136 	{
    137 		return username;
    138 	}
    139
    140 	public void setUsername(String username)
    141 	{
    142 		this.username = username;
    143 		addProperty( "username", username );
    144 	}
    145
    146 	public void discard()
    147 	{
    148 		super.discard();
    149
    150 		requestContent = null;
    151 		response = null;
    152 		properties = null;
    153 	}
    154
    155 	public void writeTo(PrintWriter writer)
    156 	{
    157 		super.writeTo( writer );
    158
    159 		writer.println( "----------------------------------------------------" );
    160 		writer.println( "Encoding: " + getEncoding() );
    161 		writer.println( "Endpoint: " + getEndpoint() );
    162 		writer.println( "Username: " + getUsername() );
    163 		writer.println( "Password: " + getPassword() );
    164 		writer.println( "Domain: " + getDomain() );
    165
    166 		writer.println( "---------------- Request ---------------------------" );
    167 		if( requestContent != null )
    168 			writer.println( XmlUtils.prettyPrintXml( requestContent ) );
    169 		else
    170 			writer.println( "- missing request / garbage collected -" );
    171
    172 		if( response != null )
    173 		{
    174 			writer.println( "Request Headers: " + response.getRequestHeaders().toString() );
    175 		}
    176
    177 		writer.println( "---------------- Response --------------------------" );
    178 		if( response != null )
    179 		{
    180 			String respContent = response.getContentAsString();
    181 			if( respContent != null )
    182 				writer.println( XmlUtils.prettyPrintXml( respContent ) );
    183
    184 			writer.println( "Response Headers: " + response.getResponseHeaders().toString() );
    185 		}
    186 		else
    187 			writer.println( "- missing response / garbage collected -" );
    188 	}
    189
    190 	public StringToStringMap getProperties()
    191 	{
    192 		return properties;
    193 	}
    194
    195 	public Attachment[] getRequestAttachments()
    196 	{
    197 		if( response == null || response.getRequest() == null )
    198 			return new Attachment[0];
    199
    200 		return response.getRequest().getAttachments();
    201 	}
    202
    203 	public StringToStringMap getRequestHeaders()
    204 	{
    205 		if( response == null )
    206 			return null;
    207
    208 		return response.getRequestHeaders();
    209 	}
    210
    211 	public Attachment[] getResponseAttachments()
    212 	{
    213 		if( response == null )
    214 			return new Attachment[0];
    215
    216 		return response.getAttachments();
    217 	}
    218
    219 	public String getResponseContent()
    220 	{
    221 		if( isDiscarded() )
    222 			return "<discarded>";
    223
    224 		if( response == null )
    225 			return "<missing response>";
    226
    227 		return response.getContentAsString();
    228 	}
    229
    230 	public StringToStringMap getResponseHeaders()
    231 	{
    232 		if( response == null )
    233 			return null;
    234
    235 		return response.getResponseHeaders();
    236 	}
    237
    238 	public long getTimestamp()
    239 	{
    240 		if( isDiscarded() || response == null )
    241 			return -1;
    242
    243 		return response.getTimestamp();
    244 	}
    245 }