1 package com.eviware.soapui.impl.wsdl.teststeps;
2
3 import com.eviware.soapui.impl.rest.RestRequest;
4 import com.eviware.soapui.impl.rest.RestResource;
5 import com.eviware.soapui.impl.wsdl.submit.AbstractRestMessageExchange;
6 import com.eviware.soapui.impl.wsdl.submit.transports.http.HttpResponse;
7 import com.eviware.soapui.model.iface.Attachment;
8 import com.eviware.soapui.model.iface.Operation;
9 import com.eviware.soapui.support.types.StringToStringMap;
10 import com.eviware.soapui.support.xml.XmlUtils;
11
12 public class RestResponseMessageExchange extends AbstractRestMessageExchange<RestRequest>
13 {
14 private HttpResponse response;
15 private String requestContent;
16
17 public RestResponseMessageExchange( RestRequest request )
18 {
19 super( request );
20
21 response = request.getResponse();
22 if( response != null )
23 {
24 for( String key : response.getPropertyNames() )
25 {
26 addProperty( key, response.getProperty( key ) );
27 }
28 }
29 }
30
31 public String getRequestContent()
32 {
33 if( requestContent != null )
34 return requestContent;
35
36 if( response == null )
37 response = getModelItem().getResponse();
38
39 return response == null ? getModelItem().getRequestContent() : response.getRequestContent();
40 }
41
42 public StringToStringMap getRequestHeaders()
43 {
44 return response == null ? getModelItem().getRequestHeaders() : response.getRequestHeaders();
45 }
46
47 public Attachment[] getRequestAttachments()
48 {
49 return getModelItem().getAttachments();
50 }
51
52 public Attachment[] getResponseAttachments()
53 {
54 if( response == null )
55 response = getModelItem().getResponse();
56
57 return response == null ? null : response.getAttachments();
58 }
59
60 public String getResponseContent()
61 {
62 if( response == null )
63 response = getModelItem().getResponse();
64
65 return response == null ? null : response.getContentAsString();
66 }
67
68 public HttpResponse getResponse()
69 {
70 return response;
71 }
72
73 public String getRequestContentAsXml()
74 {
75 String result = getRequestContent();
76 return XmlUtils.seemsToBeXml( result ) ? result : "<not-xml/>";
77 }
78
79 public void setResponse( HttpResponse response )
80 {
81 this.response = response;
82 }
83
84 public String getResponseContentAsXml()
85 {
86 if( response == null )
87 response = getModelItem().getResponse();
88
89 return response == null ? null : response.getProperty( RestRequest.REST_XML_RESPONSE );
90 }
91
92 public StringToStringMap getResponseHeaders()
93 {
94 if( response == null )
95 response = getModelItem().getResponse();
96
97 return response == null ? null : response.getResponseHeaders();
98 }
99
100 public long getTimeTaken()
101 {
102 if( response == null )
103 response = getModelItem().getResponse();
104
105 return response == null ? 0 : response.getTimeTaken();
106 }
107
108 public long getTimestamp()
109 {
110 if( response == null )
111 response = getModelItem().getResponse();
112
113 return response == null ? 0 : response.getTimestamp();
114 }
115
116 public void setRequestContent( String requestContent )
117 {
118 this.requestContent = requestContent;
119 }
120
121 public boolean isDiscarded()
122 {
123 return false;
124 }
125
126 public RestResource getResource()
127 {
128 return getModelItem().getResource();
129 }
130
131 public RestRequest getRestRequest()
132 {
133 return getModelItem();
134 }
135
136 public Operation getOperation()
137 {
138 return getResource();
139 }
140
141 public int getResponseStatusCode()
142 {
143 return response == null ? 0 : response.getStatusCode();
144 }
145
146 public String getResponseContentType()
147 {
148 return response == null ? null : response.getContentType();
149 }
150 }