This project has retired. For details please refer to its Attic page.
API_130_CombineCategoryBagsFindBusinessTest xref
View Javadoc
1   package org.apache.juddi.api.impl;
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  
20  import org.apache.commons.configuration.ConfigurationException;
21  import org.apache.commons.logging.Log;
22  import org.apache.commons.logging.LogFactory;
23  import org.apache.juddi.Registry;
24  import org.apache.juddi.v3.tck.TckBusiness;
25  import org.apache.juddi.v3.tck.TckPublisher;
26  import org.apache.juddi.v3.tck.TckSecurity;
27  import org.apache.juddi.v3.tck.TckTModel;
28  import org.junit.AfterClass;
29  import org.junit.Assert;
30  import org.junit.BeforeClass;
31  import org.junit.Test;
32  import org.uddi.api_v3.BusinessInfo;
33  import org.uddi.api_v3.BusinessList;
34  import org.uddi.api_v3.CategoryBag;
35  import org.uddi.api_v3.FindBusiness;
36  import org.uddi.api_v3.FindQualifiers;
37  import org.uddi.api_v3.KeyedReference;
38  import org.uddi.v3_service.UDDISecurityPortType;
39  
40  /**
41   * Test to verify JUDDI-456, does a findBusiness query with combineCategoryBags findQualifier.
42   * 
43   * Expected result is one returned businessEntity with a businessKey of uddi:uddi.tompublisher.com:businesstest04
44   * 
45   * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
46   */
47  public class API_130_CombineCategoryBagsFindBusinessTest 
48  {
49  	final static String TOM_PUBLISHER_TMODEL_XML      = "uddi_data/tompublisher/tModelKeyGen.xml";
50  	final static String TOM_PUBLISHER_TMODEL01_XML 	  = "uddi_data/tompublisher/tModel01.xml";
51  	final static String TOM_PUBLISHER_TMODEL02_XML 	  = "uddi_data/tompublisher/tModel02.xml";
52  
53  	final static String TOM_PUBLISHER_TMODEL_KEY      = "uddi:uddi.tompublisher.com:keygenerator";
54  	final static String TOM_PUBLISHER_TMODEL01_KEY      = "uddi:uddi.tompublisher.com:tmodeltest01";
55  	final static String TOM_PUBLISHER_TMODEL01_NAME 	= "tmodeltest01";
56  	final static String TOM_PUBLISHER_TMODEL02_KEY      = "uddi:uddi.tompublisher.com:tmodeltest02";
57  
58  	final static String TOM_BUSINESS1_XML       = "uddi_data/tompublisher/juddi456-business3.xml";
59  	final static String TOM_BUSINESS2_XML       = "uddi_data/tompublisher/juddi456-business4.xml";
60  	final static String TOM_BUSINESS545_XML       = "uddi_data/tompublisher/juddi545-business.xml";
61  
62  	final static String TOM_BUSINESS1_KEY        = "uddi:uddi.tompublisher.com:businesstest03";
63  	final static String TOM_BUSINESS2_KEY        = "uddi:uddi.tompublisher.com:businesstest04";
64  	final static String TOM_BUSINESS545_KEY        = "uddi:uddi.tompublisher.com:businesstest545";
65  
66  	final static String BUSINESS_KEY    = "uddi:uddi.tompublisher.com:businesstest04";
67  	final static String BUSINESS_KEY545 = "uddi:uddi.tompublisher.com:businesstest545";
68  
69  	private static Log logger = LogFactory.getLog(API_130_CombineCategoryBagsFindBusinessTest.class);
70  
71  	private static API_010_PublisherTest api010       = new API_010_PublisherTest();
72      private static TckTModel tckTModel                = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
73      private static TckBusiness tckBusiness      = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
74      private static UDDIInquiryImpl inquiry             = new UDDIInquiryImpl();
75      
76  	protected static String authInfoJoe                = null;
77  
78  	@AfterClass
79  	public static void stopManager() throws ConfigurationException {
80  		Registry.stop();
81  	}
82  	
83  	@BeforeClass
84  	public static void startManager() throws ConfigurationException {
85  		Registry.start();
86  		
87  		logger.debug("Getting auth tokens..");
88  		try {
89  			api010.saveJoePublisher();
90  			api010.saveSamSyndicator();
91  			UDDISecurityPortType security      = new UDDISecurityImpl();
92          	 authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
93          	 Assert.assertNotNull(authInfoJoe);
94      
95  	     } catch (Exception e) {
96  	    	 logger.error(e.getMessage(), e);
97  				Assert.fail("Could not obtain authInfo token.");
98  	     } 
99  	}
100 	
101 	@Test
102 	public void findBusiness() {
103 		try {
104 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
105 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
106 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
107 
108 			tckBusiness.saveBusiness(authInfoJoe, TOM_BUSINESS1_XML, TOM_BUSINESS1_KEY);
109 			tckBusiness.saveBusiness(authInfoJoe, TOM_BUSINESS2_XML, TOM_BUSINESS2_KEY);
110 			try {
111 				int size = 0;
112 				BusinessList bl = null;
113 
114 				FindBusiness fb = new FindBusiness();
115 				FindQualifiers fqs = new FindQualifiers();
116 				fqs.getFindQualifier().add("combineCategoryBags");
117 				fb.setFindQualifiers(fqs);
118 
119 				KeyedReference keyRef1 = new KeyedReference();
120 				keyRef1.setTModelKey(TOM_PUBLISHER_TMODEL01_KEY);
121 				keyRef1.setKeyValue("value-z");
122 
123 				KeyedReference keyRef2 = new KeyedReference();
124 				keyRef2.setTModelKey(TOM_PUBLISHER_TMODEL02_KEY);
125 				keyRef2.setKeyValue("value-x");
126 
127 				CategoryBag cb = new CategoryBag();
128 				cb.getKeyedReference().add(keyRef1);
129 				cb.getKeyedReference().add(keyRef2);
130 				fb.setCategoryBag(cb);
131 
132 				bl = inquiry.findBusiness(fb);
133 				if (bl.getBusinessInfos() == null) {
134 					Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
135 							+ "found " + size);
136 				}
137 				size = bl.getBusinessInfos().getBusinessInfo().size();
138 				if (size != 1) {
139 					Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
140 							+ "found " + size);
141 				} else {
142 					List<BusinessInfo> biList = bl.getBusinessInfos().getBusinessInfo();
143 					String businessKey = biList.get(0).getBusinessKey();
144 					if (!BUSINESS_KEY.equals(businessKey)) {
145 						Assert.fail("Should have found business key " + BUSINESS_KEY
146 								+ " but found [" + businessKey + "]");
147 					}
148 				}
149 			} catch (Exception e) {
150 				e.printStackTrace();
151 				Assert.fail(e.getMessage());
152 			}
153 		} finally {
154 			tckBusiness.deleteBusiness(authInfoJoe, TOM_BUSINESS1_XML, TOM_BUSINESS1_KEY);
155 			tckBusiness.deleteBusiness(authInfoJoe, TOM_BUSINESS2_XML, TOM_BUSINESS2_KEY);
156 
157 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
158 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
159 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
160 
161 		}
162 	}
163 	
164 	@Test
165 	public void findBusinessJUDDI545() {
166 		try {
167 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
168 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
169 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
170 
171 			tckBusiness.saveBusiness(authInfoJoe, TOM_BUSINESS545_XML, TOM_BUSINESS545_KEY);
172 			
173 			try {
174 				int size = 0;
175 				BusinessList bl = null;
176 
177 				FindBusiness fb = new FindBusiness();
178 				FindQualifiers fqs = new FindQualifiers();
179 				fqs.getFindQualifier().add("combineCategoryBags");
180 				fb.setFindQualifiers(fqs);
181 
182 				KeyedReference keyRef1 = new KeyedReference();
183 				keyRef1.setTModelKey(TOM_PUBLISHER_TMODEL01_KEY);
184 				keyRef1.setKeyValue("value-z");
185 
186 				KeyedReference keyRef2 = new KeyedReference();
187 				keyRef2.setTModelKey(TOM_PUBLISHER_TMODEL02_KEY);
188 				keyRef2.setKeyValue("value-x");
189 				
190 				KeyedReference keyRef3 = new KeyedReference();
191 				keyRef3.setTModelKey(TOM_PUBLISHER_TMODEL01_KEY);
192 				keyRef3.setKeyValue("value-y");
193 
194 				CategoryBag cb = new CategoryBag();
195 				cb.getKeyedReference().add(keyRef1);
196 				cb.getKeyedReference().add(keyRef2);
197 				cb.getKeyedReference().add(keyRef3);
198 				fb.setCategoryBag(cb);
199 
200 				bl = inquiry.findBusiness(fb);
201 				if (bl.getBusinessInfos() == null) {
202 					Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
203 							+ "found " + size);
204 				}
205 				size = bl.getBusinessInfos().getBusinessInfo().size();
206 				if (size != 1) {
207 					Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
208 							+ "found " + size);
209 				} else {
210 					List<BusinessInfo> biList = bl.getBusinessInfos().getBusinessInfo();
211 					String businessKey = biList.get(0).getBusinessKey();
212 					if (!BUSINESS_KEY545.equals(businessKey)) {
213 						Assert.fail("Should have found business key " + BUSINESS_KEY545
214 								+ " but found [" + businessKey + "]");
215 					}
216 				}
217 			} catch (Exception e) {
218 				e.printStackTrace();
219 				Assert.fail(e.getMessage());
220 			}
221 		} finally {
222 			tckBusiness.deleteBusiness(authInfoJoe, TOM_BUSINESS545_XML, TOM_BUSINESS545_KEY);
223 
224 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
225 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
226 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
227 
228 		}
229 	}	
230 }