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