1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.teststeps.assertions;
14
15 import com.eviware.soapui.config.RequestAssertionConfig;
16 import com.eviware.soapui.impl.wsdl.submit.WsdlMessageExchange;
17 import com.eviware.soapui.impl.wsdl.support.assertions.Assertable;
18 import com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext;
19 import com.eviware.soapui.impl.wsdl.support.wsdl.WsdlValidator;
20 import com.eviware.soapui.impl.wsdl.teststeps.WsdlMessageAssertion;
21 import com.eviware.soapui.model.iface.SubmitContext;
22
23 /***
24 * Asserts that the specified message is a valid SOAP Message
25 *
26 * @author ole.matzura
27 */
28
29 public class SoapResponseAssertion extends WsdlMessageAssertion implements ResponseAssertion, RequestAssertion
30 {
31 public static final String ID = "SOAP Response";
32
33 public SoapResponseAssertion( RequestAssertionConfig assertionConfig, Assertable assertable )
34 {
35 super( assertionConfig, assertable, false, false );
36 }
37
38 @Override
39 protected String internalAssertResponse( WsdlMessageExchange messageExchange, SubmitContext context )
40 throws AssertionException
41 {
42 WsdlContext wsdlContext = messageExchange.getOperation().getInterface().getWsdlContext();
43 WsdlValidator validator = new WsdlValidator( wsdlContext );
44
45 try
46 {
47 AssertionError[] errors = validator.assertResponse( messageExchange, true );
48 if (errors.length > 0)
49 throw new AssertionException(errors);
50 }
51 catch( AssertionException e )
52 {
53 throw e;
54 }
55 catch (Exception e)
56 {
57 throw new AssertionException( new AssertionError( e.getMessage() ));
58 }
59
60 return "Response Envelope OK";
61 }
62
63 @Override
64 protected String internalAssertRequest( WsdlMessageExchange messageExchange, SubmitContext context ) throws AssertionException
65 {
66 WsdlContext wsdlContext = messageExchange.getOperation().getInterface().getWsdlContext();
67 WsdlValidator validator = new WsdlValidator( wsdlContext );
68
69 try
70 {
71 AssertionError[] errors = validator.assertRequest( messageExchange, true );
72 if (errors.length > 0)
73 throw new AssertionException(errors);
74 }
75 catch( AssertionException e )
76 {
77 throw e;
78 }
79 catch (Exception e)
80 {
81 throw new AssertionException( new AssertionError( e.getMessage() ));
82 }
83
84 return "Request Envelope OK";
85 }
86 }