1
2
3
4
5
6
7
8
9
10
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 }