1
2
3
4
5 package com.eviware.soapui.support.dnd.handlers;
6
7 import java.util.HashSet;
8
9 import com.eviware.soapui.SoapUI;
10 import com.eviware.soapui.impl.wsdl.WsdlInterface;
11 import com.eviware.soapui.impl.wsdl.WsdlProject;
12 import com.eviware.soapui.impl.wsdl.WsdlRequest;
13 import com.eviware.soapui.impl.wsdl.actions.request.AddRequestToTestCaseAction;
14 import com.eviware.soapui.model.tree.nodes.support.WsdlTestStepsModelItem;
15 import com.eviware.soapui.support.UISupport;
16 import com.eviware.soapui.support.action.SoapUIAction;
17
18 public class RequestToTestStepsDropHandler extends AbstractAfterModelItemDropHandler<WsdlRequest, WsdlTestStepsModelItem>
19 {
20 public RequestToTestStepsDropHandler()
21 {
22 super( WsdlRequest.class, WsdlTestStepsModelItem.class );
23 }
24
25 @Override
26 boolean canCopyAfter( WsdlRequest source, WsdlTestStepsModelItem target )
27 {
28 return true;
29 }
30
31 @Override
32 boolean canMoveAfter( WsdlRequest source, WsdlTestStepsModelItem target )
33 {
34 return true;
35 }
36
37 @Override
38 boolean copyAfter( WsdlRequest source, WsdlTestStepsModelItem target )
39 {
40 return addRequestToTestCase( source, target);
41 }
42
43 private boolean addRequestToTestCase( WsdlRequest source, WsdlTestStepsModelItem target )
44 {
45 if( !UISupport.confirm( "Add Request [" + source.getName() + "] to TestCase [" +
46 target.getTestCase().getName() +"]", "Add Request to TestCase" ))
47 return false;
48
49 WsdlProject targetProject = target.getTestCase().getTestSuite().getProject();
50 if( targetProject != source.getOperation().getInterface().getProject() )
51 {
52 HashSet<WsdlInterface> requiredInterfaces = new HashSet<WsdlInterface>();
53 requiredInterfaces.add( source.getOperation().getInterface() );
54
55 if( !DragAndDropSupport.importRequiredInterfaces( targetProject,
56 requiredInterfaces, "Add Request to TestCase" ))
57 {
58 return false;
59 }
60 }
61
62 SoapUIAction<WsdlRequest> action = SoapUI.getActionRegistry().getAction( AddRequestToTestCaseAction.SOAPUI_ACTION_ID );
63 return (( AddRequestToTestCaseAction ) action).addRequest( target.getTestCase(), source, 0 ) != null;
64 }
65
66 @Override
67 boolean moveAfter( WsdlRequest source, WsdlTestStepsModelItem target )
68 {
69 return addRequestToTestCase( source, target);
70 }
71
72 @Override
73 String getCopyAfterInfo( WsdlRequest source, WsdlTestStepsModelItem target )
74 {
75 return "Add Request [" + source.getName() + "] to TestCase [" + target.getTestCase().getName() +"]";
76 }
77
78 @Override
79 String getMoveAfterInfo( WsdlRequest source, WsdlTestStepsModelItem target )
80 {
81 return getCopyAfterInfo( source, target );
82 }
83 }