This project has retired. For details please refer to its Attic page.
TckBusinessService xref
View Javadoc
1   /*
2    * Copyright 2001-2009 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *      http://www.apache.org/licenses/LICENSE-2.0
8    * 
9    * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  package org.apache.juddi.v3.tck;
16  
17  import static junit.framework.Assert.assertEquals;
18  
19  import java.util.List;
20  
21  import org.apache.commons.logging.Log;
22  import org.apache.commons.logging.LogFactory;
23  import org.apache.juddi.jaxb.EntityCreator;
24  import org.junit.Assert;
25  import org.uddi.api_v3.BindingTemplate;
26  import org.uddi.api_v3.BusinessService;
27  import org.uddi.api_v3.DeleteService;
28  import org.uddi.api_v3.GetServiceDetail;
29  import org.uddi.api_v3.SaveService;
30  import org.uddi.api_v3.ServiceDetail;
31  import org.uddi.v3_service.UDDIInquiryPortType;
32  import org.uddi.v3_service.UDDIPublicationPortType;
33  /**
34   * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
35   * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
36   */
37  public class TckBusinessService 
38  {
39  	
40      public final static String NOTIFIER_SERVICE_XML = "uddi_data/subscriptionnotifier/businessService.xml";
41      public final static String NOTIFIER_SERVICE_KEY = "uddi:uddi.joepublisher.com:notifierone";
42      public final static String JOE_SERVICE_XML = "uddi_data/joepublisher/businessService.xml";
43      public final static String JOE_SERVICE_KEY = "uddi:uddi.joepublisher.com:serviceone";
44      public final static String JOE_SERVICE_XML_2 = "uddi_data/joepublisher/businessService2.xml";
45      public final static String JOE_SERVICE_KEY_2 = "uddi:uddi.joepublisher.com:servicetwo";
46      public final static String SAM_SERVICE_XML = "uddi_data/samsyndicator/businessService.xml";
47      public final static String SAM_SERVICE_KEY = "uddi:www.samco.com:listingservice";
48      public final static String SAM_SERVICE_BINDING_KEY="uddi:www.samco.com:listservice-accesspoint";
49      public final static String RIFTSAW_PROCESS_XML = "uddi_data/bpel/riftsaw/WSDLPort.xml";
50      public final static String RIFTSAW_PROCESS_KEY = "uddi:riftsaw.jboss.org:ticket-service";
51      public final static String JOE_BINDING_KEY_1="uddi:uddi.joepublisher.com:bindingone";
52      private Log logger = LogFactory.getLog(this.getClass());
53      private UDDIPublicationPortType publication = null;
54      private UDDIInquiryPortType inquiry = null;
55  	
56  	public TckBusinessService(UDDIPublicationPortType publication, 
57  				  UDDIInquiryPortType inquiry) {
58  		super();
59  		this.publication = publication;
60  		this.inquiry = inquiry;
61  	}
62  
63  	public String saveJoePublisherService(String authInfoJoe) {
64  		return saveService(authInfoJoe, JOE_SERVICE_XML, JOE_SERVICE_KEY);
65  	}
66  	
67  	public void updateJoePublisherService(String authInfoJoe, String description) {
68  		saveService(authInfoJoe, JOE_SERVICE_XML, JOE_SERVICE_KEY, description);
69  	}
70  	
71  	public void saveJoePublisherService2(String authInfoJoe) {
72  		saveService2(authInfoJoe, JOE_SERVICE_KEY, JOE_SERVICE_XML_2, JOE_SERVICE_KEY_2);
73  	}
74  
75  	public void saveJoePublisherServices(String authInfoJoe, int businessInt, int numberOfCopies) {
76  		saveServices(authInfoJoe, businessInt, JOE_SERVICE_XML, JOE_SERVICE_KEY, numberOfCopies, TckBusiness.JOE_BUSINESS_KEY);
77  	}
78  	
79  	public void deleteJoePublisherService(String authInfoJoe) {
80  		deleteService(authInfoJoe, JOE_SERVICE_KEY);
81  	}
82  	
83  	public void deleteJoePublisherService2(String authInfoJoe) {
84  		deleteService(authInfoJoe, JOE_SERVICE_KEY_2);
85  	}
86  
87  	public void saveNotifierService(String authInfoJoe) {
88  		saveService(authInfoJoe, NOTIFIER_SERVICE_XML, NOTIFIER_SERVICE_KEY);
89  	}
90  	
91  	public void deleteNotifierService(String authInfoJoe) {
92  		deleteService(authInfoJoe, NOTIFIER_SERVICE_KEY);
93  	}
94  
95  	
96  	public void deleteJoePublisherServices(String authInfoJoe, int businessInt, int numberOfCopies) {
97  		deleteServices(authInfoJoe, businessInt,JOE_SERVICE_KEY, numberOfCopies);
98  	}
99  	
100 	public void saveSamSyndicatorService(String authInfoSam) {
101 		saveService(authInfoSam, SAM_SERVICE_XML, SAM_SERVICE_KEY);
102 	}
103 	
104 	public void saveSamSyndicatorServices(String authInfoSam, int businessInt, int numberOfCopies) {
105 		saveServices(authInfoSam, businessInt, SAM_SERVICE_XML, SAM_SERVICE_KEY, numberOfCopies, TckBusiness.SAM_BUSINESS_KEY);
106 	}
107 	
108 	public void deleteSamSyndicatorService(String authInfoSam) {
109 		deleteService(authInfoSam, SAM_SERVICE_KEY);
110 	}
111 	
112 	public void deleteSamSyndicatorServices(String authInfoSam, int businessInt, int numberOfCopies) {
113 		deleteServices(authInfoSam, businessInt, SAM_SERVICE_KEY, numberOfCopies);
114 	}
115 	
116 	public void saveServices(String authInfo, int businessInt, String serviceXML, String serviceKey, int numberOfCopies, String parentBusinessKey) {
117 		SaveService ss = null;
118 		try {
119 			org.uddi.api_v3.BusinessService bsIn = (org.uddi.api_v3.BusinessService)EntityCreator.buildFromDoc(serviceXML, "org.uddi.api_v3");
120 			String serviceName = bsIn.getName().get(0).getValue();
121 			String bindingKey = bsIn.getBindingTemplates().getBindingTemplate().get(0).getBindingKey();
122 			for (int i=0; i<numberOfCopies; i++) {
123 			    // save the entity
124 				ss = new SaveService();
125 				ss.setAuthInfo(authInfo);
126 				bsIn.getName().get(0).setValue(serviceName + "-" + i);
127 				bsIn.setBusinessKey(parentBusinessKey +"-" + businessInt);
128 				bsIn.setServiceKey(serviceKey + "-" + businessInt + "-" + i);
129 				bsIn.getBindingTemplates().getBindingTemplate().get(0).setBindingKey(bindingKey + "-" + businessInt + "-" + i);
130 				bsIn.getBindingTemplates().getBindingTemplate().get(0).setServiceKey(serviceKey + "-" + businessInt + "-" + i);
131 				ss.getBusinessService().add(bsIn);
132 				
133 				BindingTemplate bt = bsIn.getBindingTemplates().getBindingTemplate().get(0);
134 				if (! bt.getServiceKey().equals(serviceKey + "-" + businessInt + "-" + i)) {
135 					System.out.println("not the same");
136 				}
137 				
138 				publication.saveService(ss);
139 				logger.info("Add service with key " + bsIn.getServiceKey());
140 			}
141 		}
142 		catch(Exception e) {
143 			logger.error(e.getMessage(), e);
144 			Assert.fail("No exception should be thrown.");
145 		}
146 	}
147 	
148 	public String saveService(String authInfo, String serviceXML, String serviceKey) {
149 		return saveService(authInfo, serviceXML, serviceKey, null);
150 	}
151 	
152 	public String saveService(String authInfo, String serviceXML, String serviceKey, String description) {
153 		try {
154                         logger.info("saving service key " + serviceKey + " from " + serviceXML);
155 			// First save the entity
156 			SaveService ss = new SaveService();
157 			ss.setAuthInfo(authInfo);
158 			
159 			org.uddi.api_v3.BusinessService bsIn = (org.uddi.api_v3.BusinessService)EntityCreator.buildFromDoc(serviceXML, "org.uddi.api_v3");
160 			
161 			if (description!=null) bsIn.getDescription().get(0).setValue("updated description");
162 		    ss.getBusinessService().add(bsIn);
163 			publication.saveService(ss);
164 			
165 			// Now get the entity and check the values
166 			GetServiceDetail gs = new GetServiceDetail();
167 			gs.getServiceKey().add(serviceKey);
168 			ServiceDetail sd = inquiry.getServiceDetail(gs);
169 			List<BusinessService> bsOutList = sd.getBusinessService();
170 			BusinessService bsOut = bsOutList.get(0);
171 
172 			assertEquals(bsIn.getServiceKey().toLowerCase(), bsOut.getServiceKey());
173 			
174 			TckValidator.checkNames(bsIn.getName(), bsOut.getName());
175 			TckValidator.checkDescriptions(bsIn.getDescription(), bsOut.getDescription());
176 			TckValidator.checkBindingTemplates(bsIn.getBindingTemplates(), bsOut.getBindingTemplates());
177 			TckValidator.checkCategories(bsIn.getCategoryBag(), bsOut.getCategoryBag());
178                         if (bsOut.getBindingTemplates()!=null && !bsOut.getBindingTemplates().getBindingTemplate().isEmpty())
179                             return bsOut.getBindingTemplates().getBindingTemplate().get(0).getBindingKey();
180 		}
181 		catch(Exception e) {
182 			logger.error(e.getMessage(), e);
183 			Assert.fail("No exception should be thrown.");
184 		}
185 		return null;
186 	}
187 	
188 	public void saveService2(String authInfo, String serviceKey, String serviceXML2,  String serviceKey2) {
189 		try {
190 			// First save the entity
191 			SaveService ss = new SaveService();
192 			ss.setAuthInfo(authInfo);
193 			
194 			org.uddi.api_v3.BusinessService bsIn = (org.uddi.api_v3.BusinessService)EntityCreator.buildFromDoc(serviceXML2, "org.uddi.api_v3");
195 			ss.getBusinessService().add(bsIn);
196 			publication.saveService(ss);
197 			
198 			// Now get the entity and check the values
199 			GetServiceDetail gs = new GetServiceDetail();
200 			gs.getServiceKey().add(serviceKey);
201 			gs.getServiceKey().add(serviceKey2);
202 			ServiceDetail sd = inquiry.getServiceDetail(gs);
203 			List<BusinessService> bsOutList = sd.getBusinessService();
204 			int size = bsOutList.size();
205 
206 			assertEquals(2, size);
207 			
208 			
209 		}
210 		catch(Exception e) {
211 			logger.error(e.getMessage(), e);
212 			Assert.fail("No exception should be thrown.");
213 		}
214 		
215 	}
216 	
217 	public void deleteService(String authInfo, String serviceKey) {
218 		try {
219 			// Delete the entity and make sure it is removed
220 			DeleteService ds = new DeleteService();
221 			ds.setAuthInfo(authInfo);
222 			
223 			ds.getServiceKey().add(serviceKey);
224 			publication.deleteService(ds);
225 		}
226 		catch(Exception e) {
227 			logger.error(e.getMessage(), e);
228 			Assert.fail("No exception should be thrown.");
229 		}
230 	}
231 	
232 	public void deleteServices(String authInfo, int businessInt, String serviceKey, int numberOfCopies) {
233 		try {
234 			for (int i=0; i<numberOfCopies; i++) {
235 				// Delete the entity and make sure it is removed
236 				DeleteService ds = new DeleteService();
237 				ds.setAuthInfo(authInfo);
238 				ds.getServiceKey().add(serviceKey + "-" + businessInt + "-" + i);
239 				publication.deleteService(ds);
240 				logger.debug("Deleted Service with key " + businessInt + "-" + serviceKey + "-" + i);
241 			}
242 		}
243 		catch(Exception e) {
244 			logger.error(e.getMessage(), e);
245 			Assert.fail("No exception should be thrown.");
246 		}
247 	}
248 
249 }