1   /*******************************************************************************
2    *  Copyright (c) 2005, 2006 Imola Informatica.
3    *  All rights reserved. This program and the accompanying materials
4    *  are made available under the terms of the LGPL License v2.1
5    *  which accompanies this distribution, and is available at
6    *  http://www.gnu.org/licenses/lgpl.html
7    *******************************************************************************/
8   package it.imolinfo.jbi4cics.test.webservices.runtime;
9   
10  import it.imolinfo.jbi4cics.commareaparser.CommareaLexer;
11  import it.imolinfo.jbi4cics.commareaparser.CommareaParser;
12  import it.imolinfo.jbi4cics.jbi.BCELClassLoader;
13  import it.imolinfo.jbi4cics.messageformat.commarea.CommareaBeanMappingDescriptor;
14  import it.imolinfo.jbi4cics.test.BaseCommareaTest;
15  import it.imolinfo.jbi4cics.webservices.descriptor.ServiceDescriptor;
16  import it.imolinfo.jbi4cics.webservices.runtime.ServiceCreator;
17  import it.imolinfo.jbi4cics.webservices.utils.generators.ServiceBeanGenerator;
18  import it.imolinfo.jbi4cics.webservices.utils.generators.ServiceInterfaceGenerator;
19  
20  import java.io.FileInputStream;
21  import java.io.InputStream;
22  
23  import org.apache.commons.logging.Log;
24  import org.apache.commons.logging.LogFactory;
25  import org.codehaus.xfire.XFire;
26  import org.codehaus.xfire.XFireFactory;
27  import org.codehaus.xfire.service.Service;
28  
29  
30  public class OccursServiceCreatorTest extends BaseCommareaTest {
31    private static Log log = LogFactory.getLog(OccursServiceCreatorTest.class);
32  
33  
34    public OccursServiceCreatorTest(String arg) {
35      super(arg);
36    }
37    
38    public void testOccursServiceCreator() {
39      try {
40        // genero il mapping descriptor
41        InputStream is = new FileInputStream(testRootCommarea + "/" + "OccursCommarea.txt");
42        CommareaLexer lexer = new CommareaLexer(is);
43        CommareaParser parser = new CommareaParser(lexer);
44        CommareaBeanMappingDescriptor commareaBeanMappingDescriptor = parser.commarea_definition();
45        log.info("commareaBeanMappingDescriptor: " + commareaBeanMappingDescriptor);
46  
47        // creo il service desciptor
48        ServiceDescriptor serviceDescriptor = new ServiceDescriptor();
49  
50        serviceDescriptor.setOperationName("provaOperation");
51        serviceDescriptor.setServiceName("ProvaService");
52        serviceDescriptor.setServiceInterfacePackageName("it.imolinfo.jbi4cics.test.webservices.utils.generators");
53        serviceDescriptor.setServiceInterfaceName("ProvaServiceBeanInterface");
54        serviceDescriptor.setServiceNameSpace("urn:it.imolinfo.jbi4cics.test.webservices.utils.generators");
55        serviceDescriptor.setInputBeanClassName("ProvaServiceBean");
56        serviceDescriptor.setOutputBeanClassName("ProvaServiceBean");
57        serviceDescriptor.setInputMappingDescriptor(commareaBeanMappingDescriptor);
58        serviceDescriptor.setOutputMappingDescriptor(commareaBeanMappingDescriptor);
59  
60        // creo il service bean
61        BCELClassLoader bcelClassLoader = new BCELClassLoader(Thread.currentThread().getContextClassLoader());
62        ServiceBeanGenerator serviceBeanGenerator = new ServiceBeanGenerator(serviceDescriptor, true);
63        serviceBeanGenerator.generateBeanClass(bcelClassLoader);
64  
65        // creo la service interface
66        ServiceInterfaceGenerator serviceInterfaceGenerator = new ServiceInterfaceGenerator(serviceDescriptor);
67        serviceInterfaceGenerator.generateServiceInterface(bcelClassLoader);
68        XFire xfire = XFireFactory.newInstance().getXFire();
69        ServiceCreator serviceCreator = new ServiceCreator();
70        Service service = serviceCreator.createService(serviceDescriptor, xfire);
71        log.debug("servizio creato: " + service);
72  
73        // TODO fare degli assert ragionevoli
74  
75      } catch (Throwable e) {
76        log.error("errore in test testOccursServiceCreator", e);
77        fail(e.getMessage());
78      }
79    }
80    
81    public void testOccurs2ServiceCreator() {
82      try {
83        // genero il mapping descriptor
84        InputStream is = new FileInputStream(testRootCommarea + "/" + "OccursCommarea2.txt");
85        CommareaLexer lexer = new CommareaLexer(is);
86        CommareaParser parser = new CommareaParser(lexer);
87        CommareaBeanMappingDescriptor commareaBeanMappingDescriptor = parser.commarea_definition();
88        log.info("commareaBeanMappingDescriptor: " + commareaBeanMappingDescriptor);
89  
90        // creo il service desciptor
91        ServiceDescriptor serviceDescriptor = new ServiceDescriptor();
92  
93        serviceDescriptor.setOperationName("provaOperation");
94        serviceDescriptor.setServiceName("ProvaService");
95        serviceDescriptor.setServiceInterfacePackageName("it.imolinfo.jbi4cics.test.webservices.utils.generators");
96        serviceDescriptor.setServiceInterfaceName("ProvaServiceBeanInterface");
97        serviceDescriptor.setServiceNameSpace("urn:it.imolinfo.jbi4cics.test.webservices.utils.generators");
98        serviceDescriptor.setInputBeanClassName("ProvaServiceBean");
99        serviceDescriptor.setOutputBeanClassName("ProvaServiceBean");
100       serviceDescriptor.setInputMappingDescriptor(commareaBeanMappingDescriptor);
101       serviceDescriptor.setOutputMappingDescriptor(commareaBeanMappingDescriptor);
102 
103       // creo il service bean
104       BCELClassLoader bcelClassLoader = new BCELClassLoader(Thread.currentThread().getContextClassLoader());
105       ServiceBeanGenerator serviceBeanGenerator = new ServiceBeanGenerator(serviceDescriptor, true);
106       serviceBeanGenerator.generateBeanClass(bcelClassLoader);
107 
108       // creo la service interface
109       ServiceInterfaceGenerator serviceInterfaceGenerator = new ServiceInterfaceGenerator(serviceDescriptor);
110       serviceInterfaceGenerator.generateServiceInterface(bcelClassLoader);
111       XFire xfire = XFireFactory.newInstance().getXFire();
112       ServiceCreator serviceCreator = new ServiceCreator();
113       Service service = serviceCreator.createService(serviceDescriptor, xfire);
114       log.debug("servizio creato: " + service);
115 
116       // TODO fare degli assert ragionevoli
117 
118     } catch (Throwable e) {
119       log.error("errore in test testOccurs2ServiceCreator", e);
120       fail(e.getMessage());
121     }
122   }  
123   
124   public void testOccurs3ServiceCreator() {
125     try {
126       // genero il mapping descriptor
127       InputStream is = new FileInputStream(testRootCommarea + "/" + "OccursCommarea3.txt");
128       CommareaLexer lexer = new CommareaLexer(is);
129       CommareaParser parser = new CommareaParser(lexer);
130       CommareaBeanMappingDescriptor commareaBeanMappingDescriptor = parser.commarea_definition();
131       log.info("commareaBeanMappingDescriptor: " + commareaBeanMappingDescriptor);
132 
133       // creo il service desciptor
134       ServiceDescriptor serviceDescriptor = new ServiceDescriptor();
135 
136       serviceDescriptor.setOperationName("provaOperation");
137       serviceDescriptor.setServiceName("ProvaService");
138       serviceDescriptor.setServiceInterfacePackageName("it.imolinfo.jbi4cics.test.webservices.utils.generators");
139       serviceDescriptor.setServiceInterfaceName("ProvaServiceBeanInterface");
140       serviceDescriptor.setServiceNameSpace("urn:it.imolinfo.jbi4cics.test.webservices.utils.generators");
141       serviceDescriptor.setInputBeanClassName("ProvaServiceBean");
142       serviceDescriptor.setOutputBeanClassName("ProvaServiceBean");
143       serviceDescriptor.setInputMappingDescriptor(commareaBeanMappingDescriptor);
144       serviceDescriptor.setOutputMappingDescriptor(commareaBeanMappingDescriptor);
145 
146       // creo il service bean
147       BCELClassLoader bcelClassLoader = new BCELClassLoader(Thread.currentThread().getContextClassLoader());
148       ServiceBeanGenerator serviceBeanGenerator = new ServiceBeanGenerator(serviceDescriptor, true);
149       serviceBeanGenerator.generateBeanClass(bcelClassLoader);
150 
151       // creo la service interface
152       ServiceInterfaceGenerator serviceInterfaceGenerator = new ServiceInterfaceGenerator(serviceDescriptor);
153       serviceInterfaceGenerator.generateServiceInterface(bcelClassLoader);
154       XFire xfire = XFireFactory.newInstance().getXFire();
155       ServiceCreator serviceCreator = new ServiceCreator();
156       Service service = serviceCreator.createService(serviceDescriptor, xfire);
157       log.debug("servizio creato: " + service);
158 
159       // TODO fare degli assert ragionevoli
160 
161     } catch (Throwable e) {
162       log.error("errore in test testOccurs2ServiceCreator", e);
163       fail(e.getMessage());
164     }
165   }  
166 
167 }