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