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 }
23
24 public String getRequestContent()
25 {
26 if( requestContent != null )
27 return requestContent;
28
29 if( response == null )
30 response = getModelItem().getResponse();
31
32 return response == null ? getModelItem().getRequestContent() : response.getRequestContent();
33 }
34
35 public StringToStringMap getRequestHeaders()
36 {
37 return response == null ? getModelItem().getRequestHeaders() : response.getRequestHeaders();
38 }
39
40 public Attachment[] getRequestAttachments()
41 {
42 return getModelItem().getAttachments();
43 }
44
45 public Attachment[] getResponseAttachments()
46 {
47 if( response == null )
48 response = getModelItem().getResponse();
49
50 return response == null ? null : response.getAttachments();
51 }
52
53 public String getResponseContent()
54 {
55 if( response == null )
56 response = getModelItem().getResponse();
57
58 return response == null ? null : response.getContentAsString();
59 }
60
61 public String getRequestContentAsXml()
62 {
63 String result = getRequestContent();
64 return XmlUtils.seemsToBeXml( result ) ? result : "<not-xml/>";
65 }
66
67 public String getResponseContentAsXml()
68 {
69 if( response == null )
70 response = getModelItem().getResponse();
71
72 return response == null ? null : response.getProperty( RestRequest.REST_XML_RESPONSE );
73 }
74
75 public StringToStringMap getResponseHeaders()
76 {
77 if( response == null )
78 response = getModelItem().getResponse();
79
80 return response == null ? null : response.getResponseHeaders();
81 }
82
83 public long getTimeTaken()
84 {
85 if( response == null )
86 response = getModelItem().getResponse();
87
88 return response == null ? 0 : response.getTimeTaken();
89 }
90
91 public long getTimestamp()
92 {
93 if( response == null )
94 response = getModelItem().getResponse();
95
96 return response == null ? 0 : response.getTimestamp();
97 }
98
99 public void setRequestContent( String requestContent )
100 {
101 this.requestContent = requestContent;
102 }
103
104 public boolean isDiscarded()
105 {
106 return false;
107 }
108
109 public RestResource getResource()
110 {
111 return getModelItem().getResource();
112 }
113
114 public RestRequest getRestRequest()
115 {
116 return getModelItem();
117 }
118
119 public Operation getOperation()
120 {
121 return getResource();
122 }
123
124 public int getResponseStatusCode()
125 {
126 return response == null ? 0 : response.getStatusCode();
127 }
128
129 public String getResponseContentType()
130 {
131 return response == null ? null : response.getContentType();
132 }
133 }