blob: f2013e1c965d44d895e350c5e1f3f2914d6ccea8 [file] [log] [blame]
/*
* 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 <a href="mailto:jfaath@apache.org">Jeff Faath</a>
* @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
* @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
*/
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 {
if (!TckPublisher.isEnabled()) return;
tckTModelJoe.deleteCreatedTModels(authInfoJoe);
tckTModelSam.deleteCreatedTModels(authInfoSam);
manager.stop();
}
@BeforeClass
public static void startManager() throws ConfigurationException {
if (!TckPublisher.isEnabled()) return;
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.");
}
JUDDI_300_MultiNodeIntegrationTest.testSetupReplicationConfig();
}
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) {
logger.error("Error caught of type " + ex.getClass().getCanonicalName(),ex);
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() throws Exception {
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());
logger.info("JUDDI_606_1");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
// Null expiration time
Subscription sub = new Subscription();
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("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<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_3");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
//
Subscription sub = new Subscription();
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_4");
//
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
Subscription sub = new Subscription();
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_5");
//
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
Subscription sub = new Subscription();
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_6");
//
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
Subscription sub = new Subscription();
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_7");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
//
DatatypeFactory df = DatatypeFactory.newInstance();
try {
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_8");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
//
try {
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_9");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
//
DatatypeFactory df = DatatypeFactory.newInstance();
try {
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_10");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
//
try {
tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe);
tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe);
tckBindingTemplateJoe.saveJoePublisherBinding(authInfoJoe);
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_11");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
String key = null;
DatatypeFactory df = DatatypeFactory.newInstance();
try {
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_12");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
//
String key = null;
try {
tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe);
tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe);
tckBindingTemplateJoe.saveJoePublisherBinding(authInfoJoe);
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_13");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
String key = null;
DatatypeFactory df = DatatypeFactory.newInstance();
try {
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("JUDDI_606_14");
Assume.assumeTrue(TckPublisher.isSubscriptionEnabled());
DatatypeFactory df = DatatypeFactory.newInstance();
try {
Holder<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("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<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("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<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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());
logger.info("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<List<Subscription>> data = new Holder<List<Subscription>>();
data.value = new ArrayList<Subscription>();
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);
}
}
}