/* * 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.util.ArrayList; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.soap.SOAPFault; import javax.xml.ws.BindingProvider; import javax.xml.ws.Holder; 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.AddPublisherAssertions; import org.uddi.api_v3.BusinessDetail; import org.uddi.api_v3.BusinessEntity; import org.uddi.api_v3.BusinessService; import org.uddi.api_v3.CompletionStatus; import org.uddi.api_v3.DeletePublisherAssertions; import org.uddi.api_v3.FindBusiness; import org.uddi.api_v3.FindQualifiers; import org.uddi.api_v3.FindService; import org.uddi.api_v3.GetAssertionStatusReport; import org.uddi.api_v3.KeyedReference; import org.uddi.api_v3.Name; import org.uddi.api_v3.PublisherAssertion; import org.uddi.api_v3.SaveBusiness; import org.uddi.api_v3.SaveService; import org.uddi.sub_v3.CoveragePeriod; import org.uddi.sub_v3.GetSubscriptionResults; import org.uddi.sub_v3.Subscription; import org.uddi.sub_v3.SubscriptionFilter; import org.uddi.sub_v3.SubscriptionResultsList; import org.uddi.v3_service.UDDIInquiryPortType; import org.uddi.v3_service.UDDIPublicationPortType; import org.uddi.v3_service.UDDISecurityPortType; import org.uddi.v3_service.UDDISubscriptionPortType; /** * @author Jeff Faath * @author Kurt T Stam * @author Alex O'Ree */ public class UDDI_080_SubscriptionIntegrationTest { private static Log logger = LogFactory.getLog(UDDI_080_SubscriptionIntegrationTest.class); private static TckTModel tckTModelJoe = null; private static TckBusiness tckBusinessJoe = null; private static TckBusinessService tckBusinessServiceJoe = null; private static TckBindingTemplate tckBindingTemplateJoe = null; private static TckSubscription tckSubscriptionJoe = null; private static TckTModel tckTModelSam = null; private static TckBusiness tckBusinessSam = null; private static TckBusinessService tckBusinessServiceSam = null; // private static TckBindingTemplate tckBindingTemplateSam = null; private static TckSubscription tckSubscriptionSam = null; private static String authInfoJoe = null; private static String authInfoSam = null; private static UDDIClient manager; static UDDIPublicationPortType publicationJoe = null; static UDDIPublicationPortType publicationSam = null; static UDDISubscriptionPortType subscriptionJoe = null; @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()); manager = new UDDIClient(); manager.start(); logger.debug("Getting auth tokens.."); try { Transport transport = manager.getTransport("uddiv3"); UDDISecurityPortType security = transport.getUDDISecurityService(); authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword()); //Assert.assertNotNull(authInfoJoe); UDDISubscriptionPortType subscription = transport.getUDDISubscriptionService(); publicationJoe = transport.getUDDIPublishService(); UDDIInquiryPortType inquiry = transport.getUDDIInquiryService(); if (!TckPublisher.isUDDIAuthMode()) { TckSecurity.setCredentials((BindingProvider) publicationJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); TckSecurity.setCredentials((BindingProvider) subscription, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); TckSecurity.setCredentials((BindingProvider) inquiry, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); } tckTModelJoe = new TckTModel(publicationJoe, inquiry); tckBusinessJoe = new TckBusiness(publicationJoe, inquiry); tckBusinessServiceJoe = new TckBusinessService(publicationJoe, inquiry); tckBindingTemplateJoe = new TckBindingTemplate(publicationJoe, inquiry); subscriptionJoe = subscription; tckSubscriptionJoe = new TckSubscription(subscription, security, inquiry); transport = manager.getTransport("uddiv3"); publicationSam = transport.getUDDIPublishService(); inquiry = transport.getUDDIInquiryService(); subscription = transport.getUDDISubscriptionService(); if (!TckPublisher.isUDDIAuthMode()) { TckSecurity.setCredentials((BindingProvider) publicationSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword()); TckSecurity.setCredentials((BindingProvider) subscription, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword()); TckSecurity.setCredentials((BindingProvider) inquiry, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword()); } tckTModelSam = new TckTModel(publicationSam, inquiry); tckBusinessSam = new TckBusiness(publicationSam, inquiry); tckBusinessServiceSam = new TckBusinessService(publicationSam, inquiry); //tckBindingTemplateSam = new TckBindingTemplate(publicationSam, inquiry); tckSubscriptionSam = new TckSubscription(subscription, security, inquiry); String authInfoUDDI = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword()); transport = manager.getTransport("uddiv3"); UDDIPublicationPortType publication = transport.getUDDIPublishService(); inquiry = transport.getUDDIInquiryService(); if (!TckPublisher.isUDDIAuthMode()) { TckSecurity.setCredentials((BindingProvider) publication, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword()); TckSecurity.setCredentials((BindingProvider) inquiry, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword()); } TckTModel tckTModelUDDI = new TckTModel(publication, inquiry); tckTModelUDDI.saveUDDIPublisherTmodel(authInfoUDDI); tckTModelUDDI.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML); } catch (Exception e) { logger.error(e.getMessage(), e); Assert.fail("Could not obtain authInfo token."); } } static final String TRANS = "The transaction has been rolled back"; static final String MISSING_RESOURCE = "Can't find resource for bundle"; 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 joePublisher() { Assume.assumeTrue(TckPublisher.isEnabled()); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); try { TckCommon.removeAllExistingSubscriptions(authInfoJoe, subscriptionJoe); tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe); tckBindingTemplateJoe.saveJoePublisherBinding(authInfoJoe); tckSubscriptionJoe.saveJoePublisherSubscription(authInfoJoe); tckSubscriptionJoe.getJoePublisherSubscriptionResults(authInfoJoe); } finally { tckSubscriptionJoe.deleteJoePublisherSubscription(authInfoJoe); tckBindingTemplateJoe.deleteJoePublisherBinding(authInfoJoe); tckBusinessServiceJoe.deleteJoePublisherService(authInfoJoe); tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe); tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe); } } @Test public void samSyndicator() { Assume.assumeTrue(TckPublisher.isEnabled()); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); try { tckTModelSam.saveSamSyndicatorTmodel(authInfoSam); tckBusinessSam.saveSamSyndicatorBusiness(authInfoSam); tckBusinessServiceSam.saveSamSyndicatorService(authInfoSam); tckSubscriptionSam.saveSamSyndicatorSubscription(authInfoSam); tckSubscriptionSam.getSamSyndicatorSubscriptionResults(authInfoSam); } finally { tckSubscriptionSam.deleteSamSyndicatorSubscription(authInfoSam); tckBusinessServiceSam.deleteSamSyndicatorService(authInfoSam); tckBusinessSam.deleteSamSyndicatorBusiness(authInfoSam); tckTModelSam.deleteSamSyndicatorTmodel(authInfoSam); } } @Test public void samSyndicatorWithChunkingOnFind() { Assume.assumeTrue(TckPublisher.isEnabled()); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); try { tckTModelSam.saveSamSyndicatorTmodel(authInfoSam); tckBusinessSam.saveSamSyndicatorBusiness(authInfoSam); tckBusinessServiceSam.saveSamSyndicatorService(authInfoSam); tckSubscriptionSam.saveSamSyndicatorSubscriptionWithChunkingOnFind(authInfoSam); tckSubscriptionSam.getSamSyndicatorSubscriptionResultsWithChunkingOnFind(authInfoSam); } finally { tckSubscriptionSam.deleteSamSyndicatorSubscriptionWithChunkingOnFind(authInfoSam); tckBusinessServiceSam.deleteSamSyndicatorService(authInfoSam); tckBusinessSam.deleteSamSyndicatorBusiness(authInfoSam); tckTModelSam.deleteSamSyndicatorTmodel(authInfoSam); } } @Test public void samSyndicatorWithChunkingOnGet() { Assume.assumeTrue(TckPublisher.isEnabled()); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); try { tckTModelSam.saveSamSyndicatorTmodel(authInfoSam); tckBusinessSam.saveSamSyndicatorBusiness(authInfoSam); tckBusinessServiceSam.saveSamSyndicatorService(authInfoSam); tckSubscriptionSam.saveSamSyndicatorSubscriptionWithChunkingOnGet(authInfoSam); tckSubscriptionSam.getSamSyndicatorSubscriptionResultsWithChunkingOnGet(authInfoSam); } finally { tckSubscriptionSam.deleteSamSyndicatorSubscriptionWithChunkingOnGet(authInfoSam); tckBusinessServiceSam.deleteSamSyndicatorService(authInfoSam); tckBusinessSam.deleteSamSyndicatorBusiness(authInfoSam); tckTModelSam.deleteSamSyndicatorTmodel(authInfoSam); } } /** * Null expiration time, the server should set the expiration time */ @Test public void JUDDI_606_1() { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_1"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); // Null expiration time Subscription sub = new Subscription(); Holder> data = new Holder>(); data.value = new ArrayList(); sub.setBrief(true); sub.setExpiresAfter(null); sub.setMaxEntities(1); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindService(new FindService()); sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindService().getName().add(new Name("%", null)); data.value.add(sub); try { tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.assertNotNull(data.value.get(0).getExpiresAfter()); } catch (Exception ex) { HandleException(ex); Assert.fail(); } } /** * invalid expiration time * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_2() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_2"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); // invalid expiration time DatatypeFactory df = DatatypeFactory.newInstance(); GregorianCalendar gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gcal.add(Calendar.DATE, -1); XMLGregorianCalendar newXMLGregorianCalendar = df.newXMLGregorianCalendar(gcal); Subscription sub = new Subscription(); Holder> data = new Holder>(); data.value = new ArrayList(); sub.setBrief(true); sub.setExpiresAfter(newXMLGregorianCalendar); sub.setMaxEntities(1); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindService(new FindService()); sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindService().getName().add(new Name("%", null)); data.value.add(sub); try { tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.fail(); } catch (Exception ex) { //HandleException(ex); logger.info("Expected exception: " + ex.getMessage()); } } /** * confirm a subscription key is returned when not specified */ @Test public void JUDDI_606_3() { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_3"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); // Subscription sub = new Subscription(); Holder> data = new Holder>(); data.value = new ArrayList(); sub.setBrief(true); sub.setExpiresAfter(null); sub.setMaxEntities(1); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindService(new FindService()); sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindService().getName().add(new Name("%", null)); data.value.add(sub); try { tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.assertNotNull(data.value.get(0).getSubscriptionKey()); Assert.assertTrue(data.value.get(0).getSubscriptionKey().length() > 0); } catch (Exception ex) { HandleException(ex); Assert.fail(); } } /** * null subscription filter */ @Test public void JUDDI_606_4() { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_4"); // Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); Subscription sub = new Subscription(); Holder> data = new Holder>(); data.value = new ArrayList(); sub.setBrief(true); sub.setExpiresAfter(null); sub.setMaxEntities(1); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(null); try { tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.fail(); } catch (Exception ex) { //HandleException(ex); logger.info("Expected exception: " + ex.getMessage()); } } /** * empty subscription filter */ @Test public void JUDDI_606_5() { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_5"); // Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); Subscription sub = new Subscription(); Holder> data = new Holder>(); data.value = new ArrayList(); sub.setBrief(true); sub.setExpiresAfter(null); sub.setMaxEntities(1); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); data.value.add(sub); try { tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.fail(); } catch (Exception ex) { //HandleException(ex); logger.info("Expected exception: " + ex.getMessage()); } } /** * negative max entities */ @Test public void JUDDI_606_6() { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_6"); // Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); Subscription sub = new Subscription(); Holder> data = new Holder>(); data.value = new ArrayList(); sub.setBrief(true); sub.setExpiresAfter(null); sub.setMaxEntities(-1); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindService(new FindService()); sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindService().getName().add(new Name("%", null)); data.value.add(sub); try { tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.assertTrue(data.value.get(0).getMaxEntities() > 0); } catch (Exception ex) { //HandleException(ex); //this is ok as well logger.info("Expected exception: " + ex.getMessage()); } } /** * more filters that expected * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_7() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_7"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); // DatatypeFactory df = DatatypeFactory.newInstance(); try { Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(false); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindBusiness(new FindBusiness()); sub.getSubscriptionFilter().getFindBusiness().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindBusiness().getName().add(new Name("%", null)); sub.getSubscriptionFilter().setFindService(new FindService()); sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindService().getName().add(new Name("%", null)); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.fail(); } catch (Exception ex) { logger.info(ex.getMessage()); } } /** * testing reset expiration. i.e. save, wait a second then resave it, * the expiration time should be further into the future */ @Test public void JUDDI_606_8() { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_8"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); // try { Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(true); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindService(new FindService()); sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindService().getName().add(new Name("%", null)); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.assertNotNull(data.value.get(0).getExpiresAfter()); XMLGregorianCalendar xcal = data.value.get(0).getExpiresAfter(); Thread.sleep(5000); data.value.get(0).setExpiresAfter(null); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.assertNotNull(data.value.get(0).getExpiresAfter()); Assert.assertNotSame(xcal, data.value.get(0).getExpiresAfter()); long initial = xcal.toGregorianCalendar().getTimeInMillis(); long finaltime = data.value.get(0).getExpiresAfter().toGregorianCalendar().getTimeInMillis(); Assert.assertTrue(finaltime > initial); } catch (Exception ex) { HandleException(ex); Assert.fail(); } } /** * asynch subscriptions , binding key doesn't exist * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_9() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_9"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); // DatatypeFactory df = DatatypeFactory.newInstance(); try { Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(true); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(df.newDuration(5000)); sub.setBindingKey("uddi:uddi.joepublisher.com:mykey"); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindService(new FindService()); sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindService().getName().add(new Name("%", null)); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.fail(); } catch (Exception ex) { logger.info("Expected exception: " + ex.getMessage()); } } /** * asynch subscriptions, key exists , null interval * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_10() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_10"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); // try { tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe); tckBindingTemplateJoe.saveJoePublisherBinding(authInfoJoe); Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(true); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(TckBindingTemplate.JOE_BINDING_KEY); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindService(new FindService()); sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindService().getName().add(new Name("%", null)); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); Assert.fail(); } catch (Exception ex) { //HandleException(ex); logger.info("Expected exception: " + ex.getMessage()); } finally { tckBindingTemplateJoe.deleteJoePublisherBinding(authInfoJoe); tckBusinessServiceJoe.deleteJoePublisherService(authInfoJoe); tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe); tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe); } } /** * set subscription, make a change as the same user, get subscription * results no key specified * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_11() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_11"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); String key = null; DatatypeFactory df = DatatypeFactory.newInstance(); try { Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(false); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindBusiness(new FindBusiness()); sub.getSubscriptionFilter().getFindBusiness().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindBusiness().getName().add(new Name("%", null)); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name("Test business", null)); sb.getBusinessEntity().add(be); BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); key = saveBusiness.getBusinessEntity().get(0).getBusinessKey(); GetSubscriptionResults gsr = new GetSubscriptionResults(); gsr.setAuthInfo(authInfoJoe); gsr.setSubscriptionKey(null); gsr.setCoveragePeriod(new CoveragePeriod()); GregorianCalendar gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gcal.add(Calendar.HOUR, -1); gsr.getCoveragePeriod().setStartPoint(df.newXMLGregorianCalendar(gcal)); gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gsr.getCoveragePeriod().setEndPoint(df.newXMLGregorianCalendar(gcal)); tckSubscriptionJoe.subscription.getSubscriptionResults(gsr); Assert.fail(); } catch (Exception ex) { //HandleException(ex); //Assert.fail(); logger.info("Expected exception: " + ex.getMessage()); } finally { TckCommon.DeleteBusiness(key, authInfoJoe, publicationJoe); } } /** * * @throws DatatypeConfigurationException set subscription, make a * change as the same user, get subscription results no period specified */ @Test public void JUDDI_606_12() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_12"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); // String key = null; try { tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe); tckBindingTemplateJoe.saveJoePublisherBinding(authInfoJoe); Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(false); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindBusiness(new FindBusiness()); sub.getSubscriptionFilter().getFindBusiness().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindBusiness().getName().add(new Name("%", null)); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name("Test business", null)); sb.getBusinessEntity().add(be); BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); key = saveBusiness.getBusinessEntity().get(0).getBusinessKey(); GetSubscriptionResults gsr = new GetSubscriptionResults(); gsr.setAuthInfo(authInfoJoe); gsr.setSubscriptionKey(data.value.get(0).getSubscriptionKey()); gsr.setCoveragePeriod(null); tckSubscriptionJoe.subscription.getSubscriptionResults(gsr); Assert.fail(); } catch (Exception ex) { //HandleException(ex); //Assert.fail(); logger.info("Expected exception: " + ex.getMessage()); } finally { TckCommon.DeleteBusiness(key, authInfoJoe, publicationJoe); tckBindingTemplateJoe.deleteJoePublisherBinding(authInfoJoe); tckBusinessServiceJoe.deleteJoePublisherService(authInfoJoe); tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe); tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe); } } /** * set subscription, make a change as the same user, get subscription * results valid find_Business * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_13() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_13"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); String key = null; DatatypeFactory df = DatatypeFactory.newInstance(); try { Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(false); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindBusiness(new FindBusiness()); sub.getSubscriptionFilter().getFindBusiness().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindBusiness().getName().add(new Name("%", null)); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); SaveBusiness sb = new SaveBusiness(); sb.setAuthInfo(authInfoJoe); BusinessEntity be = new BusinessEntity(); be.getName().add(new Name("Test business", null)); sb.getBusinessEntity().add(be); BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb); key = saveBusiness.getBusinessEntity().get(0).getBusinessKey(); GetSubscriptionResults gsr = new GetSubscriptionResults(); gsr.setAuthInfo(authInfoJoe); gsr.setSubscriptionKey(data.value.get(0).getSubscriptionKey()); gsr.setCoveragePeriod(new CoveragePeriod()); GregorianCalendar gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gcal.add(Calendar.HOUR, -1); gsr.getCoveragePeriod().setStartPoint(df.newXMLGregorianCalendar(gcal)); gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gsr.getCoveragePeriod().setEndPoint(df.newXMLGregorianCalendar(gcal)); SubscriptionResultsList subscriptionResults = tckSubscriptionJoe.subscription.getSubscriptionResults(gsr); Assert.assertNotNull(subscriptionResults); Assert.assertNotNull(subscriptionResults.getBusinessList()); Assert.assertNotNull(subscriptionResults.getCoveragePeriod()); Assert.assertNotNull(subscriptionResults.getBusinessList().getBusinessInfos()); Assert.assertNotNull(subscriptionResults.getBusinessList().getBusinessInfos().getBusinessInfo().get(0)); Assert.assertNotNull(subscriptionResults.getBusinessList().getBusinessInfos().getBusinessInfo().get(0).getBusinessKey()); Assert.assertNotNull(subscriptionResults.getBusinessList().getBusinessInfos().getBusinessInfo().get(0).getName().get(0)); } catch (Exception ex) { HandleException(ex); Assert.fail(); } finally { TckCommon.DeleteBusiness(key, authInfoJoe, publicationJoe); } } /** * set subscription, make a change as the same user, get subscription * results valid find_services * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_14() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_14"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); DatatypeFactory df = DatatypeFactory.newInstance(); try { Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(false); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setFindService(new FindService()); sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers()); sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH); sub.getSubscriptionFilter().getFindService().getName().add(new Name("%", null)); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe); /*SaveService sb = new SaveService(); sb.setAuthInfo(authInfoJoe); BusinessService bs = new BusinessService(); bs.getName().add(new Name("svc", null)); sb.getBusinessService().add(bs); publicationJoe.saveService(sb);*/ GetSubscriptionResults gsr = new GetSubscriptionResults(); gsr.setAuthInfo(authInfoJoe); gsr.setSubscriptionKey(data.value.get(0).getSubscriptionKey()); gsr.setCoveragePeriod(new CoveragePeriod()); GregorianCalendar gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gcal.add(Calendar.HOUR, -1); gsr.getCoveragePeriod().setStartPoint(df.newXMLGregorianCalendar(gcal)); gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gsr.getCoveragePeriod().setEndPoint(df.newXMLGregorianCalendar(gcal)); SubscriptionResultsList subscriptionResults = tckSubscriptionJoe.subscription.getSubscriptionResults(gsr); Assert.assertNotNull(subscriptionResults); Assert.assertNull(subscriptionResults.getBusinessList()); Assert.assertNotNull(subscriptionResults.getCoveragePeriod()); Assert.assertNotNull(subscriptionResults.getServiceList()); Assert.assertNotNull(subscriptionResults.getServiceList().getServiceInfos().getServiceInfo().get(0)); Assert.assertNotNull(subscriptionResults.getServiceList().getServiceInfos().getServiceInfo().get(0).getBusinessKey()); Assert.assertNotNull(subscriptionResults.getServiceList().getServiceInfos().getServiceInfo().get(0).getName().get(0)); } catch (Exception ex) { HandleException(ex); Assert.fail(ex.getMessage()); } finally { tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe); tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe); } } /** * //set subscription, make a change as the same user, get subscription * results. valid. publisher assertion, incomplete * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_15() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_15"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); DatatypeFactory df = DatatypeFactory.newInstance(); try { tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckTModelSam.saveSamSyndicatorTmodel(authInfoSam); tckBusinessSam.saveSamSyndicatorBusiness(authInfoSam); Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(false); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setGetAssertionStatusReport(new GetAssertionStatusReport()); sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.STATUS_TO_KEY_INCOMPLETE); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); AddPublisherAssertions r = new AddPublisherAssertions(); r.setAuthInfo(authInfoJoe); PublisherAssertion pa = new PublisherAssertion(); pa.setFromKey(TckBusiness.JOE_BUSINESS_KEY); pa.setToKey(TckBusiness.SAM_BUSINESS_KEY); pa.setKeyedReference(new KeyedReference()); pa.getKeyedReference().setKeyName("Subsidiary"); pa.getKeyedReference().setKeyValue("parent-child"); pa.getKeyedReference().setTModelKey("uddi:uddi.org:relationships"); r.getPublisherAssertion().add(pa); publicationJoe.addPublisherAssertions(r); GetSubscriptionResults gsr = new GetSubscriptionResults(); gsr.setAuthInfo(authInfoJoe); gsr.setSubscriptionKey(data.value.get(0).getSubscriptionKey()); gsr.setCoveragePeriod(new CoveragePeriod()); GregorianCalendar gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gcal.add(Calendar.HOUR, -1); gsr.getCoveragePeriod().setStartPoint(df.newXMLGregorianCalendar(gcal)); gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gsr.getCoveragePeriod().setEndPoint(df.newXMLGregorianCalendar(gcal)); SubscriptionResultsList subscriptionResults = tckSubscriptionJoe.subscription.getSubscriptionResults(gsr); Assert.assertNotNull(subscriptionResults); Assert.assertNull(subscriptionResults.getBusinessList()); Assert.assertNotNull(subscriptionResults.getCoveragePeriod()); Assert.assertNull(subscriptionResults.getServiceList()); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport()); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem()); Assert.assertFalse(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().isEmpty()); Assert.assertEquals(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getFromKey(), TckBusiness.JOE_BUSINESS_KEY); Assert.assertEquals(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getToKey(), TckBusiness.SAM_BUSINESS_KEY); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getCompletionStatus()); Assert.assertEquals(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getCompletionStatus(), CompletionStatus.STATUS_TO_KEY_INCOMPLETE); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getKeyedReference()); } catch (Exception ex) { HandleException(ex); Assert.fail(ex.getMessage()); } finally{ tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessSam.deleteSamSyndicatorBusiness(authInfoSam); tckTModelSam.deleteSamSyndicatorTmodel(authInfoSam); } } /** * set subscription, make a change as the same user, get subscription * results valid publisher assertion, complete * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_16() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_16"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); DatatypeFactory df = DatatypeFactory.newInstance(); try { tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckTModelSam.saveSamSyndicatorTmodel(authInfoSam); tckBusinessSam.saveSamSyndicatorBusiness(authInfoSam); Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(false); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setGetAssertionStatusReport(new GetAssertionStatusReport()); sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.STATUS_COMPLETE); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); AddPublisherAssertions r = new AddPublisherAssertions(); r.setAuthInfo(authInfoJoe); PublisherAssertion pa = new PublisherAssertion(); pa.setFromKey(TckBusiness.JOE_BUSINESS_KEY); pa.setToKey(TckBusiness.SAM_BUSINESS_KEY); pa.setKeyedReference(new KeyedReference()); pa.getKeyedReference().setKeyName("Subsidiary"); pa.getKeyedReference().setKeyValue("parent-child"); pa.getKeyedReference().setTModelKey("uddi:uddi.org:relationships"); r.getPublisherAssertion().add(pa); publicationJoe.addPublisherAssertions(r); r = new AddPublisherAssertions(); r.setAuthInfo(authInfoSam); pa = new PublisherAssertion(); pa.setFromKey(TckBusiness.JOE_BUSINESS_KEY); pa.setToKey(TckBusiness.SAM_BUSINESS_KEY); pa.setKeyedReference(new KeyedReference()); pa.getKeyedReference().setKeyName("Subsidiary"); pa.getKeyedReference().setKeyValue("parent-child"); pa.getKeyedReference().setTModelKey("uddi:uddi.org:relationships"); r.getPublisherAssertion().add(pa); publicationJoe.addPublisherAssertions(r); GetSubscriptionResults gsr = new GetSubscriptionResults(); gsr.setAuthInfo(authInfoJoe); gsr.setSubscriptionKey(data.value.get(0).getSubscriptionKey()); gsr.setCoveragePeriod(new CoveragePeriod()); GregorianCalendar gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gcal.add(Calendar.HOUR, -1); gsr.getCoveragePeriod().setStartPoint(df.newXMLGregorianCalendar(gcal)); gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gsr.getCoveragePeriod().setEndPoint(df.newXMLGregorianCalendar(gcal)); SubscriptionResultsList subscriptionResults = tckSubscriptionJoe.subscription.getSubscriptionResults(gsr); Assert.assertNotNull(subscriptionResults); Assert.assertNull(subscriptionResults.getBusinessList()); Assert.assertNotNull(subscriptionResults.getCoveragePeriod()); Assert.assertNull(subscriptionResults.getServiceList()); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport()); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem()); Assert.assertFalse(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().isEmpty()); Assert.assertEquals(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getFromKey(), TckBusiness.JOE_BUSINESS_KEY); Assert.assertEquals(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getToKey(), TckBusiness.SAM_BUSINESS_KEY); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getCompletionStatus()); Assert.assertEquals(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getCompletionStatus(), CompletionStatus.STATUS_COMPLETE); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getKeyedReference()); } catch (Exception ex) { HandleException(ex); Assert.fail(ex.getMessage()); } finally{ tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessSam.deleteSamSyndicatorBusiness(authInfoSam); tckTModelSam.deleteSamSyndicatorTmodel(authInfoSam); } } /** * set subscription, make a change as the same user, get subscription * results valid publisher assertion, deleted * * @throws DatatypeConfigurationException */ @Test public void JUDDI_606_17() throws DatatypeConfigurationException { Assume.assumeTrue(TckPublisher.isEnabled()); System.out.println("JUDDI_606_17"); Assume.assumeTrue(TckPublisher.isSubscriptionEnabled()); DatatypeFactory df = DatatypeFactory.newInstance(); try { tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckTModelSam.saveSamSyndicatorTmodel(authInfoSam); tckBusinessSam.saveSamSyndicatorBusiness(authInfoSam); Holder> data = new Holder>(); data.value = new ArrayList(); Subscription sub = new Subscription(); sub.setBrief(false); sub.setExpiresAfter(null); sub.setMaxEntities(null); sub.setNotificationInterval(null); sub.setBindingKey(null); sub.setSubscriptionFilter(new SubscriptionFilter()); sub.getSubscriptionFilter().setGetAssertionStatusReport(new GetAssertionStatusReport()); sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.STATUS_BOTH_INCOMPLETE); data.value.add(sub); tckSubscriptionJoe.subscription.saveSubscription(authInfoJoe, data); AddPublisherAssertions r = new AddPublisherAssertions(); r.setAuthInfo(authInfoJoe); PublisherAssertion pa = new PublisherAssertion(); pa.setFromKey(TckBusiness.JOE_BUSINESS_KEY); pa.setToKey(TckBusiness.SAM_BUSINESS_KEY); pa.setKeyedReference(new KeyedReference()); pa.getKeyedReference().setKeyName("Subsidiary"); pa.getKeyedReference().setKeyValue("parent-child"); pa.getKeyedReference().setTModelKey("uddi:uddi.org:relationships"); r.getPublisherAssertion().add(pa); publicationJoe.addPublisherAssertions(r); //approve it r = new AddPublisherAssertions(); r.setAuthInfo(authInfoSam); r.getPublisherAssertion().add(pa); publicationSam.addPublisherAssertions(r); DeletePublisherAssertions dp = new DeletePublisherAssertions(); dp.setAuthInfo(authInfoJoe); dp.getPublisherAssertion().add(pa); publicationJoe.deletePublisherAssertions(dp); dp = new DeletePublisherAssertions(); dp.setAuthInfo(authInfoSam); dp.getPublisherAssertion().add(pa); //publicationSam.deletePublisherAssertions(dp); GetSubscriptionResults gsr = new GetSubscriptionResults(); gsr.setAuthInfo(authInfoJoe); gsr.setSubscriptionKey(data.value.get(0).getSubscriptionKey()); gsr.setCoveragePeriod(new CoveragePeriod()); GregorianCalendar gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gcal.add(Calendar.HOUR, -1); gsr.getCoveragePeriod().setStartPoint(df.newXMLGregorianCalendar(gcal)); gcal = new GregorianCalendar(); gcal.setTimeInMillis(System.currentTimeMillis()); gsr.getCoveragePeriod().setEndPoint(df.newXMLGregorianCalendar(gcal)); SubscriptionResultsList subscriptionResults = tckSubscriptionJoe.subscription.getSubscriptionResults(gsr); Assert.assertNotNull(subscriptionResults); Assert.assertNull(subscriptionResults.getBusinessList()); Assert.assertNotNull(subscriptionResults.getCoveragePeriod()); Assert.assertNull(subscriptionResults.getServiceList()); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport()); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem()); Assert.assertTrue(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().isEmpty()); /* Assert.assertEquals(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getFromKey(), TckBusiness.JOE_BUSINESS_KEY); Assert.assertEquals(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getToKey(), TckBusiness.SAM_BUSINESS_KEY); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getCompletionStatus()); Assert.assertEquals(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getCompletionStatus(), CompletionStatus.STATUS_BOTH_INCOMPLETE); Assert.assertNotNull(subscriptionResults.getAssertionStatusReport().getAssertionStatusItem().get(0).getKeyedReference());*/ } catch (Exception ex) { HandleException(ex); Assert.fail(ex.getMessage()); } finally { tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe); tckTModelJoe.saveJoePublisherTmodel(authInfoJoe); tckBusinessSam.deleteSamSyndicatorBusiness(authInfoSam); tckTModelSam.deleteSamSyndicatorTmodel(authInfoSam); } } }