1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.testcase;
14
15 import com.eviware.soapui.model.support.AbstractSubmitContext;
16 import com.eviware.soapui.model.support.PropertiesMap;
17 import com.eviware.soapui.model.testsuite.TestCase;
18 import com.eviware.soapui.model.testsuite.TestRunContext;
19 import com.eviware.soapui.model.testsuite.TestRunner;
20 import com.eviware.soapui.model.testsuite.TestStep;
21
22 /***
23 * TestRunContext for WsdlTestCase runners
24 *
25 * @author Ole.Matzura
26 */
27
28 public class WsdlTestRunContext extends AbstractSubmitContext implements TestRunContext
29 {
30 private final TestRunner testRunner;
31 private int currentStepIndex;
32 private TestCase testCase;
33
34 public WsdlTestRunContext( TestRunner testRunner, PropertiesMap properties )
35 {
36 super( properties );
37 this.testRunner = testRunner;
38 }
39
40 public WsdlTestRunContext( TestStep testStep )
41 {
42 this( null, null );
43
44 testCase = testStep.getTestCase();
45 currentStepIndex = testCase.getIndexOfTestStep( testStep );
46 }
47
48 public TestStep getCurrentStep()
49 {
50 if( currentStepIndex < 0 || currentStepIndex >= getTestCase().getTestStepCount() )
51 return null;
52
53 return getTestCase().getTestStepAt( currentStepIndex );
54 }
55
56 @Override
57 public void setProperty( String name, Object value )
58 {
59 super.setProperty( name, value, getTestCase() );
60 }
61
62 public int getCurrentStepIndex()
63 {
64 return currentStepIndex;
65 }
66
67 public void setCurrentStep( int index )
68 {
69 currentStepIndex = index;
70 }
71
72 public TestRunner getTestRunner()
73 {
74 return testRunner;
75 }
76
77 public Object getProperty(String testStepName, String propertyName)
78 {
79 TestStep testStep = getTestCase().getTestStepByName( testStepName );
80 return testStep == null ? null : testStep.getPropertyValue( propertyName );
81 }
82
83 public TestCase getTestCase()
84 {
85 return testRunner == null ? testCase : testRunner.getTestCase();
86 }
87
88 public Object getProperty(String name)
89 {
90 WsdlTestCase testCase = (WsdlTestCase) getTestCase();
91 TestStep testStep = currentStepIndex >= 0 && currentStepIndex < testCase.getTestStepCount() ?
92 testCase.getTestStepAt( currentStepIndex ) : null;
93
94 return getProperty( name, testStep, testCase);
95 }
96
97 public void reset()
98 {
99 resetProperties();
100 currentStepIndex = 0;
101 }
102 }