This project has retired. For details please refer to its Attic page.
API_110_FindBusinessTest 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_v2.IdentifierBag;
33  import org.uddi.api_v2.KeyedReference;
34  import org.uddi.api_v3.BusinessInfo;
35  import org.uddi.api_v3.BusinessList;
36  import org.uddi.api_v3.FindBusiness;
37  import org.uddi.api_v3.ServiceInfo;
38  import org.uddi.api_v3.TModelBag;
39  import org.uddi.v3_service.UDDISecurityPortType;
40  
41  /**
42   * Test to verify JUDDI-398
43   * 
44   * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
45   */
46  public class API_110_FindBusinessTest 
47  {
48  	final static String TOM_PUBLISHER_TMODEL_XML      = "uddi_data/tompublisher/tModelKeyGen.xml";
49  	final static String TOM_PUBLISHER_TMODEL01_XML 	  = "uddi_data/tompublisher/tModel01.xml";
50  	final static String TOM_PUBLISHER_TMODEL02_XML 	  = "uddi_data/tompublisher/tModel02.xml";
51  
52  	final static String TOM_PUBLISHER_TMODEL_KEY      = "uddi:uddi.tompublisher.com:keygenerator";
53  	final static String TOM_PUBLISHER_TMODEL01_KEY      = "uddi:uddi.tompublisher.com:tmodeltest01";
54  	final static String TOM_PUBLISHER_TMODEL01_NAME 	= "tmodeltest01";
55  	final static String TOM_PUBLISHER_TMODEL02_KEY      = "uddi:uddi.tompublisher.com:tmodeltest02";
56  
57  	final static String TOM_BUSINESS_XML        = "uddi_data/tompublisher/businessEntity.xml";
58      final static String TOM_BUSINESS_KEY        = "uddi:uddi.tompublisher.com:businesstest01";
59  	
60      final static String TOM_PUBLISHER_SERVICEINFO_NAME = "servicetest01";
61      
62      private static Log logger = LogFactory.getLog(API_110_FindBusinessTest.class);
63  	
64      private static API_010_PublisherTest api010       = new API_010_PublisherTest();
65      private static TckTModel tckTModel                = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
66      private static TckBusiness tckBusiness            = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
67      private static UDDIInquiryImpl inquiry            = new UDDIInquiryImpl();
68      private static UDDIv2InquiryImpl inquiryv2            = new UDDIv2InquiryImpl();
69  	protected static String authInfoJoe               = null;
70  
71  	@AfterClass
72  	public static void stopManager() throws ConfigurationException {
73  		Registry.stop();
74  	}
75  	
76  	@BeforeClass
77  	public static void startManager() throws ConfigurationException {
78  		Registry.start();
79  		
80  		logger.debug("Getting auth tokens..");
81  		try {
82  			api010.saveJoePublisher();
83  			api010.saveSamSyndicator();
84  			UDDISecurityPortType security      = new UDDISecurityImpl();
85          	 authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
86          	 Assert.assertNotNull(authInfoJoe);
87      
88  	     } catch (Exception e) {
89  	    	 logger.error(e.getMessage(), e);
90  				Assert.fail("Could not obtain authInfo token.");
91  	     } 
92  	}
93  
94           /**
95           * JUDDI-398
96           * JUDDI-881
97           * "If a tModelBag or find_tModel was used in the search, the resulting serviceInfos structure reflects data only for the businessServices that actually contained a matching bindingTemplate.
98           */
99  	@Test
100 	public void findBusinessByTModelBag() {
101 		try {
102 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
103 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
104 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
105 			
106 			tckBusiness.saveBusinesses(authInfoJoe, TOM_BUSINESS_XML, TOM_BUSINESS_KEY, 1);
107 			
108 			try {
109 				int size = 0;
110 				BusinessList bl = null;
111 	
112 				FindBusiness fbb = new FindBusiness();
113 				TModelBag tmb = new TModelBag();
114 				tmb.getTModelKey().add(TOM_PUBLISHER_TMODEL01_KEY);
115 				fbb.setTModelBag(tmb);
116 				bl = inquiry.findBusiness(fbb);
117 				size = bl.getBusinessInfos().getBusinessInfo().size();
118 				if (size != 1) {
119 					Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
120 							+ "found " + size);
121 				} else {
122 					List<BusinessInfo> biList = bl.getBusinessInfos().getBusinessInfo();
123 					if (biList.get(0).getServiceInfos().getServiceInfo().size() != 1) {
124 						Assert.fail("Should have found one ServiceInfos");
125 					} else {
126 							List<ServiceInfo> siList = biList.get(0).getServiceInfos().getServiceInfo();
127 							ServiceInfo si = siList.get(0);
128 							if (!TOM_PUBLISHER_SERVICEINFO_NAME.equals(si.getName().get(0).getValue())) {
129 								Assert.fail("Should have found " + TOM_PUBLISHER_TMODEL01_NAME + " as the "
130 										+ "ServiceInfo name, found " + si.getName().get(0).getValue());
131 							}
132 					}
133 				}
134 			} catch (Exception e) {
135 				e.printStackTrace();
136 				Assert.fail(e.getMessage());
137 			}
138 		} finally {
139 			tckBusiness.deleteBusinesses(authInfoJoe, TOM_BUSINESS_XML, TOM_BUSINESS_KEY, 1);
140 			
141 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
142 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
143 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
144 
145 		}
146 	}
147 	
148         
149         
150         @Test
151 	public void findBusinessByTModelV2() {
152 		try {
153 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
154 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
155 			tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
156 			
157 			tckBusiness.saveBusinesses(authInfoJoe, TOM_BUSINESS_XML, TOM_BUSINESS_KEY, 1);
158 			
159 			try {
160 				int size = 0;
161 				
162         
163                                 org.uddi.api_v2.BusinessList bl = null;
164 	
165                                 org.uddi.api_v2.FindBusiness fbb = new org.uddi.api_v2.FindBusiness();
166                                 org.uddi.api_v2.IdentifierBag tmb = new org.uddi.api_v2.IdentifierBag();
167 				tmb.getKeyedReference().add(new KeyedReference("uuid:578a72bd-8f35-4099-b559-8b4997389bc5",
168                                         "DUNS", "12-345-6781"));
169 				fbb.setIdentifierBag(tmb);
170 				bl = inquiryv2.findBusiness(fbb);
171 				size = bl.getBusinessInfos().getBusinessInfo().size();
172 				if (size != 0) {
173 					Assert.fail("Should have found no entry on FindBusiness with TModelBag, "
174 							+ "found " + size);
175 				} 
176 			} catch (Exception e) {
177 				e.printStackTrace();
178 				Assert.fail(e.getMessage());
179 			}
180 		} finally {
181 			tckBusiness.deleteBusinesses(authInfoJoe, TOM_BUSINESS_XML, TOM_BUSINESS_KEY, 1);
182 			
183 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
184 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
185 			tckTModel.deleteTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
186 
187 		}
188 	}
189 	
190 }