View Javadoc

1   package com.eviware.soapui.support.resolver;
2   
3   import com.eviware.soapui.impl.wsdl.WsdlProject;
4   import com.eviware.soapui.impl.wsdl.teststeps.PropertyTransfer;
5   import com.eviware.soapui.impl.wsdl.teststeps.PropertyTransfersTestStep;
6   import com.eviware.soapui.model.testsuite.TestProperty;
7   import com.eviware.soapui.support.StringUtils;
8   import com.eviware.soapui.support.UISupport;
9   import com.eviware.soapui.support.resolver.ResolveContext.Resolver;
10  
11  public class CreateMissingPropertyResolver implements Resolver
12  {
13  	private boolean resolved = false;
14  	private PropertyTransfersTestStep parentPropertyTestStep = null;
15  	private PropertyTransfer badTransfer = null;
16  
17  	public CreateMissingPropertyResolver(PropertyTransfer transfer, PropertyTransfersTestStep parent)
18  	{
19  		parentPropertyTestStep = parent;
20  		badTransfer = transfer;
21  	}
22  
23  	public String getDescription()
24  	{
25  		return "Create new property";
26  	}
27  
28  	@Override
29  	public String toString()
30  	{
31  		return getDescription();
32  	}
33  
34  	public String getResolvedPath()
35  	{
36  		return null;
37  	}
38  
39  	public boolean isResolved()
40  	{
41  		return resolved;
42  	}
43  
44  	public boolean resolve()
45  	{
46  		WsdlProject project = parentPropertyTestStep.getTestCase().getTestSuite().getProject();
47  
48  		String name = UISupport.prompt("Specify unique property name", "Add Property", "");
49  		if (StringUtils.hasContent(name))
50  		{
51  			if (project.hasProperty(name))
52  			{
53  				UISupport.showErrorMessage("Property name [" + name + "] already exists. Property transfer will be disabled.");
54  				badTransfer.setDisabled(true);
55  				
56  			}
57  			else
58  			{
59  				TestProperty newProperty = project.addProperty(name);
60  				name = UISupport.prompt("What is default value for property " + name, "Add Property Value", "");
61  				if (StringUtils.hasContent(name))
62  					newProperty.setValue(name);
63  				else
64  					newProperty.setValue(newProperty.getName());
65  				badTransfer.setSourcePropertyName(newProperty.getName());
66  				resolved = true;
67  			}
68  		} else {
69  			UISupport.showInfoMessage("Canceled. Property transfer will be disabled.");
70  			badTransfer.setDisabled(true);
71  		}
72  		return resolved;
73  	}
74  
75  }