1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.teststeps;
14
15 import junit.framework.TestCase;
16
17 import com.eviware.soapui.config.ValueTransferConfig;
18 import com.eviware.soapui.impl.wsdl.WsdlSubmitContext;
19 import com.eviware.soapui.model.support.DefaultTestStepProperty;
20
21 public class PropertyTransferTestCase extends TestCase
22 {
23 private PropertyTransfer transfer;
24 private DefaultTestStepProperty sourceProperty;
25 private DefaultTestStepProperty targetProperty;
26
27 protected void setUp() throws Exception
28 {
29 super.setUp();
30
31 transfer = new PropertyTransfer( null, ValueTransferConfig.Factory.newInstance() );
32 sourceProperty = new DefaultTestStepProperty( "source", null );
33 targetProperty = new DefaultTestStepProperty( "target", null );
34 }
35
36 public void testStringToStringTransfer() throws Exception
37 {
38 PropertyTransfer transfer = new PropertyTransfer( null, ValueTransferConfig.Factory.newInstance() );
39 DefaultTestStepProperty sourceProperty = new DefaultTestStepProperty( "source", null );
40 sourceProperty.setValue( "Test" );
41
42 DefaultTestStepProperty targetProperty = new DefaultTestStepProperty( "target", null );
43 transfer.transferStringToString( sourceProperty, targetProperty );
44
45 assertEquals( sourceProperty.getValue(), targetProperty.getValue() );
46 }
47
48 public void testStringToXmlTransfer() throws Exception
49 {
50 sourceProperty.setValue( "audi" );
51 targetProperty.setValue( "<bil><name>bmw</name></bil>" );
52
53 transfer.setTargetPath( "//name/text()" );
54
55 transfer.transferStringToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
56 assertEquals("<bil><name>audi</name></bil>", targetProperty.getValue() );
57
58 targetProperty.setValue( "<bil><name test=\"test\">bmw</name></bil>" );
59 transfer.transferStringToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
60
61 assertEquals( "<bil><name test=\"test\">audi</name></bil>", targetProperty.getValue() );
62
63 transfer.setTargetPath( "//name/@test" );
64
65 transfer.transferStringToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
66 assertEquals( "<bil><name test=\"audi\">audi</name></bil>", targetProperty.getValue() );
67 }
68
69 public void testXmlToStringTransfer() throws Exception
70 {
71 sourceProperty.setValue( "<bil><name>audi</name></bil>" );
72 targetProperty.setValue( "" );
73
74 transfer.setSourcePath( "//name/text()" );
75
76 transfer.transferXPathToString( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
77 assertEquals("audi", targetProperty.getValue() );
78 }
79
80 public void testXmlToStringNullTransfer() throws Exception
81 {
82 sourceProperty.setValue( "<bil></bil>" );
83 targetProperty.setValue( "" );
84
85 transfer.setSourcePath( "//name/text()" );
86
87 transfer.transferXPathToString( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
88 assertEquals( null, targetProperty.getValue() );
89 }
90
91 public void testTextXmlToXmlTransfer() throws Exception
92 {
93 sourceProperty.setValue( "<bil><name>audi</name></bil>" );
94 targetProperty.setValue( "<bil><name>bmw</name></bil>" );
95
96 transfer.setSourcePath( "//name/text()" );
97 transfer.setTargetPath( "//name/text()" );
98
99 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
100 assertEquals( sourceProperty.getValue(), targetProperty.getValue() );
101
102 targetProperty.setValue( "<bil><name test=\"test\">bmw</name></bil>" );
103 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
104
105 assertEquals( "<bil><name test=\"test\">audi</name></bil>", targetProperty.getValue() );
106 }
107
108 public void testTextContentXmlToXmlTransfer() throws Exception
109 {
110 sourceProperty.setValue( "<bil><name>audi</name></bil>" );
111 targetProperty.setValue( "<bil><name2>bmw</name2></bil>" );
112
113 transfer.setTransferTextContent( true );
114 transfer.setSourcePath( "//name" );
115 transfer.setTargetPath( "//name2" );
116
117 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
118
119 assertEquals( "<bil><name2>audi</name2></bil>", targetProperty.getValue() );
120 }
121
122 public void testTextXmlToXmlNullTransfer() throws Exception
123 {
124 sourceProperty.setValue( "<bil><name/></bil>" );
125 targetProperty.setValue( "<bil><name>bmw</name></bil>" );
126
127 transfer.setSourcePath( "//name/text()" );
128 transfer.setTargetPath( "//name/text()" );
129
130 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
131
132 assertEquals( "<bil><name/></bil>", targetProperty.getValue() );
133 }
134
135 public void testAttributeXmlToXmlTransfer() throws Exception
136 {
137 sourceProperty.setValue( "<bil><name value=\"fiat\" value2=\"volvo\">alfa</name></bil>" );
138 targetProperty.setValue( "<bil><name test=\"test\">bmw</name></bil>" );
139
140 transfer.setSourcePath( "//name/@value" );
141 transfer.setTargetPath( "//name/text()" );
142
143 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
144
145 assertEquals( "<bil><name test=\"test\">fiat</name></bil>", targetProperty.getValue() );
146
147 transfer.setSourcePath( "//name/text()" );
148 transfer.setTargetPath( "//name/@test" );
149
150 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
151
152 assertEquals( "<bil><name test=\"alfa\">fiat</name></bil>", targetProperty.getValue() );
153
154 transfer.setSourcePath( "//name/@value2" );
155 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
156 assertEquals( "<bil><name test=\"volvo\">fiat</name></bil>", targetProperty.getValue() );
157 }
158
159
160 public void testElementXmlToXmlTransfer() throws Exception
161 {
162 sourceProperty.setValue( "<bil><name>audi</name></bil>" );
163 targetProperty.setValue( "<bil><test/></bil>" );
164
165 transfer.setSourcePath( "//bil" );
166 transfer.setTargetPath( "//bil" );
167
168 transfer.setTransferTextContent( false );
169 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
170 assertEquals( sourceProperty.getValue(), targetProperty.getValue() );
171
172 targetProperty.setValue( "<bil><name></name></bil>" );
173
174 transfer.setSourcePath( "//bil/name/text()" );
175 transfer.setTargetPath( "//bil/name" );
176
177 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
178 assertEquals( sourceProperty.getValue(), targetProperty.getValue() );
179 }
180
181 public void testElementWithNsXmlToXmlTransfer() throws Exception
182 {
183 sourceProperty.setValue( "<ns1:bil xmlns:ns1=\"ns1\"><ns1:name>audi</ns1:name></ns1:bil>" );
184 targetProperty.setValue( "<bil><name/></bil>" );
185
186 transfer.setTransferTextContent( false );
187 transfer.setSourcePath( "declare namespace ns='ns1';//ns:bil/ns:name" );
188 transfer.setTargetPath( "//bil/name" );
189
190 transfer.transferXPathToXml( sourceProperty, targetProperty, new WsdlSubmitContext( null ) );
191 assertEquals( "<bil xmlns:ns1=\"ns1\"><ns1:name>audi</ns1:name></bil>", targetProperty.getValue() );
192 }
193
194 }