View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2009 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 WsdlRequest getRequest()
50  	{
51  		return getModelItem();
52  	}
53  
54  	public WsdlResponse getResponse()
55  	{
56  		return response;
57  	}
58  
59  	public void setResponse( WsdlResponse response )
60  	{
61  		this.response = response;
62  	}
63  
64  	public String getRequestContent()
65  	{
66  		if( requestContent != null )
67  			return requestContent;
68  
69  		if( response == null )
70  			response = getModelItem().getResponse();
71  
72  		return response == null ? getModelItem().getRequestContent() : response.getRequestContent();
73  	}
74  
75  	public StringToStringMap getRequestHeaders()
76  	{
77  		return response == null ? getModelItem().getRequestHeaders() : response.getRequestHeaders();
78  	}
79  
80  	public Attachment[] getRequestAttachments()
81  	{
82  		return getModelItem().getAttachments();
83  	}
84  
85  	public Attachment[] getResponseAttachments()
86  	{
87  		if( response == null )
88  			response = getModelItem().getResponse();
89  
90  		return response == null ? null : response.getAttachments();
91  	}
92  
93  	public String getResponseContent()
94  	{
95  		if( response == null )
96  			response = getModelItem().getResponse();
97  
98  		return response == null ? null : response.getContentAsString();
99  	}
100 
101 	public StringToStringMap getResponseHeaders()
102 	{
103 		if( response == null )
104 			response = getModelItem().getResponse();
105 
106 		return response == null ? null : response.getResponseHeaders();
107 	}
108 
109 	public WsdlOperation getOperation()
110 	{
111 		return getModelItem().getOperation();
112 	}
113 
114 	public long getTimeTaken()
115 	{
116 		if( response == null )
117 			response = getModelItem().getResponse();
118 
119 		return response == null ? 0 : response.getTimeTaken();
120 	}
121 
122 	public long getTimestamp()
123 	{
124 		if( response == null )
125 			response = getModelItem().getResponse();
126 
127 		return response == null ? 0 : response.getTimestamp();
128 	}
129 
130 	public void setRequestContent( String requestContent )
131 	{
132 		this.requestContent = requestContent;
133 	}
134 
135 	public boolean isDiscarded()
136 	{
137 		return false;
138 	}
139 
140 	public Vector<?> getRequestWssResult()
141 	{
142 		return null;
143 	}
144 
145 	public Vector<?> getResponseWssResult()
146 	{
147 		return response.getWssResult();
148 	}
149 
150 	public String getResponseContentType()
151 	{
152 		return response.getContentType();
153 	}
154 
155 	public int getResponseStatusCode()
156 	{
157 		return response.getStatusCode();
158 	}
159 }