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  	}
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 }