This project has retired. For details please refer to its Attic page.
UDDI_130_CombineCategoryBagsFindBusinessIntegrationTest xref
View Javadoc
1   package org.apache.juddi.v3.tck;
2   
3   /*
4    * Copyright 2001-2009 The Apache Software Foundation.
5    * 
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  import java.util.List;
19  import javax.xml.ws.BindingProvider;
20  
21  import org.apache.commons.configuration.ConfigurationException;
22  import org.apache.commons.logging.Log;
23  import org.apache.commons.logging.LogFactory;
24  import org.apache.juddi.v3.client.config.UDDIClient;
25  import org.apache.juddi.v3.client.transport.Transport;
26  import org.junit.AfterClass;
27  import org.junit.Assert;
28  import org.junit.Assume;
29  import org.junit.BeforeClass;
30  import org.junit.Test;
31  import org.uddi.api_v3.BusinessInfo;
32  import org.uddi.api_v3.BusinessList;
33  import org.uddi.api_v3.CategoryBag;
34  import org.uddi.api_v3.FindBusiness;
35  import org.uddi.api_v3.FindQualifiers;
36  import org.uddi.api_v3.KeyedReference;
37  import org.uddi.v3_service.UDDIInquiryPortType;
38  import org.uddi.v3_service.UDDIPublicationPortType;
39  import org.uddi.v3_service.UDDISecurityPortType;
40  
41  /**
42   * Test to verify JUDDI-456, does a findBusiness query with combineCategoryBags findQualifier.
43   * 
44   * Expected result is one returned businessEntity with a businessKey of uddi:uddi.tompublisher.com:businesstest04
45   * 
46   * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
47   * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
48   */
49  public class UDDI_130_CombineCategoryBagsFindBusinessIntegrationTest 
50  {
51  	final static String TOM_PUBLISHER_TMODEL_XML      = "uddi_data/tompublisher/tModelKeyGen.xml";
52  	final static String TOM_PUBLISHER_TMODEL01_XML 	  = "uddi_data/tompublisher/tModel01.xml";
53  	final static String TOM_PUBLISHER_TMODEL02_XML 	  = "uddi_data/tompublisher/tModel02.xml";
54  
55  	final static String TOM_PUBLISHER_TMODEL_KEY      = "uddi:uddi.tompublisher.com:keygenerator";
56  	final static String TOM_PUBLISHER_TMODEL01_KEY      = "uddi:uddi.tompublisher.com:tmodeltest01";
57  	final static String TOM_PUBLISHER_TMODEL01_NAME 	= "tmodeltest01";
58  	final static String TOM_PUBLISHER_TMODEL02_KEY      = "uddi:uddi.tompublisher.com:tmodeltest02";
59  
60  	final static String TOM_BUSINESS1_XML       = "uddi_data/tompublisher/juddi456-business3.xml";
61  	final static String TOM_BUSINESS2_XML       = "uddi_data/tompublisher/juddi456-business4.xml";
62  	final static String TOM_BUSINESS545_XML       = "uddi_data/tompublisher/juddi545-business.xml";
63  
64  	final static String TOM_BUSINESS1_KEY        = "uddi:uddi.tompublisher.com:businesstest03";
65  	final static String TOM_BUSINESS2_KEY        = "uddi:uddi.tompublisher.com:businesstest04";
66  	final static String TOM_BUSINESS545_KEY        = "uddi:uddi.tompublisher.com:businesstest545";
67  
68  	final static String BUSINESS_KEY    = "uddi:uddi.tompublisher.com:businesstest04";
69  	final static String BUSINESS_KEY545 = "uddi:uddi.tompublisher.com:businesstest545";
70  
71  	private static Log logger = LogFactory.getLog(UDDI_040_BusinessServiceIntegrationTest.class);
72  
73  	protected static TckTModel tckTModel               = null;
74  	protected static TckBusiness tckBusiness           = null;
75  	
76  	protected static String authInfoJoe                = null;
77  
78  	private static UDDIInquiryPortType inquiry = null;
79  	private static UDDIClient manager;
80  
81  	@AfterClass
82  	public static void stopManager() throws ConfigurationException {
83            if (!TckPublisher.isEnabled()) return;
84                  tckTModel.deleteCreatedTModels(authInfoJoe);
85  		manager.stop();
86  	}
87  
88  	@BeforeClass
89  	public static void startManager() throws ConfigurationException {
90            if (!TckPublisher.isEnabled()) return;
91  		manager  = new UDDIClient();
92  		manager.start();
93  
94  		logger.debug("Getting auth tokens..");
95  		try {
96  			Transport transport = manager.getTransport("uddiv3");
97  			UDDISecurityPortType security = transport.getUDDISecurityService();
98  			authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
99  			//Assert.assertNotNull(authInfoJoe);
100                         
101 			UDDIPublicationPortType publication = transport.getUDDIPublishService();
102 			inquiry = transport.getUDDIInquiryService();
103                         
104                         if (!TckPublisher.isUDDIAuthMode()){
105                                 TckSecurity.setCredentials((BindingProvider) publication, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
106                                 TckSecurity.setCredentials((BindingProvider) inquiry, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
107                         }
108 
109 			tckTModel   = new TckTModel(publication, inquiry);
110 			tckBusiness = new TckBusiness(publication, inquiry);
111 		} catch (Exception e) {
112 			logger.error(e.getMessage(), e);
113 			Assert.fail("Could not obtain authInfo token.");
114 		} 
115                 JUDDI_300_MultiNodeIntegrationTest.testSetupReplicationConfig();
116 	}
117 
118 	@Test
119 	public void findBusiness() {
120           Assume.assumeTrue(TckPublisher.isEnabled());
121 		try {
122 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
123 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
124 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
125 
126 			tckBusiness.saveBusiness(authInfoJoe, TOM_BUSINESS1_XML, TOM_BUSINESS1_KEY);
127 			tckBusiness.saveBusiness(authInfoJoe, TOM_BUSINESS2_XML, TOM_BUSINESS2_KEY);
128 			try {
129 				int size = 0;
130 				BusinessList bl = null;
131 
132 				FindBusiness fb = new FindBusiness();
133 				FindQualifiers fqs = new FindQualifiers();
134 				fqs.getFindQualifier().add("combineCategoryBags");
135 				fb.setFindQualifiers(fqs);
136 
137 				KeyedReference keyRef1 = new KeyedReference();
138 				keyRef1.setTModelKey(TOM_PUBLISHER_TMODEL01_KEY);
139 				keyRef1.setKeyValue("value-z");
140 
141 				KeyedReference keyRef2 = new KeyedReference();
142 				keyRef2.setTModelKey(TOM_PUBLISHER_TMODEL02_KEY);
143 				keyRef2.setKeyValue("value-x");
144 
145 				CategoryBag cb = new CategoryBag();
146 				cb.getKeyedReference().add(keyRef1);
147 				cb.getKeyedReference().add(keyRef2);
148 				fb.setCategoryBag(cb);
149 
150 				bl = inquiry.findBusiness(fb);
151 				if (bl.getBusinessInfos() == null) {
152 					Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
153 							+ "found " + size);
154 				}
155 				size = bl.getBusinessInfos().getBusinessInfo().size();
156 				if (size != 1) {
157 					Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
158 							+ "found " + size);
159 				} else {
160 					List<BusinessInfo> biList = bl.getBusinessInfos().getBusinessInfo();
161 					String businessKey = biList.get(0).getBusinessKey();
162 					if (!BUSINESS_KEY.equals(businessKey)) {
163 						Assert.fail("Should have found business key " + BUSINESS_KEY
164 								+ " but found [" + businessKey + "]");
165 					}
166 				}
167 			} catch (Exception e) {
168 				e.printStackTrace();
169 				Assert.fail(e.getMessage());
170 			}
171 		} finally {
172 			tckBusiness.deleteBusiness(authInfoJoe, TOM_BUSINESS1_XML, TOM_BUSINESS1_KEY);
173 			tckBusiness.deleteBusiness(authInfoJoe, TOM_BUSINESS2_XML, TOM_BUSINESS2_KEY);
174 
175 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
176 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
177 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
178 
179 		}
180 	}
181 	
182 	@Test
183 	public void findBusinessJUDDI545() {
184           Assume.assumeTrue(TckPublisher.isEnabled());
185 		try {
186 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
187 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
188 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
189 
190 			tckBusiness.saveBusiness(authInfoJoe, TOM_BUSINESS545_XML, TOM_BUSINESS545_KEY);
191 			
192 			try {
193 				int size = 0;
194 				BusinessList bl = null;
195 
196 				FindBusiness fb = new FindBusiness();
197 				FindQualifiers fqs = new FindQualifiers();
198 				fqs.getFindQualifier().add("combineCategoryBags");
199 				fb.setFindQualifiers(fqs);
200 
201 				KeyedReference keyRef1 = new KeyedReference();
202 				keyRef1.setTModelKey(TOM_PUBLISHER_TMODEL01_KEY);
203 				keyRef1.setKeyValue("value-z");
204 
205 				KeyedReference keyRef2 = new KeyedReference();
206 				keyRef2.setTModelKey(TOM_PUBLISHER_TMODEL02_KEY);
207 				keyRef2.setKeyValue("value-x");
208 				
209 				KeyedReference keyRef3 = new KeyedReference();
210 				keyRef3.setTModelKey(TOM_PUBLISHER_TMODEL01_KEY);
211 				keyRef3.setKeyValue("value-y");
212 
213 				CategoryBag cb = new CategoryBag();
214 				cb.getKeyedReference().add(keyRef1);
215 				cb.getKeyedReference().add(keyRef2);
216 				cb.getKeyedReference().add(keyRef3);
217 				fb.setCategoryBag(cb);
218 
219 				bl = inquiry.findBusiness(fb);
220 				if (bl.getBusinessInfos() == null) {
221 					Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
222 							+ "found " + size);
223 				}
224 				size = bl.getBusinessInfos().getBusinessInfo().size();
225 				if (size != 1) {
226 					Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
227 							+ "found " + size);
228 				} else {
229 					List<BusinessInfo> biList = bl.getBusinessInfos().getBusinessInfo();
230 					String businessKey = biList.get(0).getBusinessKey();
231 					if (!BUSINESS_KEY545.equals(businessKey)) {
232 						Assert.fail("Should have found business key " + BUSINESS_KEY545
233 								+ " but found [" + businessKey + "]");
234 					}
235 				}
236 			} catch (Exception e) {
237 				e.printStackTrace();
238 				Assert.fail(e.getMessage());
239 			}
240 		} finally {
241 			tckBusiness.deleteBusiness(authInfoJoe, TOM_BUSINESS545_XML, TOM_BUSINESS545_KEY);
242 
243 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
244 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
245 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
246 
247 		}
248 	}	
249 }