1 package com.eviware.soapui.impl.wsdl.teststeps.assertions.jdbc;
2
3 import com.eviware.soapui.config.TestAssertionConfig;
4 import com.eviware.soapui.impl.wsdl.WsdlRequest;
5 import com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcSubmit;
6 import com.eviware.soapui.impl.wsdl.teststeps.JdbcRequestTestStep;
7 import com.eviware.soapui.impl.wsdl.teststeps.WsdlMessageAssertion;
8 import com.eviware.soapui.impl.wsdl.teststeps.assertions.AbstractTestAssertionFactory;
9 import com.eviware.soapui.model.iface.MessageExchange;
10 import com.eviware.soapui.model.iface.SubmitContext;
11 import com.eviware.soapui.model.testsuite.Assertable;
12 import com.eviware.soapui.model.testsuite.AssertionError;
13 import com.eviware.soapui.model.testsuite.AssertionException;
14 import com.eviware.soapui.model.testsuite.RequestAssertion;
15 import com.eviware.soapui.model.testsuite.ResponseAssertion;
16
17 public class JdbcTimeoutAssertion extends WsdlMessageAssertion implements ResponseAssertion, RequestAssertion
18 {
19 public static final String ID = "JDBC Timeout";
20 public static final String LABEL = "JDBC Timeout";
21
22 public JdbcTimeoutAssertion( TestAssertionConfig assertionConfig, Assertable assertable )
23 {
24 super( assertionConfig, assertable, false, false, false, true );
25 }
26
27 @Override
28 protected String internalAssertResponse( MessageExchange messageExchange, SubmitContext context )
29 throws AssertionException
30 {
31
32 if( context.getProperty( JdbcSubmit.JDBC_TIMEOUT ) != null )
33 {
34 Long timeout = Long.valueOf( context.getProperty( JdbcSubmit.JDBC_TIMEOUT ).toString() );
35 throw new AssertionException( new AssertionError( "JDBC Request timeout error! Query not executed in "
36 + timeout + " ms." ) );
37 }
38
39 return "JDBC Timeout OK";
40 }
41
42 @Override
43 protected String internalAssertRequest( MessageExchange messageExchange, SubmitContext context )
44 throws AssertionException
45 {
46 return "JDBC Timeout OK";
47 }
48
49 public static class Factory extends AbstractTestAssertionFactory
50 {
51 public Factory()
52 {
53 super( JdbcTimeoutAssertion.ID, JdbcTimeoutAssertion.LABEL, JdbcTimeoutAssertion.class, WsdlRequest.class );
54 }
55
56 @Override
57 public boolean canAssert( Assertable assertable )
58 {
59 return assertable instanceof JdbcRequestTestStep;
60 }
61
62 @Override
63 public Class<? extends WsdlMessageAssertion> getAssertionClassType()
64 {
65 return JdbcTimeoutAssertion.class;
66 }
67 }
68 }