1
2
3
4
5
6
7
8 package it.imolinfo.jbi4cics.test.jbi;
9
10 import it.imolinfo.jbi4cics.jbi.wsdl.Jbi4CicsAddress;
11 import it.imolinfo.jbi4cics.jbi.wsdl.Jbi4CicsBinding;
12 import it.imolinfo.jbi4cics.jbi.wsdl.Jbi4CicsExtension;
13
14 import java.io.File;
15 import java.io.FileWriter;
16 import java.io.StringWriter;
17
18 import javax.wsdl.Binding;
19 import javax.wsdl.BindingOperation;
20 import javax.wsdl.Definition;
21 import javax.wsdl.Operation;
22 import javax.wsdl.Port;
23 import javax.wsdl.PortType;
24 import javax.wsdl.Service;
25 import javax.wsdl.WSDLException;
26 import javax.wsdl.extensions.ExtensionRegistry;
27 import javax.wsdl.factory.WSDLFactory;
28 import javax.wsdl.xml.WSDLReader;
29 import javax.wsdl.xml.WSDLWriter;
30 import javax.xml.namespace.QName;
31
32 import junit.framework.TestCase;
33
34
35
36
37
38 public class WsdlProducerTest extends TestCase {
39
40
41 public static final String wsdlDir = "src/test/etc/wsdl";
42
43 public static final String rootPath = "target/test-wsdl-ext";
44
45 public static final String serviceUnitName = "testServiceUnit";
46
47 public WSDLFactory factory = null;
48
49 public WSDLReader reader = null;
50
51 public WSDLWriter writer = null;
52
53 public ExtensionRegistry registry;
54
55 String tns = "it.imolinfo.Jbi4Cics.test.webservice.generator";
56
57 public WsdlProducerTest() {}
58
59 public WsdlProducerTest(String name) {
60 super(name);
61 File dir = new File(rootPath);
62 dir.mkdir();
63 }
64
65
66 public void setUp() {
67 try {
68 factory = WSDLFactory.newInstance();
69 reader = factory.newWSDLReader();
70 writer = factory.newWSDLWriter();
71 registry = factory.newPopulatedExtensionRegistry();
72 WSDLReader reader = factory.newWSDLReader();
73 Jbi4CicsExtension.register(registry);
74 reader.setExtensionRegistry(registry);
75
76 } catch (WSDLException e) {
77
78 e.printStackTrace();
79 }
80 }
81
82 public void testWSDLSerializer() {
83
84 try {
85 Definition def = reader.readWSDL(wsdlDir,"EchoService.wsdl");
86
87
88 def.setExtensionRegistry(registry);
89
90
91 def.addNamespace("imolacics", Jbi4CicsExtension.NS_URI_JBI4CICS);
92
93
94 Service myService = def.createService();
95 myService.setQName(new QName(tns, "MyService"));
96 def.addService(myService);
97
98
99 Port myPort = def.createPort();
100 myPort.setName("myPort");
101 myService.addPort(myPort);
102
103
104 Jbi4CicsAddress log4jAddress = new Jbi4CicsAddress();
105 log4jAddress.setElementType(
106 Jbi4CicsExtension.Q_ELEM_JBI4CICS_ADDRESS);
107 log4jAddress.setUsername("imola");
108 log4jAddress.setPassword("imola");
109 log4jAddress.setConnectionType("CICS");
110 log4jAddress.setJNDIConnectionName("");
111 log4jAddress.setProgramName("imola");
112 log4jAddress.setTransactionName("imola");
113 log4jAddress.setTpn(new Boolean("false"));
114 myPort.addExtensibilityElement(log4jAddress);
115
116
117 PortType portType = def.getPortType(
118 new QName(tns,"EchoServicePortType"));
119 Binding myBinding = def.createBinding();
120 myBinding.setUndefined(false);
121 myBinding.setQName(new QName(tns, "MyBinding"));
122 myBinding.setPortType(portType);
123 myPort.setBinding(myBinding);
124 def.addBinding(myBinding);
125 BindingOperation myOp = def.createBindingOperation();
126 myOp.setName("myOp");
127
128 myOp.setOperation((Operation)portType.getOperations().get(0));
129 myBinding.addBindingOperation(myOp);
130
131
132 Jbi4CicsBinding log4jBinding = new Jbi4CicsBinding();
133 log4jBinding.setElementType(
134 Jbi4CicsExtension.Q_ELEM_JBI4CICS_BINDING);
135
136
137 log4jBinding.setServicePackageName(
138 "it.imolinfo.jbi4cics.test.nested");
139 log4jBinding.setCodePage("CP037");
140
141
142 String copyCobol =
143 "02 CA-RETCODE1 PIC XXXXX ." + "/n"
144 + "02 CA-RETCODE2 ." + "/n"
145 + "03 CA-RETCODE3 PIC XXXXX ." + "/n"
146 + "02 CA-RETCODE4 PIC XXXXX .";
147 log4jBinding.setCopyCobol(copyCobol);
148
149 myBinding.addExtensibilityElement(log4jBinding);
150
151 String wsdlFileName = rootPath + File.separator
152 + "TestWSDLwriter.wsdl";
153 File wsdlFile = new File(wsdlFileName);
154 FileWriter fileWriter = new FileWriter(wsdlFile);
155
156 writer.writeWSDL(def, fileWriter);
157
158
159 reader.setExtensionRegistry(registry);
160 Definition def2 = reader.readWSDL(rootPath,"TestWSDLwriter.wsdl");
161 StringWriter strWriter = new StringWriter();
162 writer.writeWSDL(def2, strWriter);
163 System.out.println(strWriter);
164
165
166
167
168 Binding extBinding = def2.getBinding(new QName(tns, "MyBinding"));
169 Jbi4CicsBinding readenJbi4CicsBinding =
170 (Jbi4CicsBinding) extBinding.getExtensibilityElements().get(0);
171 Service extService = def2.getService(new QName(tns, "MyService"));
172 Port extPort = (Port)extService.getPort("myPort");
173 Jbi4CicsAddress readenJbi4CicsAddress =
174 (Jbi4CicsAddress) extPort.getExtensibilityElements().get(0);
175
176
177 assertTrue("Cics binding assert failed",readenJbi4CicsBinding.equals(log4jBinding));
178 assertTrue("Cics address assert failed",readenJbi4CicsAddress.equals(log4jAddress));
179
180 } catch (Exception e) {
181
182 System.out.print(e.getMessage());
183 e.printStackTrace();
184 fail(e.getMessage());
185 }
186 }
187
188
189
190 }