1
2
3
4
5 package com.eviware.soapui.impl.wsdl.teststeps;
6
7 import com.eviware.soapui.config.TestStepConfig;
8 import com.eviware.soapui.impl.WsdlInterfaceFactory;
9 import com.eviware.soapui.impl.wsdl.WsdlInterface;
10 import com.eviware.soapui.impl.wsdl.WsdlProject;
11 import com.eviware.soapui.impl.wsdl.WsdlRequest;
12 import com.eviware.soapui.impl.wsdl.WsdlSubmitContext;
13 import com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse;
14 import com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase;
15 import com.eviware.soapui.impl.wsdl.teststeps.registry.WsdlMockResponseStepFactory;
16 import com.eviware.soapui.model.iface.Submit;
17 import com.eviware.soapui.model.testsuite.TestRunner;
18 import com.eviware.soapui.model.testsuite.TestRunner.Status;
19 import com.eviware.soapui.support.TestCaseWithJetty;
20 import com.eviware.soapui.support.types.StringToObjectMap;
21
22 public class MockResponseStepTestCaseOld extends TestCaseWithJetty
23 {
24 @Override
25 protected void setUp() throws Exception
26 {
27 super.setUp();
28 }
29
30 public void testMockResponseStep() throws Exception
31 {
32
33 WsdlProject project = new WsdlProject();
34
35
36 WsdlInterface iface = WsdlInterfaceFactory.importWsdl( project, "http://localhost:8082/test1/TestService.wsdl", true )[0];
37
38
39 WsdlTestCase testCase = project.addNewTestSuite( "TestSuite" ).addNewTestCase( "TestCase" );
40
41
42 WsdlRequest request = iface.getOperationAt( 0 ).getRequestAt( 0 );
43 TestStepConfig config = WsdlMockResponseStepFactory.createConfig( request, false );
44 WsdlMockResponseTestStep step = (WsdlMockResponseTestStep) testCase.addTestStep( config );
45
46 WsdlMockResponse mockResponse = step.getMockResponse();
47 mockResponse.setResponseContent( "<xml>Tjoho!!</xml>" );
48 step.setPort( 8989 );
49 step.setPath( "/tjohoo" );
50
51
52 TestRunner runner = testCase.run( new StringToObjectMap(), true );
53
54
55 request.setEndpoint( "http://127.0.0.1:8989/tjohoo" );
56 System.out.println( "Submitting first request" );
57 Submit submit = request.submit( new WsdlSubmitContext( null ), false );
58
59
60 assertEquals( mockResponse.getResponseContent(), submit.getResponse().getContentAsString() );
61 runner.waitUntilFinished();
62 long timeTaken = runner.getResults().get( 0 ).getTimeTaken();
63 assertTrue( timeTaken > 0 );
64 assertEquals( Status.FINISHED, runner.getStatus() );
65 assertEquals( mockResponse.getMockResult().getMockRequest().getRequestContent().trim(), request.getRequestContent().trim() );
66
67 System.out.println( "Mock response took " + timeTaken + "ms" );
68
69
70 testCase.cloneStep( step, "TestStep2" );
71
72 assertEquals( testCase.getTestStepCount(), 2 );
73
74
75 runner = testCase.run( new StringToObjectMap(), true );
76
77
78 Thread.sleep( 1000 );
79
80 System.out.println( "Submitting first request again" );
81 submit = request.submit( new WsdlSubmitContext( null ), false );
82 assertEquals( mockResponse.getResponseContent(), submit.getResponse().getContentAsString() );
83 assertEquals( Status.RUNNING, runner.getStatus() );
84 assertEquals( mockResponse.getMockResult().getMockRequest().getRequestContent().trim(), request.getRequestContent().trim() );
85
86
87 Thread.sleep( 1000 );
88 System.out.println( "Submitting second request" );
89 submit = request.submit( new WsdlSubmitContext( null ), false );
90
91
92 assertEquals( mockResponse.getResponseContent(), submit.getResponse().getContentAsString() );
93
94
95 Thread.sleep( 1000 );
96
97 timeTaken = runner.getResults().get( 1 ).getTimeTaken();
98 assertTrue( timeTaken > 0 );
99 assertEquals( Status.FINISHED, runner.getStatus() );
100 assertEquals( mockResponse.getMockResult().getMockRequest().getRequestContent().trim(), request.getRequestContent().trim() );
101
102 System.out.println( "Second Mock response took " + timeTaken + "ms" );
103 }
104 }