View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2010 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.util.Vector;
16  
17  import com.eviware.soapui.impl.wsdl.WsdlOperation;
18  import com.eviware.soapui.impl.wsdl.WsdlRequest;
19  import com.eviware.soapui.impl.wsdl.submit.AbstractWsdlMessageExchange;
20  import com.eviware.soapui.impl.wsdl.submit.transports.http.WsdlResponse;
21  import com.eviware.soapui.model.iface.Attachment;
22  import com.eviware.soapui.support.types.StringToStringsMap;
23  
24  /***
25   * WsdlMessageExchange for a WsdlRequest and its response
26   * 
27   * @author ole.matzura
28   */
29  
30  public class WsdlResponseMessageExchange extends AbstractWsdlMessageExchange<WsdlRequest>
31  {
32  	private WsdlResponse response;
33  	private String requestContent;
34  
35  	public WsdlResponseMessageExchange( WsdlRequest request )
36  	{
37  		super( request );
38  		response = request.getResponse();
39  
40  		if( response != null )
41  		{
42  			for( String key : response.getPropertyNames() )
43  			{
44  				addProperty( key, response.getProperty( key ) );
45  			}
46  		}
47  	}
48  
49  	public String getEndpoint()
50  	{
51  		return String.valueOf( response.getURL() );
52  	}
53  
54  	public WsdlRequest getRequest()
55  	{
56  		return getModelItem();
57  	}
58  
59  	public WsdlResponse getResponse()
60  	{
61  		return response;
62  	}
63  
64  	public boolean hasRawData()
65  	{
66  		return response != null;
67  	}
68  
69  	public byte[] getRawRequestData()
70  	{
71  		return response == null ? null : response.getRawRequestData();
72  	}
73  
74  	public byte[] getRawResponseData()
75  	{
76  		return response == null ? null : response.getRawResponseData();
77  	}
78  
79  	public void setResponse( WsdlResponse response )
80  	{
81  		this.response = response;
82  	}
83  
84  	public String getRequestContent()
85  	{
86  		if( requestContent != null )
87  			return requestContent;
88  
89  		if( response == null )
90  			response = getModelItem().getResponse();
91  
92  		return response == null ? getModelItem().getRequestContent() : response.getRequestContent();
93  	}
94  
95  	public StringToStringsMap getRequestHeaders()
96  	{
97  		return response == null ? getModelItem().getRequestHeaders() : response.getRequestHeaders();
98  	}
99  
100 	public Attachment[] getRequestAttachments()
101 	{
102 		return getModelItem().getAttachments();
103 	}
104 
105 	public Attachment[] getResponseAttachments()
106 	{
107 		if( response == null )
108 			response = getModelItem().getResponse();
109 
110 		return response == null ? null : response.getAttachments();
111 	}
112 
113 	public String getResponseContent()
114 	{
115 		if( response == null )
116 			response = getModelItem().getResponse();
117 
118 		return response == null ? null : response.getContentAsString();
119 	}
120 
121 	public StringToStringsMap getResponseHeaders()
122 	{
123 		if( response == null )
124 			response = getModelItem().getResponse();
125 
126 		return response == null ? null : response.getResponseHeaders();
127 	}
128 
129 	public WsdlOperation getOperation()
130 	{
131 		return getModelItem().getOperation();
132 	}
133 
134 	public long getTimeTaken()
135 	{
136 		if( response == null )
137 			response = getModelItem().getResponse();
138 
139 		return response == null ? 0 : response.getTimeTaken();
140 	}
141 
142 	public long getTimestamp()
143 	{
144 		if( response == null )
145 			response = getModelItem().getResponse();
146 
147 		return response == null ? 0 : response.getTimestamp();
148 	}
149 
150 	public void setRequestContent( String requestContent )
151 	{
152 		this.requestContent = requestContent;
153 	}
154 
155 	public boolean isDiscarded()
156 	{
157 		return false;
158 	}
159 
160 	public Vector<?> getRequestWssResult()
161 	{
162 		return null;
163 	}
164 
165 	public Vector<?> getResponseWssResult()
166 	{
167 		return response.getWssResult();
168 	}
169 
170 	public String getResponseContentType()
171 	{
172 		return response.getContentType();
173 	}
174 
175 	public int getResponseStatusCode()
176 	{
177 		return response.getStatusCode();
178 	}
179 }