This project has retired. For details please refer to its Attic page.
API_070_FindEntityTest 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.api.impl;
16  
17  import java.rmi.RemoteException;
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.client.UDDIConstants;
25  import org.apache.juddi.v3.tck.TckBindingTemplate;
26  import org.apache.juddi.v3.tck.TckBusiness;
27  import org.apache.juddi.v3.tck.TckBusinessService;
28  import static org.apache.juddi.v3.tck.TckBusinessService.JOE_SERVICE_KEY_2;
29  import static org.apache.juddi.v3.tck.TckBusinessService.JOE_SERVICE_XML_2;
30  import org.apache.juddi.v3.tck.TckFindEntity;
31  import org.apache.juddi.v3.tck.TckPublisher;
32  import org.apache.juddi.v3.tck.TckSecurity;
33  import org.apache.juddi.v3.tck.TckTModel;
34  import org.junit.AfterClass;
35  import org.junit.Assert;
36  import org.junit.BeforeClass;
37  import org.junit.Test;
38  import org.uddi.api_v3.BindingDetail;
39  import org.uddi.api_v3.BindingTemplate;
40  import org.uddi.api_v3.CategoryBag;
41  import org.uddi.api_v3.FindBinding;
42  import org.uddi.api_v3.FindQualifiers;
43  import org.uddi.api_v3.FindTModel;
44  import org.uddi.api_v3.KeyedReference;
45  import org.uddi.api_v3.Name;
46  import org.uddi.api_v3.SaveTModel;
47  import org.uddi.api_v3.TModel;
48  import org.uddi.api_v3.TModelBag;
49  import org.uddi.api_v3.TModelList;
50  
51  /**
52   * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
53   * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
54   */
55  public class API_070_FindEntityTest {
56  
57          private static Log logger = LogFactory.getLog(API_070_FindEntityTest.class);
58  
59          private static API_010_PublisherTest api010 = new API_010_PublisherTest();
60          private static TckTModel tckTModel = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
61          private static TckBusiness tckBusiness = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
62          private static TckBusinessService tckBusinessService = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl());
63          private static TckBindingTemplate tckBindingTemplate = new TckBindingTemplate(new UDDIPublicationImpl(), new UDDIInquiryImpl());
64          private static TckFindEntity tckFindEntity = new TckFindEntity(new UDDIInquiryImpl());
65  
66          private static String authInfoJoe = null;
67  
68          @BeforeClass
69          public static void setup() throws ConfigurationException {
70                  Registry.start();
71                  logger.debug("Getting auth token..");
72                  try {
73                          tckTModel.saveUDDIPublisherTmodel(TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword()));
74                          tckTModel.saveTmodels(TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword()));
75                          api010.saveJoePublisher();
76                          authInfoJoe = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
77                  } catch (RemoteException e) {
78                          logger.error(e.getMessage(), e);
79                          Assert.fail("Could not obtain authInfo token.");
80                  }
81          }
82  
83          @AfterClass
84          public static void stopRegistry() throws ConfigurationException {
85                  Registry.stop();
86          }
87  
88          @Test
89          public void findEntities() throws Exception {
90                  try {
91                          tckTModel.saveJoePublisherTmodel(authInfoJoe, true);
92                          tckBusiness.saveJoePublisherBusiness(authInfoJoe);
93                          tckBusinessService.saveJoePublisherService(authInfoJoe);
94                          //uddi:tmodelkey:categories:bindings
95                          tckBindingTemplate.saveJoePublisherBinding(authInfoJoe);
96                          tckFindEntity.findBusiness();
97                          tckFindEntity.findService(null);
98                          tckFindEntity.findBinding(null);
99                          tckFindEntity.findTModel(null);
100                         tckFindEntity.findAllBusiness();
101                         tckFindEntity.getNonExitingBusiness();
102                 } finally {
103                         tckBindingTemplate.deleteJoePublisherBinding(authInfoJoe);
104                         tckBusinessService.deleteJoePublisherService(authInfoJoe);
105                         tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
106                         tckTModel.deleteJoePublisherTmodel(authInfoJoe);
107                 }
108 
109         }
110 
111         @Test
112         public void findSignedEntities() throws Exception {
113                 try {
114                         tckTModel.saveJoePublisherTmodel(authInfoJoe, true);
115                         tckBusiness.saveJoePublisherBusinessX509Signature(authInfoJoe);
116                         tckBusinessService.saveJoePublisherService(authInfoJoe);
117                         tckBindingTemplate.saveJoePublisherBinding(authInfoJoe);
118 
119                         tckFindEntity.findAllSignedBusiness();
120                         tckFindEntity.findService(UDDIConstants.SIGNATURE_PRESENT);
121                         tckFindEntity.findBinding(UDDIConstants.SIGNATURE_PRESENT);
122                         //tckFindEntity.findTModel(UDDIConstants.SIGNATURE_PRESENT);
123 
124                         tckFindEntity.findAllBusiness();
125                         tckFindEntity.getNonExitingBusiness();
126                 } finally {
127                         tckBindingTemplate.deleteJoePublisherBinding(authInfoJoe);
128                         tckBusinessService.deleteJoePublisherService(authInfoJoe);
129                         tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
130                         tckTModel.deleteJoePublisherTmodel(authInfoJoe);
131                 }
132 
133         }
134 
135         @Test
136         public void JUDDI_843_tModel() throws Exception {
137 
138                 UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
139 
140                 UDDIPublicationImpl pub = new UDDIPublicationImpl();
141                 SaveTModel stm = new SaveTModel();
142                 stm.setAuthInfo(authInfoJoe);
143                 TModel tm = new TModel();
144                 tm.setName(new Name("Buenos Dias", "es-US"));
145                 stm.getTModel().add(tm);
146                 pub.saveTModel(stm);
147 
148                 FindTModel ftm = new FindTModel();
149                 ftm.setAuthInfo(authInfoJoe);
150                 ftm.setName(new Name("%", "es-US"));
151                 ftm.setFindQualifiers(new FindQualifiers());
152                 ftm.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
153                 ftm.getFindQualifiers().getFindQualifier().add(UDDIConstants.SORT_BY_NAME_ASC);
154                 ftm.getFindQualifiers().getFindQualifier().add(UDDIConstants.CASE_INSENSITIVE_MATCH);
155                 TModelList findTModel = inquiry.findTModel(ftm);
156                 Assert.assertNotNull(findTModel);
157                 Assert.assertNotNull(findTModel.getTModelInfos());
158                 Assert.assertNotNull(findTModel.getTModelInfos().getTModelInfo());
159                 boolean found = false;
160                 for (int i = 0; i < findTModel.getTModelInfos().getTModelInfo().size(); i++) {
161                         if (findTModel.getTModelInfos().getTModelInfo().get(i).getName().getValue().equalsIgnoreCase("Buenos Dias")
162                                 && findTModel.getTModelInfos().getTModelInfo().get(i).getName().getLang().equalsIgnoreCase("es-US")) {
163                                 found = true;
164                                 break;
165                         }
166                 }
167                 Assert.assertTrue("tMdoel search by name with language defined failed, item not found", found);
168 
169         }
170 
171         /**
172          * matches for tModel by catbag, default settings, exact match
173          * @throws Exception 
174          */
175         @Test
176         public void JUDDI_899() throws Exception {
177                 UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
178 
179             
180                 FindTModel ftm = new FindTModel();
181                 ftm.setAuthInfo(authInfoJoe);
182                 ftm.setCategoryBag(new CategoryBag());
183                 ftm.getCategoryBag().getKeyedReference().add(new KeyedReference("uddi:uddi.org:categorization:types", "uddi-org:types:keyGenerator", "keyGenerator"));
184                 TModelList findTModel = inquiry.findTModel(ftm);
185                 Assert.assertNotNull(findTModel);
186                 Assert.assertNotNull(findTModel.getTModelInfos());
187                 Assert.assertNotNull(findTModel.getTModelInfos().getTModelInfo());
188 
189         }
190         
191         /**
192          * matches for tModel by catbag, default settings, approximate match
193          * @throws Exception 
194          */
195         @Test
196         public void JUDDI_899_1() throws Exception {
197                 UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
198 
199                 FindTModel ftm = new FindTModel();
200                 ftm.setFindQualifiers(new FindQualifiers());
201                 ftm.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
202                 ftm.setAuthInfo(authInfoJoe);
203                 ftm.setCategoryBag(new CategoryBag());
204                 ftm.getCategoryBag().getKeyedReference().add(new KeyedReference("uddi:uddi.org:categorization:types", "uddi-org:types:keyGenerator", "key%"));
205                 TModelList findTModel = inquiry.findTModel(ftm);
206                 Assert.assertNotNull(findTModel);
207                 Assert.assertNotNull(findTModel.getTModelInfos());
208                 Assert.assertNotNull(findTModel.getTModelInfos().getTModelInfo());
209 
210         }
211         
212          /**
213          * matches for tModel by catbag, default settings, case insensitive 
214          * @throws Exception 
215          */
216         @Test
217         public void JUDDI_899_2() throws Exception {
218                 UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
219 
220 
221                 FindTModel ftm = new FindTModel();
222                 ftm.setAuthInfo(authInfoJoe);
223                 ftm.setFindQualifiers(new FindQualifiers());
224                 ftm.getFindQualifiers().getFindQualifier().add(UDDIConstants.CASE_INSENSITIVE_MATCH);
225                 
226                 ftm.setCategoryBag(new CategoryBag());
227                 //all of the defeault installed data is for "keyGenerator"
228                 ftm.getCategoryBag().getKeyedReference().add(new KeyedReference("uddi:uddi.org:categorization:types", "uddi-org:types:keyGenerator", "keygenerator"));
229                 TModelList findTModel = inquiry.findTModel(ftm);
230                 Assert.assertNotNull(findTModel);
231                 Assert.assertNotNull(findTModel.getTModelInfos());
232                 Assert.assertNotNull(findTModel.getTModelInfos().getTModelInfo());
233 
234         }
235         
236         @Test
237         public void JUDDI_992() throws Exception {
238                 try{
239                     
240                     tckTModel.saveJoePublisherTmodel(authInfoJoe);
241                     //save a business, service and bindings
242                     tckBusiness.saveJoePublisherBusiness(authInfoJoe);
243                     tckBusinessService. saveService(authInfoJoe, JOE_SERVICE_XML_2, JOE_SERVICE_KEY_2);
244                     
245                     UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
246                     FindBinding body = new FindBinding();
247                     body.setServiceKey(TckBusinessService.JOE_SERVICE_KEY_2);
248                     body.setFindQualifiers(new FindQualifiers());
249 			body.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
250                         body.getFindQualifiers().getFindQualifier().add(UDDIConstants.SORT_BY_DATE_ASC);
251 			BindingDetail result = inquiry.findBinding(body);
252 			if (result == null)
253 				Assert.fail("Null result from find binding operation");
254 			List<BindingTemplate> btList = result.getBindingTemplate();
255 			if (btList == null || btList.size() == 0)
256 				Assert.fail("No result from find binding operation");
257 			Assert.assertTrue(btList.size()==1);
258                         
259                 }
260                 finally {
261                     tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
262                 }
263         }
264         
265         /**
266          * find by binding by service key and category bag
267          * <pre>
268          * 
269          * &#x3C;find_binding xmlns=&#x22;urn:uddi-org:api_v2&#x22; xmlns:xml=&#x22;http://www.w3.org/XML/1998/namespace&#x22; serviceKey=&#x22;&#x22;&#x3E;
270             &#x3C;findQualifiers&#x3E;
271               &#x3C;findQualifier&#x3E;orAllKeys&#x3C;/findQualifier&#x3E;
272             &#x3C;/findQualifiers&#x3E;
273             &#x3C;tModelBag&#x3E;
274               &#x3C;tModelKey&#x3E;uddi:uddi.org:protocol:serverauthenticatedssl3&#x3C;/tModelKey&#x3E;
275             &#x3C;/tModelBag&#x3E;
276             &#x3C;categoryBag&#x3E;
277               &#x3C;keyedReference tModelKey=&#x22;uuid:f85a1fb1-2be1-4197-9a3f-fc310222cd34&#x22; keyName=&#x22;category&#x22; keyValue=&#x22;secure&#x22; /&#x3E;
278             &#x3C;/categoryBag&#x3E;
279           &#x3C;/find_binding&#x3E;
280          * </pre>
281          * @throws Exception 
282          */
283         @Test
284         public void JUDDI_992_2() throws Exception {
285                 try{
286                     
287                     tckTModel.saveJoePublisherTmodel(authInfoJoe);
288                     //save a business, service and bindings
289                     tckBusiness.saveJoePublisherBusiness(authInfoJoe);
290                     tckBusinessService. saveService(authInfoJoe, JOE_SERVICE_XML_2, JOE_SERVICE_KEY_2);
291                     
292                     UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
293                     FindBinding body = new FindBinding();
294                    // body.setServiceKey(TckBusinessService.JOE_SERVICE_KEY_2);
295                     body.setFindQualifiers(new FindQualifiers());
296                     body.getFindQualifiers().getFindQualifier().add(UDDIConstants.OR_ALL_KEYS);
297                     body.setTModelBag(new TModelBag());
298                     body.getTModelBag().getTModelKey().add("uddi:uddi.org:transport:telephone");
299                     body.setCategoryBag(new CategoryBag());
300                     body.getCategoryBag().getKeyedReference().add(new KeyedReference("uddi:tmodelkey:categories:bindings", "category", "accesspoint"));
301                     BindingDetail result = inquiry.findBinding(body);
302                     if (result == null)
303                             Assert.fail("Null result from find binding operation");
304                     List<BindingTemplate> btList = result.getBindingTemplate();
305                     if (btList == null || btList.size() == 0)
306                             Assert.fail("No result from find binding operation");
307                     Assert.assertTrue(btList.size()==1);
308                         
309                 }
310                 finally {
311                     tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
312                 }
313         }
314 }