Java tutorial
/* * Copyright 2001-2009 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.juddi.v3.tck; import java.net.InetAddress; import java.rmi.RemoteException; import java.util.ArrayList; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; import java.util.UUID; import javax.xml.bind.JAXB; import javax.xml.datatype.DatatypeFactory; import javax.xml.soap.SOAPFault; import javax.xml.ws.BindingProvider; import javax.xml.ws.Endpoint; import javax.xml.ws.Holder; import javax.xml.ws.soap.SOAPFaultException; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.juddi.v3.client.UDDIConstants; import org.apache.juddi.v3.client.config.UDDIClient; import org.apache.juddi.v3.client.transport.Transport; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Assume; import org.junit.BeforeClass; import org.junit.Test; import org.uddi.api_v3.*; import org.uddi.sub_v3.Subscription; import org.uddi.sub_v3.SubscriptionFilter; import org.uddi.v3_service.UDDIInquiryPortType; import org.uddi.v3_service.UDDIPublicationPortType; import org.uddi.v3_service.UDDISecurityPortType; import org.uddi.v3_service.UDDISubscriptionPortType; /** * This test class provides test cases of items discovered or reported through * the Juddi JIRA issue tracker The idea is that these tests apply to any UDDI * registry and that the tests are either implied or derived requirements * defined in the UDDI spec that were missed in other test cases for Juddi. * * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a> */ public class UDDI_141_JIRAIntegrationTest { public UDDI_141_JIRAIntegrationTest() throws RemoteException { } private static Log logger = LogFactory.getLog(UDDI_141_JIRAIntegrationTest.class); static UDDISecurityPortType security = null; static UDDISubscriptionPortType subscriptionJoe = null; static UDDIInquiryPortType inquiryJoe = null; static UDDIPublicationPortType publicationJoe = null; static TckTModel tckTModelJoe = null; static TckBusiness tckBusinessJoe = null; static UDDISubscriptionPortType subscriptionSam = null; static UDDIInquiryPortType inquiryJoeSam = null; static UDDIPublicationPortType publicationSam = null; static TckTModel tckTModelSam = null; static TckBusiness tckBusinessSam = null; protected static String authInfoJoe = null; protected static String authInfoSam = null; private static UDDIClient manager; static final String str256 = "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"; static final String str255 = "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"; static final String strkey256 = "uddi:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"; static final String strkey256_1 = "uddi:org.apache:omething.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.somethi.com"; static final String str26 = "11111111111111111111111111"; static final String str27 = "111111111111111111111111110"; static final String str10 = "0123456789"; static final String str11 = "01234567890"; static final String str80 = "01234567890123456789012345678901234567890123456789012345678901234567890123456789"; static final String str81 = "012345678901234567890123456789012345678901234567890123456789012345678901234567891"; static final String TRANS = "The transaction has been rolled back"; static final String str4096 = "12345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXX"; static final String str4097 = "12345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXXZ"; static final String str51 = "111111111111111111111111111111111111111111111111111"; static final String str50 = "11111111111111111111111111111111111111111111111111"; static final String MISSING_RESOURCE = "Can't find resource for bundle"; @AfterClass public static void stopManager() throws ConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); tckTModelJoe.deleteCreatedTModels(authInfoJoe); tckTModelSam.deleteCreatedTModels(authInfoSam); manager.stop(); } @BeforeClass public static void startManager() throws ConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); logger.info("UDDI_141_JIRAIntegrationTest"); manager = new UDDIClient(); manager.start(); logger.debug("Getting auth tokens.."); try { Transport transport = manager.getTransport("uddiv3"); security = transport.getUDDISecurityService(); publicationJoe = transport.getUDDIPublishService(); inquiryJoe = transport.getUDDIInquiryService(); subscriptionJoe = transport.getUDDISubscriptionService(); authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword()); //Assert.assertNotNull(authInfoJoe); //Assert.assertNotNull(authInfoSam); if (!TckPublisher.isUDDIAuthMode()) { TckSecurity.setCredentials((BindingProvider) publicationJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); TckSecurity.setCredentials((BindingProvider) inquiryJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); TckSecurity.setCredentials((BindingProvider) subscriptionJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); } tckTModelJoe = new TckTModel(publicationJoe, inquiryJoe); tckBusinessJoe = new TckBusiness(publicationJoe, inquiryJoe); transport = manager.getTransport("uddiv3"); publicationSam = transport.getUDDIPublishService(); inquiryJoeSam = transport.getUDDIInquiryService(); if (!TckPublisher.isUDDIAuthMode()) { TckSecurity.setCredentials((BindingProvider) publicationSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword()); TckSecurity.setCredentials((BindingProvider) inquiryJoeSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword()); TckSecurity.setCredentials((BindingProvider) subscriptionSam, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); } subscriptionSam = transport.getUDDISubscriptionService(); tckTModelSam = new TckTModel(publicationSam, inquiryJoeSam); tckBusinessSam = new TckBusiness(publicationSam, inquiryJoeSam); } catch (Exception e) { logger.error(e.getMessage(), e); Assert.fail("Could not obtain authInfo token."); } } static void HandleException(Exception ex) { System.err.println("Error caught of type " + ex.getClass().getCanonicalName()); ex.printStackTrace(); if (ex.getMessage() != null) { Assert.assertFalse(ex.getMessage().contains(TRANS)); Assert.assertFalse(ex.getMessage().contains(MISSING_RESOURCE)); } if (ex instanceof SOAPFault) { SOAPFault sf = (SOAPFault) ex; if (!sf.getTextContent().contains("org.apache.juddi.v3.error.ValueNotAllowedException")) { Assert.fail(); } } } @Test public void JUDDI_JIRA_571_Part1_Test() { Assume.assumeTrue(TckPublisher.isEnabled()); //add a business //add a business with lang defined //find business with lang defined, expecting one result //find business without lang defined, expecting 2 results List<String> businesskeysToDelete = new ArrayList<String>(); String failuremsg = ""; System.out.println("JUDDI_JIRA_571_Part1_Test"); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); Name n = new Name(); n.setValue("JUDDI_JIRA_571_Part1_Test no lang"); be.getName().add(n); sb.getBusinessEntity().add(be); be = new BusinessEntity(); n = new Name(); n.setValue("JUDDI_JIRA_571_Part1_Test with lang"); n.setLang("en"); be.getName().add(n); sb.getBusinessEntity().add(be); try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); businesskeysToDelete.add(saveBusiness.getBusinessEntity().get(0).getBusinessKey()); businesskeysToDelete.add(saveBusiness.getBusinessEntity().get(1).getBusinessKey()); } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } int found1 = 0; FindBusiness fb = new FindBusiness(); fb.setAuthInfo(authInfoJoe); n = new Name(); n.setValue("%"); fb.getName().add(n); fb.setFindQualifiers(new FindQualifiers()); fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); try { BusinessList findBusiness = inquiryJoe.findBusiness(fb); if (findBusiness.getBusinessInfos() != null) { for (int i = 0; i < findBusiness.getBusinessInfos().getBusinessInfo().size(); i++) { if (businesskeysToDelete .contains(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())) { found1++; } } } } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } if (found1 != 2) { failuremsg += "No lang defined, " + found1 + " records found instead of 2"; } found1 = 0; fb = new FindBusiness(); fb.setAuthInfo(authInfoJoe); n = new Name(); n.setLang("en"); n.setValue("%"); fb.getName().add(n); fb.setFindQualifiers(new FindQualifiers()); fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); try { BusinessList findBusiness = inquiryJoe.findBusiness(fb); if (findBusiness.getBusinessInfos() != null) { for (int i = 0; i < findBusiness.getBusinessInfos().getBusinessInfo().size(); i++) { if (businesskeysToDelete .contains(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())) { found1++; } } } } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } if (found1 != 1) { failuremsg += "Lang defined, " + found1 + " records found instead of 1"; } DeleteBusinesses(businesskeysToDelete, authInfoJoe, publicationJoe); if (failuremsg.length() > 0) { Assert.fail(failuremsg); } System.out.println("Pass"); } @Test public void JUDDI_JIRA_571_Part2_Test() { Assume.assumeTrue(TckPublisher.isEnabled()); //add a service //add a service with lang defined //find service with lang defined, expecting one result //find service without lang defined, expecting 2 results List<String> businesskeysToDelete = new ArrayList<String>(); List<String> targetServiceKeys = new ArrayList<String>(); String failuremsg = ""; System.out.println("JUDDI_JIRA_571_Part2_Test"); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); Name n = new Name(); n.setValue("JUDDI_JIRA_571_Part2_Test no lang"); be.getName().add(n); sb.getBusinessEntity().add(be); BusinessService bs = new BusinessService(); n = new Name(); n.setValue("Service1 No Lang"); bs.getName().add(n); be.setBusinessServices(new BusinessServices()); be.getBusinessServices().getBusinessService().add(bs); bs = new BusinessService(); n = new Name(); n.setValue("Service2 Lang"); n.setLang("en"); bs.getName().add(n); be.getBusinessServices().getBusinessService().add(bs); try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); businesskeysToDelete.add(saveBusiness.getBusinessEntity().get(0).getBusinessKey()); targetServiceKeys.add(saveBusiness.getBusinessEntity().get(0).getBusinessServices().getBusinessService() .get(0).getServiceKey()); targetServiceKeys.add(saveBusiness.getBusinessEntity().get(0).getBusinessServices().getBusinessService() .get(1).getServiceKey()); } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } int found1 = 0; FindService fb = new FindService(); fb.setAuthInfo(authInfoJoe); n = new Name(); n.setValue("%"); fb.getName().add(n); fb.setFindQualifiers(new FindQualifiers()); fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); try { ServiceList findBusiness = inquiryJoe.findService(fb); if (findBusiness.getServiceInfos() != null) { for (int i = 0; i < findBusiness.getServiceInfos().getServiceInfo().size(); i++) { if (targetServiceKeys .contains(findBusiness.getServiceInfos().getServiceInfo().get(i).getServiceKey())) { found1++; } } } } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } if (found1 != 2) { failuremsg += "No lang defined, " + found1 + " records found instead of 2"; } found1 = 0; fb = new FindService(); fb.setAuthInfo(authInfoJoe); n = new Name(); n.setLang("en"); n.setValue("%"); fb.getName().add(n); fb.setFindQualifiers(new FindQualifiers()); fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); try { ServiceList findBusiness = inquiryJoe.findService(fb); if (findBusiness.getServiceInfos() != null) { for (int i = 0; i < findBusiness.getServiceInfos().getServiceInfo().size(); i++) { if (businesskeysToDelete .contains(findBusiness.getServiceInfos().getServiceInfo().get(i).getBusinessKey())) { found1++; } } } } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } if (found1 != 1) { failuremsg += "Lang defined, " + found1 + " records found instead of 1"; } DeleteBusinesses(businesskeysToDelete, authInfoJoe, publicationJoe); if (failuremsg.length() > 0) { Assert.fail(failuremsg); } System.out.println("Pass"); } @Test public void JUDDI_571_Part3_Test() { Assume.assumeTrue(TckPublisher.isEnabled()); //add a tmodel //add a tmodel with lang defined //find tmodel with lang defined, expecting one result //find tmodel without lang defined, expecting 2 results List<String> businesskeysToDelete = new ArrayList<String>(); String failuremsg = ""; System.out.println("JUDDI_571_Part3_Test"); SaveTModel sb = new SaveTModel(); sb.setAuthInfo(authInfoJoe); TModel be = new TModel(); Name n = new Name(); n.setValue("JUDDI_571_Part3_Test no lang"); be.setName(n); sb.getTModel().add(be); be = new TModel(); n = new Name(); n.setValue("JUDDI_571_Part3_Test lang"); n.setLang("en"); be.setName(n); sb.getTModel().add(be); try { TModelDetail saveTModel = publicationJoe.saveTModel(sb); businesskeysToDelete.add(saveTModel.getTModel().get(0).getTModelKey()); businesskeysToDelete.add(saveTModel.getTModel().get(1).getTModelKey()); } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } int found1 = 0; FindTModel fb = new FindTModel(); fb.setAuthInfo(authInfoJoe); n = new Name(); n.setValue("%JUDDI_571_Part3_Test%"); fb.setName(n); fb.setFindQualifiers(new FindQualifiers()); fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); try { TModelList findTModel = inquiryJoe.findTModel(fb); if (findTModel.getTModelInfos() != null) { for (int i = 0; i < findTModel.getTModelInfos().getTModelInfo().size(); i++) { if (businesskeysToDelete .contains(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey())) { found1++; } } } } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } if (found1 != 2) { failuremsg += "No lang defined, " + found1 + " records found instead of 2"; } found1 = 0; fb = new FindTModel(); fb.setAuthInfo(authInfoJoe); n = new Name(); n.setLang("en"); n.setValue("%JUDDI_571_Part3_Test%"); fb.setName(n); fb.setFindQualifiers(new FindQualifiers()); fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); try { TModelList findTModel = inquiryJoe.findTModel(fb); if (findTModel.getTModelInfos() != null) { for (int i = 0; i < findTModel.getTModelInfos().getTModelInfo().size(); i++) { if (businesskeysToDelete .contains(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey())) { found1++; } } } } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } if (found1 != 1) { failuremsg += "Lang defined, " + found1 + " records found instead of 1"; } DeleteTModels(businesskeysToDelete); if (failuremsg.length() > 0) { Assert.fail(failuremsg); } System.out.println("Pass"); } @Test public void JUDDI_574() { Assume.assumeTrue(TckPublisher.isEnabled()); //make a test model with a lang //search for it by name //confirm that the lang is present List<String> businesskeysToDelete = new ArrayList<String>(); String failuremsg = ""; System.out.println("JUDDI_574"); SaveTModel sb = new SaveTModel(); sb.setAuthInfo(authInfoJoe); TModel be = new TModel(); Name n = new Name(); n.setValue("JUDDI_574"); n.setLang("en"); be.setName(n); sb.getTModel().add(be); try { TModelDetail saveTModel = publicationJoe.saveTModel(sb); businesskeysToDelete.add(saveTModel.getTModel().get(0).getTModelKey()); System.out.println("tmodel created with key " + saveTModel.getTModel().get(0).getTModelKey()); } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } int found1 = 0; FindTModel fb = new FindTModel(); fb.setAuthInfo(authInfoJoe); n = new Name(); n.setValue("JUDDI_574"); fb.setName(n); fb.setFindQualifiers(new FindQualifiers()); fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); try { TModelList findTModel = inquiryJoe.findTModel(fb); if (findTModel.getTModelInfos() != null) { for (int i = 0; i < findTModel.getTModelInfos().getTModelInfo().size(); i++) { if (businesskeysToDelete .contains(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey())) { found1++; if (findTModel.getTModelInfos().getTModelInfo().get(i).getName() == null || findTModel.getTModelInfos().getTModelInfo().get(i).getName().getLang() == null || findTModel.getTModelInfos().getTModelInfo().get(i).getName().getLang() .length() == 0) { failuremsg += "Tmodel key " + findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey() + " has a null or empty lang"; } } } } } catch (Exception ex) { HandleException(ex); Assert.fail("unexpected failure"); } if (found1 != 1) { failuremsg += "found " + found1 + " records found instead of 1"; } DeleteTModels(businesskeysToDelete); if (failuremsg.length() > 0) { Assert.fail(failuremsg); } System.out.println("Pass"); } /** * sets up a compelte publisher assertion * * @throws Exception */ @Test public void JUDDI_590() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); //create two businesses System.out.println("JUDDI_590"); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); Name n = new Name(); n.setValue("JUDDI_590 Joe"); be.getName().add(n); sb.getBusinessEntity().add(be); String joeBiz = null; try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); joeBiz = saveBusiness.getBusinessEntity().get(0).getBusinessKey(); //DeleteBusiness db = new DeleteBusiness(); //db.setAuthInfo(authInfoJoe); //db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey()); //publicationJoe.deleteBusiness(db); //Assert.fail("request should have been rejected"); } catch (SOAPFaultException ex) { HandleException(ex); } sb = new SaveBusiness(); sb.setAuthInfo(authInfoSam); be = new BusinessEntity(); n = new Name(); n.setValue("JUDDI_590 Sam"); be.getName().add(n); sb.getBusinessEntity().add(be); String samBiz = null; try { BusinessDetail saveBusiness = publicationSam.saveBusiness(sb); samBiz = saveBusiness.getBusinessEntity().get(0).getBusinessKey(); //DeleteBusiness db = new DeleteBusiness(); //db.setAuthInfo(authInfoJoe); //db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey()); //publicationJoe.deleteBusiness(db); //Assert.fail("request should have been rejected"); } catch (SOAPFaultException ex) { HandleException(ex); } //create an assertion on one end AddPublisherAssertions apa = new AddPublisherAssertions(); apa.setAuthInfo(authInfoJoe); apa.getPublisherAssertion().add(new PublisherAssertion()); apa.getPublisherAssertion().get(0).setFromKey(joeBiz); apa.getPublisherAssertion().get(0).setToKey(samBiz); KeyedReference kr = new KeyedReference(); kr.setKeyName("Subsidiary"); kr.setKeyValue("parent-child"); kr.setTModelKey("uddi:uddi.org:relationships"); apa.getPublisherAssertion().get(0).setKeyedReference(kr); publicationJoe.addPublisherAssertions(apa); //check get status is not null from 1 and from 2 boolean ok = true; String msg = ""; try { List<AssertionStatusItem> assertionStatusReport = publicationJoe.getAssertionStatusReport(authInfoJoe, CompletionStatus.STATUS_TO_KEY_INCOMPLETE); if (assertionStatusReport.isEmpty()) { msg = "Stage1: no result returned, expected at least 1"; ok = false; } for (int i = 0; i < assertionStatusReport.size(); i++) { JAXB.marshal(assertionStatusReport.get(i), System.out); if (assertionStatusReport.get(i).getToKey().equals(samBiz)) { if (!assertionStatusReport.get(i).getCompletionStatus() .equals(CompletionStatus.STATUS_TO_KEY_INCOMPLETE)) { ok = false; msg = "Stage1: status type mismatch"; } } } } catch (Exception ex) { ok = false; ex.printStackTrace(); } //aprove the assertion from sam apa = new AddPublisherAssertions(); apa.setAuthInfo(authInfoSam); apa.getPublisherAssertion().add(new PublisherAssertion()); apa.getPublisherAssertion().get(0).setFromKey(joeBiz); apa.getPublisherAssertion().get(0).setToKey(samBiz); kr = new KeyedReference(); kr.setKeyName("Subsidiary"); kr.setKeyValue("parent-child"); kr.setTModelKey("uddi:uddi.org:relationships"); apa.getPublisherAssertion().get(0).setKeyedReference(kr); publicationSam.addPublisherAssertions(apa); try { List<AssertionStatusItem> assertionStatusReport = publicationJoe.getAssertionStatusReport(authInfoJoe, CompletionStatus.STATUS_COMPLETE); if (assertionStatusReport.isEmpty()) { msg = "Stage2: no result returned, expected at least 1"; ok = false; } for (int i = 0; i < assertionStatusReport.size(); i++) { JAXB.marshal(assertionStatusReport.get(i), System.out); if (assertionStatusReport.get(i).getToKey().equals(samBiz)) { if (!assertionStatusReport.get(i).getCompletionStatus() .equals(CompletionStatus.STATUS_COMPLETE)) { ok = false; msg = "Stage2: status type mismatch"; } } } //test to see what the status actually is if (!ok) { assertionStatusReport = publicationJoe.getAssertionStatusReport(authInfoJoe, CompletionStatus.STATUS_FROM_KEY_INCOMPLETE); for (int i = 0; i < assertionStatusReport.size(); i++) { JAXB.marshal(assertionStatusReport.get(i), System.out); if (assertionStatusReport.get(i).getToKey().equals(samBiz)) { msg = "Stage3: status is " + assertionStatusReport.get(i).getCompletionStatus().toString() + " instead of complete"; } } assertionStatusReport = publicationJoe.getAssertionStatusReport(authInfoJoe, CompletionStatus.STATUS_TO_KEY_INCOMPLETE); for (int i = 0; i < assertionStatusReport.size(); i++) { JAXB.marshal(assertionStatusReport.get(i), System.out); if (assertionStatusReport.get(i).getToKey().equals(samBiz)) { msg = "Stage3: status is " + assertionStatusReport.get(i).getCompletionStatus().toString() + " instead of complete"; } } assertionStatusReport = publicationJoe.getAssertionStatusReport(authInfoJoe, CompletionStatus.STATUS_BOTH_INCOMPLETE); for (int i = 0; i < assertionStatusReport.size(); i++) { JAXB.marshal(assertionStatusReport.get(i), System.out); if (assertionStatusReport.get(i).getToKey().equals(samBiz)) { msg = "Stage3: status is " + assertionStatusReport.get(i).getCompletionStatus().toString() + " instead of complete"; } } } } catch (Exception ex) { ok = false; ex.printStackTrace(); } List<String> biz = new ArrayList<String>(); biz.add(samBiz); DeleteBusinesses(biz, authInfoSam, publicationSam); biz = new ArrayList<String>(); biz.add(joeBiz); DeleteBusinesses(biz, authInfoJoe, publicationJoe); Assert.assertTrue(msg, ok); } /** * setups up a partial relationship and confirms its existence * * @throws Exception */ @Test public void JUDDI_590_1() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); //create two businesses System.out.println("JUDDI_590_1"); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); Name n = new Name(); n.setValue("JUDDI_590 Joe"); be.getName().add(n); sb.getBusinessEntity().add(be); String joeBiz = null; try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); joeBiz = saveBusiness.getBusinessEntity().get(0).getBusinessKey(); //DeleteBusiness db = new DeleteBusiness(); //db.setAuthInfo(authInfoJoe); //db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey()); //publicationJoe.deleteBusiness(db); //Assert.fail("request should have been rejected"); } catch (SOAPFaultException ex) { HandleException(ex); } sb = new SaveBusiness(); sb.setAuthInfo(authInfoSam); be = new BusinessEntity(); n = new Name(); n.setValue("JUDDI_590 Sam"); be.getName().add(n); sb.getBusinessEntity().add(be); String samBiz = null; try { BusinessDetail saveBusiness = publicationSam.saveBusiness(sb); samBiz = saveBusiness.getBusinessEntity().get(0).getBusinessKey(); //DeleteBusiness db = new DeleteBusiness(); //db.setAuthInfo(authInfoJoe); //db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey()); //publicationJoe.deleteBusiness(db); //Assert.fail("request should have been rejected"); } catch (SOAPFaultException ex) { HandleException(ex); } //create an assertion on one end AddPublisherAssertions apa = new AddPublisherAssertions(); apa.setAuthInfo(authInfoJoe); apa.getPublisherAssertion().add(new PublisherAssertion()); apa.getPublisherAssertion().get(0).setFromKey(joeBiz); apa.getPublisherAssertion().get(0).setToKey(samBiz); KeyedReference kr = new KeyedReference(); kr.setKeyName("Subsidiary"); kr.setKeyValue("parent-child"); kr.setTModelKey("uddi:uddi.org:relationships"); apa.getPublisherAssertion().get(0).setKeyedReference(kr); publicationJoe.addPublisherAssertions(apa); //ok so joe has asserted that he knows sam //check get status is not null from 1 and from 2 boolean ok = true; String msg = ""; try { List<AssertionStatusItem> assertionStatusReport = publicationJoe.getAssertionStatusReport(authInfoJoe, CompletionStatus.STATUS_TO_KEY_INCOMPLETE); if (assertionStatusReport.isEmpty()) { msg = "Stage1: no result returned, expected at least 1"; ok = false; } for (int i = 0; i < assertionStatusReport.size(); i++) { if (TckCommon.isDebug()) { JAXB.marshal(assertionStatusReport.get(i), System.out); } if (assertionStatusReport.get(i).getToKey().equals(samBiz)) { if (!assertionStatusReport.get(i).getCompletionStatus() .equals(CompletionStatus.STATUS_TO_KEY_INCOMPLETE)) { ok = false; msg = "Stage1: status type mismatch"; } } } } catch (Exception ex) { ok = false; ex.printStackTrace(); } //check that sam got the message try { List<AssertionStatusItem> assertionStatusReport = publicationSam.getAssertionStatusReport(authInfoSam, CompletionStatus.STATUS_TO_KEY_INCOMPLETE); if (assertionStatusReport.isEmpty()) { msg = "Stage2: no result returned, expected at least 1"; ok = false; } for (int i = 0; i < assertionStatusReport.size(); i++) { if (TckCommon.isDebug()) { JAXB.marshal(assertionStatusReport.get(i), System.out); } if (assertionStatusReport.get(i).getToKey().equals(samBiz)) { if (!assertionStatusReport.get(i).getCompletionStatus() .equals(CompletionStatus.STATUS_TO_KEY_INCOMPLETE)) { ok = false; msg = "Stage2: status type mismatch"; } } } } catch (Exception ex) { ok = false; ex.printStackTrace(); } List<String> biz = new ArrayList<String>(); biz.add(samBiz); DeleteBusinesses(biz, authInfoSam, publicationSam); biz = new ArrayList<String>(); biz.add(joeBiz); DeleteBusinesses(biz, authInfoJoe, publicationJoe); Assert.assertTrue(msg, ok); } UDDISubscriptionListenerImpl impl = new UDDISubscriptionListenerImpl(); /** * testing upper case subscription callbacks * * @throws Exception */ @Test public void JIRA_597() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_597"); int port = 7000; String hostname = TckPublisher.getProperties().getProperty("bindaddress"); if (hostname == null) { hostname = InetAddress.getLocalHost().getHostName(); } TckCommon.removeAllExistingSubscriptions(authInfoJoe, subscriptionJoe); UDDISubscriptionListenerImpl.notifcationMap.clear(); UDDISubscriptionListenerImpl.notificationCount = 0; Endpoint ep = null; boolean ok = false; do { try { logger.info("Attempting to bring up endpoint at " + "http://" + hostname + ":" + port + "/UDDI_CALLBACK"); ep = Endpoint.publish("http://" + hostname + ":" + port + "/UDDI_CALLBACK", impl); ok = true; } catch (Exception ex) { logger.warn("Trouble starting endpoint: " + ex.getMessage()); port++; } } while (!ok); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Joe's callback business"); be.setBusinessServices(new BusinessServices()); BusinessService bs = new BusinessService(); bs.getName().add(new Name()); bs.getName().get(0).setValue("Joe's callback service"); bs.setBindingTemplates(new BindingTemplates()); BindingTemplate bt = new BindingTemplate(); bt.setAccessPoint(new AccessPoint()); bt.getAccessPoint().setValue("http://" + hostname + ":" + port + "/UDDI_CALLBACK"); bt.getAccessPoint().setUseType("endPoint"); //Added per Kurt TModelInstanceInfo instanceInfo = new TModelInstanceInfo(); instanceInfo.setTModelKey("uddi:uddi.org:transport:http"); bt.setTModelInstanceDetails(new TModelInstanceDetails()); bt.getTModelInstanceDetails().getTModelInstanceInfo().add(instanceInfo); bs.getBindingTemplates().getBindingTemplate().add(bt); bs.getBindingTemplates().getBindingTemplate().add(bt); be.getBusinessServices().getBusinessService().add(bs); sb.getBusinessEntity().add(be); BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); List<String> deleteme = new ArrayList<String>(); deleteme.add(saveBusiness.getBusinessEntity().get(0).getBusinessKey()); //ok Joe's callback is setup //Setup a business to subscribe to sb = new SaveBusiness(); sb.setAuthInfo(authInfoSam); be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Sam's business"); sb.getBusinessEntity().add(be); BusinessDetail saveBusiness1 = publicationSam.saveBusiness(sb); //ok Joe now needs to subscribe for Sam's business Holder<List<Subscription>> list = new Holder<List<Subscription>>(); list.value = new ArrayList<Subscription>(); Subscription s = new Subscription(); s.setBindingKey(saveBusiness.getBusinessEntity().get(0).getBusinessServices().getBusinessService().get(0) .getBindingTemplates().getBindingTemplate().get(0).getBindingKey()); s.setSubscriptionFilter(new SubscriptionFilter()); s.getSubscriptionFilter().setGetBusinessDetail(new GetBusinessDetail()); s.getSubscriptionFilter().getGetBusinessDetail().getBusinessKey() .add(saveBusiness1.getBusinessEntity().get(0).getBusinessKey()); DatatypeFactory df = DatatypeFactory.newInstance(); GregorianCalendar gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gcal.add(Calendar.HOUR, 1); s.setExpiresAfter(df.newXMLGregorianCalendar(gcal)); s.setNotificationInterval(df.newDuration(5000)); list.value.add(s); subscriptionJoe.saveSubscription(authInfoJoe, list); //ok have sam change his business around. sb = new SaveBusiness(); sb.setAuthInfo(authInfoSam); be = saveBusiness1.getBusinessEntity().get(0); be.getName().get(0).setLang("en"); sb.getBusinessEntity().add(be); publicationSam.saveBusiness(sb); int maxwait = 30000; logger.info("waiting for callbacks"); while (maxwait > 0) { if (UDDISubscriptionListenerImpl.notifcationMap.size() > 0) { break; } Thread.sleep(1000); maxwait = maxwait - 1000; } TckCommon.removeAllExistingSubscriptions(authInfoJoe, subscriptionJoe); this.DeleteBusinesses(deleteme, authInfoJoe, publicationJoe); deleteme.clear(); deleteme.add(saveBusiness1.getBusinessEntity().get(0).getBusinessKey()); this.DeleteBusinesses(deleteme, authInfoSam, publicationSam); ep.stop(); if (UDDISubscriptionListenerImpl.notifcationMap.isEmpty()) { Assert.fail("no callbacks were recieved."); } } /** * testing callbacks with undefined transport type with a uppercase path * this also tests the case of one user subscribing to a specific entity * via GetBusinessDetail subscription filter * * @throws Exception */ @Test public void JIRA_596() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_596"); int port = 9000; String hostname = TckPublisher.getProperties().getProperty("bindaddress"); if (hostname == null) { hostname = InetAddress.getLocalHost().getHostName(); } // String localhostname = "localhost";//java.net.InetAddress.getLocalHost().getHostName(); TckCommon.removeAllExistingSubscriptions(authInfoJoe, subscriptionJoe); //UDDISubscriptionListenerImpl impl = new UDDISubscriptionListenerImpl(); UDDISubscriptionListenerImpl.notifcationMap.clear(); UDDISubscriptionListenerImpl.notificationCount = 0; Endpoint ep = null; boolean ok = false; do { try { ep = Endpoint.publish("http://" + hostname + ":" + port + "/UDDI_CALLBACK", impl); ok = true; } catch (Exception ex) { port++; } } while (!ok); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Joe's callback business"); be.setBusinessServices(new BusinessServices()); BusinessService bs = new BusinessService(); bs.getName().add(new Name()); bs.getName().get(0).setValue("Joe's callback service"); bs.setBindingTemplates(new BindingTemplates()); BindingTemplate bt = new BindingTemplate(); bt.setAccessPoint(new AccessPoint()); bt.getAccessPoint().setValue("http://" + hostname + ":" + port + "/UDDI_CALLBACK"); bt.getAccessPoint().setUseType("endPoint"); //obmitted as part of the jira test case /*TModelInstanceInfo instanceInfo = new TModelInstanceInfo(); instanceInfo.setTModelKey("uddi:uddi.org:transport:http"); bt.setTModelInstanceDetails(new TModelInstanceDetails()); bt.getTModelInstanceDetails().getTModelInstanceInfo().add(instanceInfo); */ bs.getBindingTemplates().getBindingTemplate().add(bt); be.getBusinessServices().getBusinessService().add(bs); sb.getBusinessEntity().add(be); logger.info("setting up joe's callback business"); BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); List<String> deleteme = new ArrayList<String>(); deleteme.add(saveBusiness.getBusinessEntity().get(0).getBusinessKey()); //ok Joe's callback is setup //Setup a business to subscribe to sb = new SaveBusiness(); sb.setAuthInfo(authInfoSam); be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Sam's business"); sb.getBusinessEntity().add(be); logger.info("saving sam's business"); BusinessDetail saveBusiness1 = publicationSam.saveBusiness(sb); //ok Joe now needs to subscribe for Sam's business Holder<List<Subscription>> list = new Holder<List<Subscription>>(); list.value = new ArrayList<Subscription>(); Subscription s = new Subscription(); s.setBindingKey(saveBusiness.getBusinessEntity().get(0).getBusinessServices().getBusinessService().get(0) .getBindingTemplates().getBindingTemplate().get(0).getBindingKey()); s.setSubscriptionFilter(new SubscriptionFilter()); s.getSubscriptionFilter().setGetBusinessDetail(new GetBusinessDetail()); s.getSubscriptionFilter().getGetBusinessDetail().getBusinessKey() .add(saveBusiness1.getBusinessEntity().get(0).getBusinessKey()); DatatypeFactory df = DatatypeFactory.newInstance(); GregorianCalendar gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gcal.add(Calendar.HOUR, 1); s.setExpiresAfter(df.newXMLGregorianCalendar(gcal)); s.setNotificationInterval(df.newDuration(5000)); list.value.add(s); logger.info("subscribing joe's to updates for sam's business"); subscriptionJoe.saveSubscription(authInfoJoe, list); //ok have sam change his business around. sb = new SaveBusiness(); sb.setAuthInfo(authInfoSam); be = saveBusiness1.getBusinessEntity().get(0); be.getName().get(0).setLang("en"); sb.getBusinessEntity().add(be); logger.info("altering sam's business"); publicationSam.saveBusiness(sb); logger.info("Waiting..."); int maxwait = 30000; while (maxwait > 0) { if (UDDISubscriptionListenerImpl.notifcationMap.size() > 0) { break; } Thread.sleep(1000); maxwait = maxwait - 1000; } TckCommon.removeAllExistingSubscriptions(authInfoJoe, subscriptionJoe); DeleteBusinesses(deleteme, authInfoJoe, publicationJoe); deleteme.clear(); deleteme.add(saveBusiness1.getBusinessEntity().get(0).getBusinessKey()); DeleteBusinesses(deleteme, authInfoSam, publicationSam); ep.stop(); if (UDDISubscriptionListenerImpl.notifcationMap.isEmpty()) { logger.error("no callbacks were recieved"); Assert.fail("no callbacks were recieved."); } logger.info("callback response was " + UDDISubscriptionListenerImpl.notifcationMap.get(0)); logger.info("PASS"); } //once more without any relationship //binding template tmodel instance info @Test public void JIRA_575_BT() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_575_BT"); String madeupTmodel = "uddi" + UUID.randomUUID().toString(); GetTModelDetail gtm = new GetTModelDetail(); gtm.setAuthInfo(authInfoJoe); gtm.getTModelKey().add(madeupTmodel); TModelDetail tModelDetail = null; try { tModelDetail = inquiryJoe.getTModelDetail(gtm); } catch (Exception ex) { } Assume.assumeTrue(tModelDetail == null); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Joe's JIRA_575_BT business"); be.setBusinessServices(new BusinessServices()); BusinessService bs = new BusinessService(); bs.getName().add(new Name()); bs.getName().get(0).setValue("Joe's JIRA_575_BT service"); bs.setBindingTemplates(new BindingTemplates()); BindingTemplate bt = new BindingTemplate(); bt.setAccessPoint(new AccessPoint()); bt.getAccessPoint().setValue("http://JIRA_575_BT/UDDI_CALLBACK"); bt.getAccessPoint().setUseType("endPoint"); TModelInstanceInfo instanceInfo = new TModelInstanceInfo(); instanceInfo.setTModelKey(madeupTmodel); bt.setTModelInstanceDetails(new TModelInstanceDetails()); bt.getTModelInstanceDetails().getTModelInstanceInfo().add(instanceInfo); bs.getBindingTemplates().getBindingTemplate().add(bt); be.getBusinessServices().getBusinessService().add(bs); sb.getBusinessEntity().add(be); logger.info("setting up joe's callback business"); try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); Assert.fail("unexpected success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } @Test public void JIRA_575_KR_Biz() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_575_KR_Biz"); String madeupTmodel = "uddi" + UUID.randomUUID().toString(); GetTModelDetail gtm = new GetTModelDetail(); gtm.setAuthInfo(authInfoJoe); gtm.getTModelKey().add(madeupTmodel); TModelDetail tModelDetail = null; try { tModelDetail = inquiryJoe.getTModelDetail(gtm); } catch (Exception ex) { } Assume.assumeTrue(tModelDetail == null); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Joe's JIRA_575_KR_Biz business"); //be.setBusinessServices(new BusinessServices()); be.setCategoryBag(new CategoryBag()); be.getCategoryBag().getKeyedReference().add(new KeyedReference(madeupTmodel, "name", "val")); sb.getBusinessEntity().add(be); try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); Assert.fail("unexpected success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } @Test public void JIRA_575_IDENT_Biz() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_575_IDENT_Biz"); String madeupTmodel = "uddi" + UUID.randomUUID().toString(); GetTModelDetail gtm = new GetTModelDetail(); gtm.setAuthInfo(authInfoJoe); gtm.getTModelKey().add(madeupTmodel); TModelDetail tModelDetail = null; try { tModelDetail = inquiryJoe.getTModelDetail(gtm); } catch (Exception ex) { } Assume.assumeTrue(tModelDetail == null); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Joe's JIRA_575_IDENT_Biz business"); //be.setBusinessServices(new BusinessServices()); be.setIdentifierBag(new IdentifierBag()); be.getIdentifierBag().getKeyedReference().add(new KeyedReference(madeupTmodel, "name", "val")); sb.getBusinessEntity().add(be); try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); Assert.fail("unexpected success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } @Test public void JIRA_575_KR_TMODEL() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_575_KR_TMODEL"); String madeupTmodel = "uddi" + UUID.randomUUID().toString(); GetTModelDetail gtm = new GetTModelDetail(); gtm.setAuthInfo(authInfoJoe); gtm.getTModelKey().add(madeupTmodel); TModelDetail tModelDetail = null; try { tModelDetail = inquiryJoe.getTModelDetail(gtm); } catch (Exception ex) { } Assume.assumeTrue(tModelDetail == null); SaveTModel stm = new SaveTModel(); stm.setAuthInfo(authInfoJoe); TModel tm = new TModel(); tm.setName(new Name("JIRA_575_KR_TMODEL", null)); tm.setCategoryBag(new CategoryBag()); tm.getCategoryBag().getKeyedReference().add(new KeyedReference(madeupTmodel, "name", "val")); stm.getTModel().add(tm); try { publicationJoe.saveTModel(stm); Assert.fail("unexpected success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } @Test public void JIRA_575_KRGRP_TMODEL() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_575_KRGRP_TMODEL"); String madeupTmodel = "uddi" + UUID.randomUUID().toString(); GetTModelDetail gtm = new GetTModelDetail(); gtm.setAuthInfo(authInfoJoe); gtm.getTModelKey().add(madeupTmodel); TModelDetail tModelDetail = null; try { tModelDetail = inquiryJoe.getTModelDetail(gtm); } catch (Exception ex) { } Assume.assumeTrue(tModelDetail == null); SaveTModel stm = new SaveTModel(); stm.setAuthInfo(authInfoJoe); TModel tm = new TModel(); tm.setName(new Name("JIRA_575_KRGRP_TMODEL", null)); tm.setCategoryBag(new CategoryBag()); tm.getCategoryBag().getKeyedReferenceGroup().add(new KeyedReferenceGroup()); tm.getCategoryBag().getKeyedReferenceGroup().get(0).setTModelKey(madeupTmodel); stm.getTModel().add(tm); try { publicationJoe.saveTModel(stm); Assert.fail("unexpected success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } @Test public void JIRA_575_KRGRP_Biz() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_575_KRGRP_Biz"); String madeupTmodel = "uddi" + UUID.randomUUID().toString(); GetTModelDetail gtm = new GetTModelDetail(); gtm.setAuthInfo(authInfoJoe); gtm.getTModelKey().add(madeupTmodel); TModelDetail tModelDetail = null; try { tModelDetail = inquiryJoe.getTModelDetail(gtm); } catch (Exception ex) { } Assume.assumeTrue(tModelDetail == null); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Joe's JIRA_575_KRGRP_Biz business"); // be.setBusinessServices(new BusinessServices()); be.setCategoryBag(new CategoryBag()); //be.getCategoryBag().getKeyedReference().add(new KeyedReference(madeupTmodel, "name", "val")); be.getCategoryBag().getKeyedReferenceGroup().add(new KeyedReferenceGroup()); be.getCategoryBag().getKeyedReferenceGroup().get(0).setTModelKey(madeupTmodel); sb.getBusinessEntity().add(be); try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); Assert.fail("unexpected success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } @Test public void JIRA_575_KRGRP_PA() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_575_KRGRP_PA"); String madeupTmodel = "uddi" + UUID.randomUUID().toString(); GetTModelDetail gtm = new GetTModelDetail(); gtm.setAuthInfo(authInfoJoe); gtm.getTModelKey().add(madeupTmodel); TModelDetail tModelDetail = null; try { tModelDetail = inquiryJoe.getTModelDetail(gtm); } catch (Exception ex) { } Assume.assumeTrue(tModelDetail == null); tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckTModelSam.saveSamSyndicatorTmodel(authInfoSam); tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckBusinessSam.saveSamSyndicatorBusiness(authInfoSam); AddPublisherAssertions apa = new AddPublisherAssertions(); apa.setAuthInfo(authInfoJoe); PublisherAssertion pa = new PublisherAssertion(); pa.setKeyedReference(new KeyedReference(madeupTmodel, "name", "val")); pa.setFromKey(TckBusiness.JOE_BUSINESS_KEY); pa.setToKey(TckBusiness.SAM_BUSINESS_KEY); apa.getPublisherAssertion().add(pa); try { publicationJoe.addPublisherAssertions(apa); Assert.fail("unexpected success"); } catch (Exception ex) { logger.error(ex.getMessage()); } finally { tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe); tckBusinessSam.deleteSamSyndicatorBusiness(authInfoSam); tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe); tckTModelSam.deleteSamSyndicatorTmodel(authInfoSam); } } @Test public void JIRA_575_SVC_KR() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_575_SVC_KR"); String madeupTmodel = "uddi" + UUID.randomUUID().toString(); GetTModelDetail gtm = new GetTModelDetail(); gtm.setAuthInfo(authInfoJoe); gtm.getTModelKey().add(madeupTmodel); TModelDetail tModelDetail = null; try { tModelDetail = inquiryJoe.getTModelDetail(gtm); } catch (Exception ex) { } Assume.assumeTrue(tModelDetail == null); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Joe's JIRA_575_SVC_KR business"); be.setBusinessServices(new BusinessServices()); BusinessService bs = new BusinessService(); bs.getName().add(new Name()); bs.getName().get(0).setValue("Joe's JIRA_575_SVC_KR service"); //bs.setBindingTemplates(new BindingTemplates()); bs.setCategoryBag(new CategoryBag()); bs.getCategoryBag().getKeyedReference().add(new KeyedReference(madeupTmodel, "name", "val")); be.getBusinessServices().getBusinessService().add(bs); sb.getBusinessEntity().add(be); try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); Assert.fail("unexpected success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } @Test public void JIRA_575_SVC_KRGRP() throws Exception { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JIRA_575_SVC_KRGRP"); String madeupTmodel = "uddi" + UUID.randomUUID().toString(); GetTModelDetail gtm = new GetTModelDetail(); gtm.setAuthInfo(authInfoJoe); gtm.getTModelKey().add(madeupTmodel); TModelDetail tModelDetail = null; try { tModelDetail = inquiryJoe.getTModelDetail(gtm); } catch (Exception ex) { } Assume.assumeTrue(tModelDetail == null); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name()); be.getName().get(0).setValue("Joe's JIRA_575_SVC_KRGRP business"); be.setBusinessServices(new BusinessServices()); BusinessService bs = new BusinessService(); bs.getName().add(new Name()); bs.getName().get(0).setValue("Joe's JIRA_575_SVC_KRGRP service"); // bs.setBindingTemplates(new BindingTemplates()); bs.setCategoryBag(new CategoryBag()); bs.getCategoryBag().getKeyedReferenceGroup().add(new KeyedReferenceGroup()); bs.getCategoryBag().getKeyedReferenceGroup().get(0).setTModelKey(madeupTmodel); be.getBusinessServices().getBusinessService().add(bs); sb.getBusinessEntity().add(be); try { BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); Assert.fail("unexpected success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } private void DeleteBusinesses(List<String> businesskeysToDelete, String authinfo, UDDIPublicationPortType pub) { //cleanup try { DeleteBusiness db = new DeleteBusiness(); db.setAuthInfo(authinfo); db.getBusinessKey().addAll(businesskeysToDelete); pub.deleteBusiness(db); } catch (Exception ex) { ex.printStackTrace(); } } private void DeleteBusinesses(String businesskeysToDelete, String authinfo, UDDIPublicationPortType pub) { //cleanup try { DeleteBusiness db = new DeleteBusiness(); db.setAuthInfo(authinfo); db.getBusinessKey().add(businesskeysToDelete); pub.deleteBusiness(db); } catch (Exception ex) { ex.printStackTrace(); } } private void DeleteTModels(List<String> businesskeysToDelete) { //cleanup try { DeleteTModel db = new DeleteTModel(); db.setAuthInfo(authInfoJoe); db.getTModelKey().addAll(businesskeysToDelete); publicationJoe.deleteTModel(db); } catch (Exception ex) { ex.printStackTrace(); } } /** * Each addressLine element MAY be adorned with two optional descriptive * attributes, keyName and keyValue. Both attributes MUST be present in * each address line if a tModelKey is specified in the address * structure. When no tModelKey is provided for the address structure, * the keyName and keyValue attributes have no defined meaning. * http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc515847027 */ @Test public void JUDDI_849_AddressLineAttributeTest() throws Exception { BusinessEntity be = new BusinessEntity(); be.setContacts(new Contacts()); Contact c = new Contact(); c.getPersonName().add(new PersonName("bob", null)); Address addr = new Address(); addr.setTModelKey("uddi:tmodelkey:address"); addr.getAddressLine().add(new AddressLine(null, null, "1313 mockingbird lane")); c.getAddress().add(addr); be.getContacts().getContact().add(c); be.getName().add(new Name("test JUDDI849", null)); SaveBusiness sb = new SaveBusiness(); sb.getBusinessEntity().add(be); sb.setAuthInfo(authInfoJoe); try { publicationJoe.saveBusiness(sb); Assert.fail("unexpected success"); } catch (Exception ex) { logger.info("Expected failure: " + ex.getMessage()); logger.debug("Expected failure: " + ex.getMessage(), ex); } } }