You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2013/05/23 03:09:45 UTC
svn commit: r1485524 - in
/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck:
UDDI_080_SubscriptionIntegrationTest.java
UDDI_150_CustodyTransferIntegrationTest.java
Author: alexoree
Date: Thu May 23 01:09:45 2013
New Revision: 1485524
URL: http://svn.apache.org/r1485524
Log:
JIRA JUDDI-606 closed
JIRA JUDDI-256 closed
Added:
juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_150_CustodyTransferIntegrationTest.java
Modified:
juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_080_SubscriptionIntegrationTest.java
Modified: juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_080_SubscriptionIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_080_SubscriptionIntegrationTest.java?rev=1485524&r1=1485523&r2=1485524&view=diff
==============================================================================
--- juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_080_SubscriptionIntegrationTest.java (original)
+++ juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_080_SubscriptionIntegrationTest.java Thu May 23 01:09:45 2013
@@ -14,15 +14,31 @@
*/
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.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.BeforeClass;
import org.junit.Test;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.FindService;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.SaveBusiness;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionFilter;
import org.uddi.v3_service.UDDIInquiryPortType;
import org.uddi.v3_service.UDDIPublicationPortType;
import org.uddi.v3_service.UDDISecurityPortType;
@@ -32,127 +48,405 @@ import org.uddi.v3_service.UDDISubscript
* @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
* @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
*/
-public class UDDI_080_SubscriptionIntegrationTest
-{
- private static Log logger = LogFactory.getLog(UDDI_080_SubscriptionIntegrationTest.class);
-
- private static TckTModel tckTModel = null;
- private static TckBusiness tckBusiness = null;
- private static TckBusinessService tckBusinessService = null;
- private static TckBindingTemplate tckBindingTemplate = null;
- private static TckSubscription tckSubscription = null;
-
- private static String authInfoJoe = null;
- private static String authInfoSam = null;
- private static UDDIClient manager;
-
- @AfterClass
- public static void stopManager() throws ConfigurationException {
- manager.stop();
- }
-
- @BeforeClass
- public static void startManager() throws ConfigurationException {
- manager = new UDDIClient();
- manager.start();
-
- logger.debug("Getting auth tokens..");
- try {
- Transport transport = manager.getTransport();
- 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();
-
- UDDIPublicationPortType publication = transport.getUDDIPublishService();
- UDDIInquiryPortType inquiry = transport.getUDDIInquiryService();
- tckTModel = new TckTModel(publication, inquiry);
- tckBusiness = new TckBusiness(publication, inquiry);
- tckBusinessService = new TckBusinessService(publication, inquiry);
- tckBindingTemplate = new TckBindingTemplate(publication, inquiry);
-
- tckSubscription = new TckSubscription(subscription, security);
- String authInfoUDDI = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword());
- tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
- tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- Assert.fail("Could not obtain authInfo token.");
- }
- }
-
- @Test
- public void joePublisher() {
- try {
- tckTModel.saveJoePublisherTmodel(authInfoJoe);
- tckBusiness.saveJoePublisherBusiness(authInfoJoe);
- tckBusinessService.saveJoePublisherService(authInfoJoe);
- tckBindingTemplate.saveJoePublisherBinding(authInfoJoe);
- tckSubscription.saveJoePublisherSubscription(authInfoJoe);
- tckSubscription.getJoePublisherSubscriptionResults(authInfoJoe);
- }
- finally {
- tckSubscription.deleteJoePublisherSubscription(authInfoJoe);
- tckBindingTemplate.deleteJoePublisherBinding(authInfoJoe);
- tckBusinessService.deleteJoePublisherService(authInfoJoe);
- tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
- tckTModel.deleteJoePublisherTmodel(authInfoJoe);
- }
- }
-
- @Test
- public void samSyndicator() {
- try {
- tckTModel.saveSamSyndicatorTmodel(authInfoSam);
- tckBusiness.saveSamSyndicatorBusiness(authInfoSam);
- tckBusinessService.saveSamSyndicatorService(authInfoSam);
- tckSubscription.saveSamSyndicatorSubscription(authInfoSam);
- tckSubscription.getSamSyndicatorSubscriptionResults(authInfoSam);
- }
- finally {
- tckSubscription.deleteSamSyndicatorSubscription(authInfoSam);
- tckBusinessService.deleteSamSyndicatorService(authInfoSam);
- tckBusiness.deleteSamSyndicatorBusiness(authInfoSam);
- tckTModel.deleteSamSyndicatorTmodel(authInfoSam);
- }
-
- }
-
- @Test
- public void samSyndicatorWithChunkingOnFind() {
- try {
- tckTModel.saveSamSyndicatorTmodel(authInfoSam);
- tckBusiness.saveSamSyndicatorBusiness(authInfoSam);
- tckBusinessService.saveSamSyndicatorService(authInfoSam);
- tckSubscription.saveSamSyndicatorSubscriptionWithChunkingOnFind(authInfoSam);
- tckSubscription.getSamSyndicatorSubscriptionResultsWithChunkingOnFind(authInfoSam);
- }
- finally {
- tckSubscription.deleteSamSyndicatorSubscriptionWithChunkingOnFind(authInfoSam);
- tckBusinessService.deleteSamSyndicatorService(authInfoSam);
- tckBusiness.deleteSamSyndicatorBusiness(authInfoSam);
- tckTModel.deleteSamSyndicatorTmodel(authInfoSam);
- }
-
- }
-
- @Test
- public void samSyndicatorWithChunkingOnGet() {
- try {
- tckTModel.saveSamSyndicatorTmodel(authInfoSam);
- tckBusiness.saveSamSyndicatorBusiness(authInfoSam);
- tckBusinessService.saveSamSyndicatorService(authInfoSam);
- tckSubscription.saveSamSyndicatorSubscriptionWithChunkingOnGet(authInfoSam);
- tckSubscription.getSamSyndicatorSubscriptionResultsWithChunkingOnGet(authInfoSam);
- }
- finally {
- tckSubscription.deleteSamSyndicatorSubscriptionWithChunkingOnGet(authInfoSam);
- tckBusinessService.deleteSamSyndicatorService(authInfoSam);
- tckBusiness.deleteSamSyndicatorBusiness(authInfoSam);
- tckTModel.deleteSamSyndicatorTmodel(authInfoSam);
- }
-
- }
-
+public class UDDI_080_SubscriptionIntegrationTest {
+
+ private static Log logger = LogFactory.getLog(UDDI_080_SubscriptionIntegrationTest.class);
+ private static TckTModel tckTModel = null;
+ private static TckBusiness tckBusiness = null;
+ private static TckBusinessService tckBusinessService = null;
+ private static TckBindingTemplate tckBindingTemplate = null;
+ private static TckSubscription tckSubscription = null;
+ private static String authInfoJoe = null;
+ private static String authInfoSam = null;
+ private static UDDIClient manager;
+ static UDDIPublicationPortType publication = null;
+
+ @AfterClass
+ public static void stopManager() throws ConfigurationException {
+ manager.stop();
+ }
+
+ @BeforeClass
+ public static void startManager() throws ConfigurationException {
+ manager = new UDDIClient();
+ manager.start();
+
+ logger.debug("Getting auth tokens..");
+ try {
+ Transport transport = manager.getTransport();
+ 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();
+
+ publication = transport.getUDDIPublishService();
+ UDDIInquiryPortType inquiry = transport.getUDDIInquiryService();
+ tckTModel = new TckTModel(publication, inquiry);
+ tckBusiness = new TckBusiness(publication, inquiry);
+ tckBusinessService = new TckBusinessService(publication, inquiry);
+ tckBindingTemplate = new TckBindingTemplate(publication, inquiry);
+
+ tckSubscription = new TckSubscription(subscription, security);
+ String authInfoUDDI = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword());
+ tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
+ tckTModel.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() {
+ try {
+ tckTModel.saveJoePublisherTmodel(authInfoJoe);
+ tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+ tckBusinessService.saveJoePublisherService(authInfoJoe);
+ tckBindingTemplate.saveJoePublisherBinding(authInfoJoe);
+ tckSubscription.saveJoePublisherSubscription(authInfoJoe);
+ tckSubscription.getJoePublisherSubscriptionResults(authInfoJoe);
+ } finally {
+ tckSubscription.deleteJoePublisherSubscription(authInfoJoe);
+ tckBindingTemplate.deleteJoePublisherBinding(authInfoJoe);
+ tckBusinessService.deleteJoePublisherService(authInfoJoe);
+ tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+ tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+ }
+ }
+
+ @Test
+ public void samSyndicator() {
+ try {
+ tckTModel.saveSamSyndicatorTmodel(authInfoSam);
+ tckBusiness.saveSamSyndicatorBusiness(authInfoSam);
+ tckBusinessService.saveSamSyndicatorService(authInfoSam);
+ tckSubscription.saveSamSyndicatorSubscription(authInfoSam);
+ tckSubscription.getSamSyndicatorSubscriptionResults(authInfoSam);
+ } finally {
+ tckSubscription.deleteSamSyndicatorSubscription(authInfoSam);
+ tckBusinessService.deleteSamSyndicatorService(authInfoSam);
+ tckBusiness.deleteSamSyndicatorBusiness(authInfoSam);
+ tckTModel.deleteSamSyndicatorTmodel(authInfoSam);
+ }
+
+ }
+
+ @Test
+ public void samSyndicatorWithChunkingOnFind() {
+ try {
+ tckTModel.saveSamSyndicatorTmodel(authInfoSam);
+ tckBusiness.saveSamSyndicatorBusiness(authInfoSam);
+ tckBusinessService.saveSamSyndicatorService(authInfoSam);
+ tckSubscription.saveSamSyndicatorSubscriptionWithChunkingOnFind(authInfoSam);
+ tckSubscription.getSamSyndicatorSubscriptionResultsWithChunkingOnFind(authInfoSam);
+ } finally {
+ tckSubscription.deleteSamSyndicatorSubscriptionWithChunkingOnFind(authInfoSam);
+ tckBusinessService.deleteSamSyndicatorService(authInfoSam);
+ tckBusiness.deleteSamSyndicatorBusiness(authInfoSam);
+ tckTModel.deleteSamSyndicatorTmodel(authInfoSam);
+ }
+
+ }
+
+ @Test
+ public void samSyndicatorWithChunkingOnGet() {
+ try {
+ tckTModel.saveSamSyndicatorTmodel(authInfoSam);
+ tckBusiness.saveSamSyndicatorBusiness(authInfoSam);
+ tckBusinessService.saveSamSyndicatorService(authInfoSam);
+ tckSubscription.saveSamSyndicatorSubscriptionWithChunkingOnGet(authInfoSam);
+ tckSubscription.getSamSyndicatorSubscriptionResultsWithChunkingOnGet(authInfoSam);
+ } finally {
+ tckSubscription.deleteSamSyndicatorSubscriptionWithChunkingOnGet(authInfoSam);
+ tckBusinessService.deleteSamSyndicatorService(authInfoSam);
+ tckBusiness.deleteSamSyndicatorBusiness(authInfoSam);
+ tckTModel.deleteSamSyndicatorTmodel(authInfoSam);
+ }
+
+ }
+
+ /**
+ * Null expiration time
+ */
+ @Test
+ public void JUDDI_606_1() {
+ // 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 {
+ tckSubscription.subscription.saveSubscription(authInfoJoe, data);
+ Assert.assertNotNull(data.value.get(0).getExpiresAfter());
+ } catch (Exception ex) {
+ HandleException(ex);
+ Assert.fail();
+ }
+ }
+
+ @Test
+ public void JUDDI_606_2() throws DatatypeConfigurationException {
+ // 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 {
+ tckSubscription.subscription.saveSubscription(authInfoJoe, data);
+ Assert.fail();
+ } catch (Exception ex) {
+ //HandleException(ex);
+ }
+ }
+
+ @Test
+ public void JUDDI_606_3() {
+ //confirm a subscription key is returned when not specified
+
+ 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 {
+ tckSubscription.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);
+ }
+ }
+
+ @Test
+ public void JUDDI_606_4() {
+ //null subscription filter
+
+ 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 {
+ tckSubscription.subscription.saveSubscription(authInfoJoe, data);
+ Assert.fail();
+ } catch (Exception ex) {
+ //HandleException(ex);
+ }
+ }
+
+ @Test
+ public void JUDDI_606_5() {
+ //empty subscription filter
+
+ 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 {
+ tckSubscription.subscription.saveSubscription(authInfoJoe, data);
+ Assert.fail();
+ } catch (Exception ex) {
+ //HandleException(ex);
+ }
+ }
+
+ @Test
+ public void JUDDI_606_6() {
+ //negative max entities
+
+ 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 {
+ tckSubscription.subscription.saveSubscription(authInfoJoe, data);
+ Assert.assertTrue(data.value.get(0).getMaxEntities() > 0);
+ } catch (Exception ex) {
+ //HandleException(ex);
+ //this is ok as well
+ }
+ }
+
+ @Test
+ public void JUDDI_606_7() {
+ //minimal settings
+ }
+
+ @Test
+ public void JUDDI_606_8() {
+ //reset expiration
+
+ 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);
+
+ tckSubscription.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);
+ tckSubscription.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();
+ }
+ }
+
+ @Test
+ public void JUDDI_606_9() throws DatatypeConfigurationException {
+ //asynch subscriptions , key doesn't exist
+
+ 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);
+
+ tckSubscription.subscription.saveSubscription(authInfoJoe, data);
+ Assert.fail();
+ } catch (Exception ex) {
+ HandleException(ex);
+ //Assert.fail();
+ }
+ }
+
+ @Test
+ public void JUDDI_606_10() throws DatatypeConfigurationException {
+ //asynch subscriptions, key exists , null interval
+
+ 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(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);
+
+ tckSubscription.subscription.saveSubscription(authInfoJoe, data);
+ } catch (Exception ex) {
+ HandleException(ex);
+ Assert.fail();
+ }
+ }
+
}
Added: juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_150_CustodyTransferIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_150_CustodyTransferIntegrationTest.java?rev=1485524&view=auto
==============================================================================
--- juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_150_CustodyTransferIntegrationTest.java (added)
+++ juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_150_CustodyTransferIntegrationTest.java Thu May 23 01:09:45 2013
@@ -0,0 +1,404 @@
+/*
+ * 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.GregorianCalendar;
+import java.util.UUID;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import javax.xml.soap.SOAPFault;
+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.config.UDDIClient;
+import org.apache.juddi.v3.client.transport.Transport;
+import org.apache.juddi.v3.tck.TckPublisher;
+import org.apache.juddi.v3.tck.TckSecurity;
+import org.apache.juddi.v3.tck.TckTModel;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.uddi.api_v3.AccessPoint;
+import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.BindingTemplates;
+import org.uddi.api_v3.BusinessDetail;
+import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.BusinessService;
+import org.uddi.api_v3.BusinessServices;
+import org.uddi.api_v3.GetOperationalInfo;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.OperationalInfos;
+import org.uddi.api_v3.SaveBusiness;
+import org.uddi.custody_v3.KeyBag;
+import org.uddi.custody_v3.TransferEntities;
+import org.uddi.custody_v3.TransferToken;
+import org.uddi.v3_service.UDDICustodyTransferPortType;
+import org.uddi.v3_service.UDDIInquiryPortType;
+import org.uddi.v3_service.UDDIPublicationPortType;
+import org.uddi.v3_service.UDDISecurityPortType;
+
+/**
+ * This test class provides test cases of items discovered or reported through
+ * the Juddi JIRA issue tracker The idea is that these tests apply to any UDDI
+ * registry and that the tests are either implied or derived requirements
+ * defined in the UDDI spec that were missed in other test cases for Juddi.
+ *
+ * @author Alex O'Ree
+ */
+public class UDDI_150_CustodyTransferIntegrationTest {
+
+ private static Log logger = LogFactory.getLog(UDDI_150_CustodyTransferIntegrationTest.class);
+ static UDDISecurityPortType security = null;
+ static UDDIInquiryPortType inquiry = null;
+ static UDDIPublicationPortType publish = null;
+ static UDDICustodyTransferPortType custodyTransferPortType = null;
+ static TckTModel tckTModel = null;
+ protected static String authInfoJoe = null;
+ protected static String authInfoSam = null;
+ private static UDDIClient manager;
+ static final String str256 = "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
+ static final String str255 = "uddi:tmodelkey:categories:1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
+ static final String strkey256 = "uddi:tmodelkey:categories:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
+ static final String strkey256_1 = "uddi:org.apache:omething.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.something.somethi.com";
+ static final String str26 = "11111111111111111111111111";
+ static final String str27 = "111111111111111111111111110";
+ static final String str10 = "0123456789";
+ static final String str11 = "01234567890";
+ static final String str80 = "01234567890123456789012345678901234567890123456789012345678901234567890123456789";
+ static final String str81 = "012345678901234567890123456789012345678901234567890123456789012345678901234567891";
+ static final String TRANS = "The transaction has been rolled back";
+ static final String str4096 = "123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXX";
+ static final String str4097 = "123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXXZ";
+ static final String str51 = "111111111111111111111111111111111111111111111111111";
+ static final String str50 = "11111111111111111111111111111111111111111111111111";
+ static final String MISSING_RESOURCE = "Can't find resource for bundle";
+
+ @AfterClass
+ public static void stopManager() throws ConfigurationException {
+ manager.stop();
+ }
+
+ @BeforeClass
+ public static void startManager() throws ConfigurationException {
+ manager = new UDDIClient();
+ manager.start();
+
+ logger.debug("Getting auth tokens..");
+ try {
+ Transport transport = manager.getTransport();
+ security = transport.getUDDISecurityService();
+ authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
+ authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+ Assert.assertNotNull(authInfoJoe);
+ Assert.assertNotNull(authInfoSam);
+
+ publish = transport.getUDDIPublishService();
+ inquiry = transport.getUDDIInquiryService();
+ custodyTransferPortType = transport.getUDDICustodyTransferService();
+ tckTModel = new TckTModel(publish, inquiry);
+
+
+ String authInfoUDDI = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword());
+ tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
+ tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
+ tckTModel.saveJoePublisherTmodel(authInfoJoe);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ Assert.fail("Could not obtain authInfo token.");
+ }
+ }
+
+ static void HandleException(Exception ex) {
+ System.err.println("Error caught of type " + ex.getClass().getCanonicalName());
+ ex.printStackTrace();
+ if (ex.getMessage() != null) {
+ Assert.assertFalse(ex.getMessage().contains(TRANS));
+ Assert.assertFalse(ex.getMessage().contains(MISSING_RESOURCE));
+ }
+ if (ex instanceof SOAPFault) {
+ SOAPFault sf = (SOAPFault) ex;
+ if (!sf.getTextContent().contains("org.apache.juddi.v3.error.ValueNotAllowedException")) {
+ Assert.fail();
+ }
+ }
+ }
+
+ /**
+ * tests a user to user transfer on the same node
+ *
+ * @throws Exception
+ */
+ @Test
+ public void ValidTransfer() throws Exception {
+ DatatypeFactory df = DatatypeFactory.newInstance();
+ GregorianCalendar gcal = new GregorianCalendar();
+ gcal.setTimeInMillis(System.currentTimeMillis());
+ XMLGregorianCalendar xcal = df.newXMLGregorianCalendar(gcal);
+
+
+ BusinessEntity myBusEntity = new BusinessEntity();
+ Name myBusName = new Name();
+ myBusName.setLang("en");
+ myBusName.setValue("UDDI's Business" + " " + xcal.toString());
+ myBusEntity.getName().add(myBusName);
+ myBusEntity.setBusinessServices(new BusinessServices());
+ myBusEntity.getBusinessServices().getBusinessService().add(CreateBusiness("UDDI"));
+ SaveBusiness sb = new SaveBusiness();
+ sb.getBusinessEntity().add(myBusEntity);
+ sb.setAuthInfo(authInfoJoe);
+ BusinessDetail bd = publish.saveBusiness(sb);
+
+ String keyJoeBiz = bd.getBusinessEntity().get(0).getBusinessKey();
+ //String keyJoeBizSvc = bd.getBusinessEntity().get(0).getBusinessServices().getBusinessService().get(0).getServiceKey();
+
+
+
+ myBusEntity = new BusinessEntity();
+ myBusName = new Name();
+ myBusName.setLang("en");
+ myBusName.setValue("Root's Business" + " " + xcal.toString());
+ myBusEntity.getName().add(myBusName);
+ myBusEntity.setBusinessServices(new BusinessServices());
+ myBusEntity.getBusinessServices().getBusinessService().add(CreateBusiness("root"));
+ sb = new SaveBusiness();
+ sb.getBusinessEntity().add(myBusEntity);
+ sb.setAuthInfo(authInfoSam);
+ bd = publish.saveBusiness(sb);
+
+ String keySamBiz = bd.getBusinessEntity().get(0).getBusinessKey();
+ //String keySamBizSvc = bd.getBusinessEntity().get(0).getBusinessServices().getBusinessService().get(0).getServiceKey();
+
+ //transfers from Joe to Sam
+ KeyBag kb = new KeyBag();
+ kb.getKey().add(keyJoeBiz);
+
+ Holder<String> nodeidOUT = new Holder<String>();
+ Holder<XMLGregorianCalendar> expiresOUT = new Holder<XMLGregorianCalendar>();
+ Holder<byte[]> tokenOUT = new Holder<byte[]>();
+ custodyTransferPortType.getTransferToken(authInfoJoe, kb, nodeidOUT, expiresOUT, tokenOUT);
+
+ //sam accepts
+ TransferEntities te = new TransferEntities();
+ te.setAuthInfo(authInfoSam);
+ te.setKeyBag(kb);
+ TransferToken tt = new TransferToken();
+ tt.setExpirationTime(expiresOUT.value);
+ tt.setNodeID(nodeidOUT.value);
+ tt.setOpaqueToken(tokenOUT.value);
+ te.setTransferToken(tt);
+
+ custodyTransferPortType.transferEntities(te);
+
+ //confirm the transfer
+ GetOperationalInfo go = new GetOperationalInfo();
+ go.setAuthInfo(authInfoSam);
+ go.getEntityKey().add(keySamBiz);
+ go.getEntityKey().add(keyJoeBiz);
+ OperationalInfos operationalInfo = inquiry.getOperationalInfo(go);
+ boolean ok = false;
+ for (int i = 0; i < operationalInfo.getOperationalInfo().size(); i++) {
+ if (operationalInfo.getOperationalInfo().get(i).getEntityKey().equalsIgnoreCase(keyJoeBiz)) {
+ Assert.assertEquals(operationalInfo.getOperationalInfo().get(i).getAuthorizedName(), (TckPublisher.getSamPublisherId()));
+
+ }
+ }
+ System.out.println("Business Entity transfered successfull");
+
+
+ }
+
+ private BusinessService CreateBusiness(String root) {
+ BusinessService bs = new BusinessService();
+ bs.getName().add(new Name());
+ bs.getName().get(0).setValue(root + "'s callback endpoint");
+ bs.setBindingTemplates(new BindingTemplates());
+ BindingTemplate bt = new BindingTemplate();
+ bt.setAccessPoint(new AccessPoint());
+ bt.getAccessPoint().setValue("http://localhost:9999/" + root);
+ bt.getAccessPoint().setUseType("endPoint");
+ bs.getBindingTemplates().getBindingTemplate().add(bt);
+ return bs;
+ }
+
+ @Test
+ public void InvalidTransferTokenNullKeybag() {
+ try {
+ //transfers from Joe to Sam
+ KeyBag kb = null;
+
+ Holder<String> nodeidOUT = new Holder<String>();
+ Holder<XMLGregorianCalendar> expiresOUT = new Holder<XMLGregorianCalendar>();
+ Holder<byte[]> tokenOUT = new Holder<byte[]>();
+ custodyTransferPortType.getTransferToken(authInfoJoe, kb, nodeidOUT, expiresOUT, tokenOUT);
+ Assert.fail();
+ } catch (Exception ex) {
+ HandleException(ex);
+ }
+
+ }
+
+ @Test
+ public void InvalidTransferTokenEmptyKeybag() {
+ try {
+ //transfers from Joe to Sam
+ KeyBag kb = new KeyBag();
+ //kb.getKey().add(keyJoeBiz);
+
+ Holder<String> nodeidOUT = new Holder<String>();
+ Holder<XMLGregorianCalendar> expiresOUT = new Holder<XMLGregorianCalendar>();
+ Holder<byte[]> tokenOUT = new Holder<byte[]>();
+ custodyTransferPortType.getTransferToken(authInfoJoe, kb, nodeidOUT, expiresOUT, tokenOUT);
+
+ Assert.fail();
+ } catch (Exception ex) {
+ HandleException(ex);
+ }
+
+ }
+
+ @Test
+ public void InvalidTransferTokenEmptyNullAuthToken() {
+ try {
+ DatatypeFactory df = DatatypeFactory.newInstance();
+ GregorianCalendar gcal = new GregorianCalendar();
+ gcal.setTimeInMillis(System.currentTimeMillis());
+ XMLGregorianCalendar xcal = df.newXMLGregorianCalendar(gcal);
+
+
+ BusinessEntity myBusEntity = new BusinessEntity();
+ Name myBusName = new Name();
+ myBusName.setLang("en");
+ myBusName.setValue("UDDI's Business" + " " + xcal.toString());
+ myBusEntity.getName().add(myBusName);
+ myBusEntity.setBusinessServices(new BusinessServices());
+ myBusEntity.getBusinessServices().getBusinessService().add(CreateBusiness("UDDI"));
+ SaveBusiness sb = new SaveBusiness();
+ sb.getBusinessEntity().add(myBusEntity);
+ sb.setAuthInfo(authInfoJoe);
+ BusinessDetail bd = publish.saveBusiness(sb);
+
+ String keyJoeBiz = bd.getBusinessEntity().get(0).getBusinessKey();
+
+ //transfers from Joe to Sam
+ KeyBag kb = new KeyBag();
+ kb.getKey().add(keyJoeBiz);
+
+ Holder<String> nodeidOUT = new Holder<String>();
+ Holder<XMLGregorianCalendar> expiresOUT = new Holder<XMLGregorianCalendar>();
+ Holder<byte[]> tokenOUT = new Holder<byte[]>();
+ custodyTransferPortType.getTransferToken(null, kb, nodeidOUT, expiresOUT, tokenOUT);
+
+ Assert.fail();
+ } catch (Exception ex) {
+ HandleException(ex);
+ }
+
+ }
+
+ @Test
+ public void InvalidTransferTokenModified() {
+ try {
+ DatatypeFactory df = DatatypeFactory.newInstance();
+ GregorianCalendar gcal = new GregorianCalendar();
+ gcal.setTimeInMillis(System.currentTimeMillis());
+ XMLGregorianCalendar xcal = df.newXMLGregorianCalendar(gcal);
+
+
+ BusinessEntity myBusEntity = new BusinessEntity();
+ Name myBusName = new Name();
+ myBusName.setLang("en");
+ myBusName.setValue("UDDI's Business" + " " + xcal.toString());
+ myBusEntity.getName().add(myBusName);
+ myBusEntity.setBusinessServices(new BusinessServices());
+ myBusEntity.getBusinessServices().getBusinessService().add(CreateBusiness("UDDI"));
+ SaveBusiness sb = new SaveBusiness();
+ sb.getBusinessEntity().add(myBusEntity);
+ sb.setAuthInfo(authInfoJoe);
+ BusinessDetail bd = publish.saveBusiness(sb);
+
+ String keyJoeBiz = bd.getBusinessEntity().get(0).getBusinessKey();
+ //String keyJoeBizSvc = bd.getBusinessEntity().get(0).getBusinessServices().getBusinessService().get(0).getServiceKey();
+
+
+
+ myBusEntity = new BusinessEntity();
+ myBusName = new Name();
+ myBusName.setLang("en");
+ myBusName.setValue("Root's Business" + " " + xcal.toString());
+ myBusEntity.getName().add(myBusName);
+ myBusEntity.setBusinessServices(new BusinessServices());
+ myBusEntity.getBusinessServices().getBusinessService().add(CreateBusiness("root"));
+ sb = new SaveBusiness();
+ sb.getBusinessEntity().add(myBusEntity);
+ sb.setAuthInfo(authInfoSam);
+ bd = publish.saveBusiness(sb);
+
+ String keySamBiz = bd.getBusinessEntity().get(0).getBusinessKey();
+ //String keySamBizSvc = bd.getBusinessEntity().get(0).getBusinessServices().getBusinessService().get(0).getServiceKey();
+
+ //transfers from Joe to Sam
+ KeyBag kb = new KeyBag();
+ kb.getKey().add(keyJoeBiz);
+
+ Holder<String> nodeidOUT = new Holder<String>();
+ Holder<XMLGregorianCalendar> expiresOUT = new Holder<XMLGregorianCalendar>();
+ Holder<byte[]> tokenOUT = new Holder<byte[]>();
+ custodyTransferPortType.getTransferToken(authInfoJoe, kb, nodeidOUT, expiresOUT, tokenOUT);
+
+
+ //sam accepts
+ TransferEntities te = new TransferEntities();
+ te.setAuthInfo(authInfoSam);
+ te.setKeyBag(kb);
+ te.getKeyBag().getKey().add("uddi:uddi.joepublisher.com:" + UUID.randomUUID().toString());
+ TransferToken tt = new TransferToken();
+ tt.setExpirationTime(expiresOUT.value);
+ tt.setNodeID(nodeidOUT.value);
+ tt.setOpaqueToken(tokenOUT.value);
+ te.setTransferToken(tt);
+
+ custodyTransferPortType.transferEntities(te);
+ Assert.fail();
+ } catch (Exception ex) {
+ HandleException(ex);
+ }
+
+ }
+
+ @Test
+ public void InvalidTransferTokenServiceDoesntExist() throws Exception {
+ try {
+ //transfers from Joe to Sam
+ KeyBag kb = new KeyBag();
+ kb.getKey().add("uddi:uddi.joepublisher.com:" + UUID.randomUUID().toString());
+
+ Holder<String> nodeidOUT = new Holder<String>();
+ Holder<XMLGregorianCalendar> expiresOUT = new Holder<XMLGregorianCalendar>();
+ Holder<byte[]> tokenOUT = new Holder<byte[]>();
+ custodyTransferPortType.getTransferToken(authInfoJoe, kb, nodeidOUT, expiresOUT, tokenOUT);
+ Assert.fail();
+ } catch (Exception ex) {
+ HandleException(ex);
+ }
+ }
+
+ @Test
+ public void ExpiredTransferToken() {
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org