View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2010 eviware.com 
3    *
4    *  soapUI is free software; you can redistribute it and/or modify it under the 
5    *  terms of version 2.1 of the GNU Lesser General Public License as published by 
6    *  the Free Software Foundation.
7    *
8    *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
10   *  See the GNU Lesser General Public License for more details at gnu.org.
11   */
12  
13  package com.eviware.soapui.impl.wsdl.teststeps;
14  
15  import java.util.Vector;
16  
17  import com.eviware.soapui.impl.wsdl.WsdlOperation;
18  import com.eviware.soapui.impl.wsdl.WsdlRequest;
19  import com.eviware.soapui.impl.wsdl.submit.AbstractWsdlMessageExchange;
20  import com.eviware.soapui.impl.wsdl.submit.transports.http.WsdlResponse;
21  import com.eviware.soapui.model.iface.Attachment;
22  import com.eviware.soapui.support.types.StringToStringMap;
23  
24  /***
25   * WsdlMessageExchange for a WsdlRequest and its response
26   * 
27   * @author ole.matzura
28   */
29  
30  public class WsdlResponseMessageExchange extends AbstractWsdlMessageExchange<WsdlRequest>
31  {
32  	private WsdlResponse response;
33  	private String requestContent;
34  
35  	public WsdlResponseMessageExchange( WsdlRequest request )
36  	{
37  		super( request );
38  		response = request.getResponse();
39  
40  		if( response != null )
41  		{
42  			for( String key : response.getPropertyNames() )
43  			{
44  				addProperty( key, response.getProperty( key ) );
45  			}
46  		}
47  	}
48  
49  	public String getEndpoint()
50  	{
51  		return String.valueOf( response.getURL());
52  	}
53  
54  	public WsdlRequest getRequest()
55  	{
56  		return getModelItem();
57  	}
58  
59  	public WsdlResponse getResponse()
60  	{
61  		return response;
62  	}
63  
64  	public void setResponse( WsdlResponse response )
65  	{
66  		this.response = response;
67  	}
68  
69  	public String getRequestContent()
70  	{
71  		if( requestContent != null )
72  			return requestContent;
73  
74  		if( response == null )
75  			response = getModelItem().getResponse();
76  
77  		return response == null ? getModelItem().getRequestContent() : response.getRequestContent();
78  	}
79  
80  	public StringToStringMap getRequestHeaders()
81  	{
82  		return response == null ? getModelItem().getRequestHeaders() : response.getRequestHeaders();
83  	}
84  
85  	public Attachment[] getRequestAttachments()
86  	{
87  		return getModelItem().getAttachments();
88  	}
89  
90  	public Attachment[] getResponseAttachments()
91  	{
92  		if( response == null )
93  			response = getModelItem().getResponse();
94  
95  		return response == null ? null : response.getAttachments();
96  	}
97  
98  	public String getResponseContent()
99  	{
100 		if( response == null )
101 			response = getModelItem().getResponse();
102 
103 		return response == null ? null : response.getContentAsString();
104 	}
105 
106 	public StringToStringMap getResponseHeaders()
107 	{
108 		if( response == null )
109 			response = getModelItem().getResponse();
110 
111 		return response == null ? null : response.getResponseHeaders();
112 	}
113 
114 	public WsdlOperation getOperation()
115 	{
116 		return getModelItem().getOperation();
117 	}
118 
119 	public long getTimeTaken()
120 	{
121 		if( response == null )
122 			response = getModelItem().getResponse();
123 
124 		return response == null ? 0 : response.getTimeTaken();
125 	}
126 
127 	public long getTimestamp()
128 	{
129 		if( response == null )
130 			response = getModelItem().getResponse();
131 
132 		return response == null ? 0 : response.getTimestamp();
133 	}
134 
135 	public void setRequestContent( String requestContent )
136 	{
137 		this.requestContent = requestContent;
138 	}
139 
140 	public boolean isDiscarded()
141 	{
142 		return false;
143 	}
144 
145 	public Vector<?> getRequestWssResult()
146 	{
147 		return null;
148 	}
149 
150 	public Vector<?> getResponseWssResult()
151 	{
152 		return response.getWssResult();
153 	}
154 
155 	public String getResponseContentType()
156 	{
157 		return response.getContentType();
158 	}
159 
160 	public int getResponseStatusCode()
161 	{
162 		return response.getStatusCode();
163 	}
164 }