1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.mock;
14
15 import java.io.IOException;
16 import java.io.OutputStream;
17 import java.util.Enumeration;
18
19 import javax.servlet.http.HttpServletResponse;
20
21 import org.mortbay.jetty.HttpFields;
22
23 import com.eviware.soapui.impl.wsdl.panels.mockoperation.WsdlMockResultMessageExchange;
24 import com.eviware.soapui.impl.wsdl.teststeps.actions.ShowMessageExchangeAction;
25 import com.eviware.soapui.model.mock.MockResult;
26 import com.eviware.soapui.support.action.swing.ActionList;
27 import com.eviware.soapui.support.action.swing.DefaultActionList;
28 import com.eviware.soapui.support.types.StringToStringMap;
29
30 /***
31 * The result of a handled WsdlMockRequest
32 *
33 * @author ole.matzura
34 */
35
36 public class WsdlMockResult implements MockResult
37 {
38 private WsdlMockResponse mockResponse;
39 private String responseContent;
40 private long timeTaken;
41 private long timestamp;
42 private DefaultActionList actions;
43 private StringToStringMap responseHeaders = new StringToStringMap();
44 private WsdlMockRequest mockRequest;
45 private HttpServletResponse response;
46
47 public WsdlMockResult( WsdlMockRequest request, HttpServletResponse response ) throws Exception
48 {
49 this.response = response;
50 timestamp = System.currentTimeMillis();
51 mockRequest = request;
52 }
53
54 public WsdlMockRequest getMockRequest()
55 {
56 return mockRequest;
57 }
58
59 public ActionList getActions()
60 {
61 if( actions == null )
62 {
63 actions = new DefaultActionList( "MockResult" );
64 actions.setDefaultAction( new ShowMessageExchangeAction( new WsdlMockResultMessageExchange( this ), "MockResult") );
65 }
66
67 return actions;
68 }
69
70 public WsdlMockResponse getMockResponse()
71 {
72 return mockResponse;
73 }
74
75 public String getResponseContent()
76 {
77 return responseContent;
78 }
79
80 public long getTimeTaken()
81 {
82 return timeTaken;
83 }
84
85 public long getTimestamp()
86 {
87 return timestamp;
88 }
89
90 public void setTimestamp( long timestamp )
91 {
92 this.timestamp = timestamp;
93 }
94
95 public void setTimeTaken( long timeTaken )
96 {
97 this.timeTaken = timeTaken;
98 }
99
100 public StringToStringMap getResponseHeaders()
101 {
102 return responseHeaders;
103 }
104
105 public void setMockResponse( WsdlMockResponse mockResponse )
106 {
107 this.mockResponse = mockResponse;
108 }
109
110 /***
111 * @deprecated
112 */
113
114 public void setReponseContent( String responseContent )
115 {
116 this.responseContent = responseContent;
117 }
118
119 public void setResponseContent( String responseContent )
120 {
121 this.responseContent = responseContent;
122 }
123
124 @SuppressWarnings("unchecked")
125 public void finish()
126 {
127 HttpFields httpFields = ((org.mortbay.jetty.Response)response).getHttpFields();
128
129 Enumeration<String> e = httpFields.getFieldNames();
130 while( e.hasMoreElements() )
131 {
132 String nextElement = e.nextElement();
133 responseHeaders.put( nextElement, httpFields.getStringField( nextElement ) );
134 }
135
136 response = null;
137 }
138
139 public void addHeader( String name, String value )
140 {
141 if( response != null )
142 response.addHeader( name, value );
143 else
144 responseHeaders.put( name, value );
145 }
146
147 public boolean isCommitted()
148 {
149 return response.isCommitted();
150 }
151
152 public void setContentType( String string )
153 {
154 response.setContentType( string );
155 }
156
157 public OutputStream getOutputStream() throws IOException
158 {
159 return response.getOutputStream();
160 }
161
162 public void initResponse()
163 {
164 response.setStatus( HttpServletResponse.SC_OK );
165 }
166
167 public boolean isDiscarded()
168 {
169 return false;
170 }
171 }