View Javadoc

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 }