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/12/12 01:27:32 UTC

svn commit: r1550327 [8/8] - in /juddi/branches/juddi-3.3.x: ./ juddi-client/src/main/java/org/apache/juddi/v3/client/config/ juddi-client/src/test/java/org/apache/juddi/v3/client/mapping/ juddi-core/src/main/java/org/apache/juddi/validation/ juddi-cor...

Modified: juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_150_CustodyTransferIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_150_CustodyTransferIntegrationTest.java?rev=1550327&r1=1550326&r2=1550327&view=diff
==============================================================================
--- juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_150_CustodyTransferIntegrationTest.java (original)
+++ juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_150_CustodyTransferIntegrationTest.java Thu Dec 12 00:27:31 2013
@@ -20,6 +20,7 @@ import javax.xml.datatype.DatatypeFactor
 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;
@@ -30,6 +31,7 @@ import org.apache.juddi.v3.client.transp
 import org.apache.juddi.v3.tck.TckPublisher;
 import org.apache.juddi.v3.tck.TckSecurity;
 import org.apache.juddi.v3.tck.TckTModel;
+import static org.apache.juddi.v3.tck.UDDI_141_JIRAIntegrationTest.publicationJoe;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -63,343 +65,374 @@ import org.uddi.v3_service.UDDISecurityP
  */
 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 = "12345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXX";
-    static final String str4097 = "12345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXXZ";
-    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() {
-        //TODO
-    }
+        private static Log logger = LogFactory.getLog(UDDI_150_CustodyTransferIntegrationTest.class);
+        static UDDISecurityPortType security = null;
+        static UDDIInquiryPortType inquiryJoe = null;
+        static UDDIPublicationPortType publishJoe = null;
+        static UDDICustodyTransferPortType custodyTransferPortTypeJoe = null;
+        static TckTModel tckTModelJoe = null;
+        static UDDIInquiryPortType inquirySam = null;
+        static UDDIPublicationPortType publishSam = null;
+        static UDDICustodyTransferPortType custodyTransferPortTypeSam = 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 = "1234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXX";
+        static final String str4097 = "1234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXXZ";
+        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);
+
+
+                        publishJoe = transport.getUDDIPublishService();
+                        inquiryJoe = transport.getUDDIInquiryService();
+                        custodyTransferPortTypeJoe = transport.getUDDICustodyTransferService();
+
+                        if (!TckPublisher.isUDDIAuthMode()) {
+                                TckSecurity.setCredentials((BindingProvider) publicationJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
+                                TckSecurity.setCredentials((BindingProvider) inquiryJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
+                                TckSecurity.setCredentials((BindingProvider) custodyTransferPortTypeJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
+                        }
+
+                        tckTModelJoe = new TckTModel(publishJoe, inquiryJoe);
+
+                        transport = manager.getTransport();
+                        publishSam = transport.getUDDIPublishService();
+                        inquirySam = transport.getUDDIInquiryService();
+                        custodyTransferPortTypeSam = transport.getUDDICustodyTransferService();
+                        if (!TckPublisher.isUDDIAuthMode()) {
+                                TckSecurity.setCredentials((BindingProvider) publicationJoe, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+                                TckSecurity.setCredentials((BindingProvider) inquiryJoe, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+                                TckSecurity.setCredentials((BindingProvider) custodyTransferPortTypeJoe, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+                        }
+                        
+                        transport = manager.getTransport();
+                        UDDIPublicationPortType uddiPublishService = transport.getUDDIPublishService();
+                        UDDIInquiryPortType uddiInquiryService = transport.getUDDIInquiryService();
+                        if (!TckPublisher.isUDDIAuthMode()) {
+                                TckSecurity.setCredentials((BindingProvider) publicationJoe, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+                                TckSecurity.setCredentials((BindingProvider) inquiryJoe, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+                                TckSecurity.setCredentials((BindingProvider) custodyTransferPortTypeJoe, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+                        }
+
+                        TckTModel tckTModelUDDI= new TckTModel(uddiPublishService, uddiInquiryService);
+                        String authInfoUDDI = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword());
+                        tckTModelUDDI.saveUDDIPublisherTmodel(authInfoUDDI);
+                        tckTModelUDDI.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
+
+                        tckTModelJoe.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 = publishJoe.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 = publishSam.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[]>();
+                custodyTransferPortTypeJoe.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);
+
+                custodyTransferPortTypeSam.transferEntities(te);
+
+                //confirm the transfer
+                GetOperationalInfo go = new GetOperationalInfo();
+                go.setAuthInfo(authInfoSam);
+                go.getEntityKey().add(keySamBiz);
+                go.getEntityKey().add(keyJoeBiz);
+                OperationalInfos operationalInfo = inquirySam.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[]>();
+                        custodyTransferPortTypeJoe.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[]>();
+                        custodyTransferPortTypeJoe.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 = publishJoe.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[]>();
+                        custodyTransferPortTypeJoe.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 = publishJoe.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 = publishSam.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[]>();
+                        custodyTransferPortTypeJoe.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);
+
+                        custodyTransferPortTypeSam.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[]>();
+                        custodyTransferPortTypeJoe.getTransferToken(authInfoJoe, kb, nodeidOUT, expiresOUT, tokenOUT);
+                        Assert.fail();
+                } catch (Exception ex) {
+                        //HandleException(ex);
+                }
+        }
+
+        @Test
+        public void ExpiredTransferToken() {
+                //TODO
+        }
 }

Copied: juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_160_RESTIntergrationTest.java (from r1549359, juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_020_RESTIntergrationTest.java)
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_160_RESTIntergrationTest.java?p2=juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_160_RESTIntergrationTest.java&p1=juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_020_RESTIntergrationTest.java&r1=1549359&r2=1550327&rev=1550327&view=diff
==============================================================================
--- juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_020_RESTIntergrationTest.java (original)
+++ juddi/branches/juddi-3.3.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_160_RESTIntergrationTest.java Thu Dec 12 00:27:31 2013
@@ -15,6 +15,10 @@
  */
 package org.apache.juddi.v3.tck;
 
+import java.rmi.RemoteException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.xml.bind.JAXB;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -22,25 +26,40 @@ import org.apache.http.HttpResponse;
 import org.apache.http.client.HttpClient;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.DefaultHttpClient;
+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.apache.juddi.v3_service.JUDDIApiPortType;
 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.GetAuthToken;
-import org.uddi.v3_service.UDDISecurityPortType;
+import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.BusinessList;
+import org.uddi.api_v3.BusinessService;
+import org.uddi.api_v3.FindBinding;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.FindService;
+import org.uddi.api_v3.FindTModel;
+import org.uddi.api_v3.GetServiceDetail;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.ServiceDetail;
+import org.uddi.api_v3.ServiceList;
+import org.uddi.api_v3.TModel;
+import org.uddi.api_v3.TModelList;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.uddi.v3_service.UDDIInquiryPortType;
 
 /**
+ * Optional HTTP GET, REST style web services for UDDI
  *
  * @author Alex O'Ree
  */
-public class JUDDI_020_RESTIntergrationTest {
+public class UDDI_160_RESTIntergrationTest {
 
-        private static UDDISecurityPortType security = null;
-        private static JUDDIApiPortType publisher = null;
+        private static UDDIInquiryPortType inquiry = null;
         private static Log logger = LogFactory.getLog(JUDDI_100_ClientSubscriptionInfoTest.class);
         private static String authInfo = null;
         private static UDDIClient manager;
@@ -51,18 +70,9 @@ public class JUDDI_020_RESTIntergrationT
                 manager = new UDDIClient();
                 manager.start();
 
-
-                logger.debug("Getting auth tokens..");
                 try {
                         Transport transport = manager.getTransport();
-
-                        security = transport.getUDDISecurityService();
-                        GetAuthToken getAuthToken = new GetAuthToken();
-                        getAuthToken.setUserID(TckPublisher.getRootPublisherId());
-                        getAuthToken.setCred(TckPublisher.getRootPassword());
-                        authInfo = security.getAuthToken(getAuthToken).getAuthInfo();
-
-                        publisher = transport.getJUDDIApiService();
+                        inquiry = transport.getUDDIInquiryService();
                 } catch (Exception e) {
                         logger.error(e.getMessage(), e);
                         Assert.fail("Could not obtain authInfo token.");
@@ -74,13 +84,161 @@ public class JUDDI_020_RESTIntergrationT
                 manager.stop();
         }
 
+        /*@Test
+         public void InquiryREST_WADL_GET() throws Exception {
+         Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());
+
+         String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();
+         Assume.assumeNotNull(url);
+         HttpClient client = new DefaultHttpClient();
+         HttpGet httpGet = new HttpGet(url + "?_wadl");
+         HttpResponse response = client.execute(httpGet);
+         Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);
+
+         }*/
         @Test
-        public void BusinessREST_GET() throws Exception {
+        public void InquiryREST_GET_Business() throws Exception {
+                Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());
+                FindBusiness fb = new FindBusiness();
+                fb.setMaxRows(1);
+                fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                fb.setFindQualifiers(new FindQualifiers());
+                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                BusinessList findBusiness = inquiry.findBusiness(fb);
+                Assume.assumeTrue(findBusiness != null);
+                Assume.assumeTrue(findBusiness.getBusinessInfos() != null);
+                Assume.assumeTrue(!findBusiness.getBusinessInfos().getBusinessInfo().isEmpty());
+
                 String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();
+
                 Assume.assumeNotNull(url);
                 HttpClient client = new DefaultHttpClient();
-                HttpGet httpGet = new HttpGet(url + "?wadl");
+                HttpGet httpGet = new HttpGet(url + "businessKey?" + findBusiness.getBusinessInfos().getBusinessInfo().get(0).getBusinessKey());
                 HttpResponse response = client.execute(httpGet);
+                Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);
+                BusinessEntity unmarshal = JAXB.unmarshal(response.getEntity().getContent(), BusinessEntity.class);
+                Assert.assertNotNull(unmarshal);
+                Assert.assertEquals(unmarshal.getBusinessKey(), findBusiness.getBusinessInfos().getBusinessInfo().get(0).getBusinessKey());
+
+
+        }
+
+        @Test
+        public void InquiryREST_GET_TModel() throws Exception {
+                Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());
+                FindTModel fb = new FindTModel();
+                fb.setMaxRows(1);
+                fb.setName(new Name(UDDIConstants.WILDCARD, null));
+                fb.setFindQualifiers(new FindQualifiers());
+                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                TModelList findTModel = inquiry.findTModel(fb);
+                Assume.assumeTrue(findTModel != null);
+                Assume.assumeTrue(findTModel.getTModelInfos() != null);
+                Assume.assumeTrue(!findTModel.getTModelInfos().getTModelInfo().isEmpty());
+
+                String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();
+
+                Assume.assumeNotNull(url);
+                HttpClient client = new DefaultHttpClient();
+                HttpGet httpGet = new HttpGet(url + "tModelKey?" + findTModel.getTModelInfos().getTModelInfo().get(0).getTModelKey());
+                HttpResponse response = client.execute(httpGet);
+                Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);
+                TModel unmarshal = JAXB.unmarshal(response.getEntity().getContent(), TModel.class);
+                Assert.assertNotNull(unmarshal);
+                Assert.assertEquals(unmarshal.getTModelKey(), findTModel.getTModelInfos().getTModelInfo().get(0).getTModelKey());
+
+
+        }
+
+        @Test
+        public void InquiryREST_GET_Service() throws Exception {
+                Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());
+                FindService fb = new FindService();
+                fb.setMaxRows(1);
+                fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                fb.setFindQualifiers(new FindQualifiers());
+                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                ServiceList findService = inquiry.findService(fb);
+                Assume.assumeTrue(findService != null);
+                Assume.assumeTrue(findService.getServiceInfos() != null);
+                Assume.assumeTrue(!findService.getServiceInfos().getServiceInfo().isEmpty());
+
+                String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();
+
+                Assume.assumeNotNull(url);
+                HttpClient client = new DefaultHttpClient();
+                HttpGet httpGet = new HttpGet(url + "tModelKey?" + findService.getServiceInfos().getServiceInfo().get(0).getServiceKey());
+                HttpResponse response = client.execute(httpGet);
+                Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);
+                BusinessService unmarshal = JAXB.unmarshal(response.getEntity().getContent(), BusinessService.class);
+                Assert.assertNotNull(unmarshal);
+                Assert.assertEquals(unmarshal.getServiceKey(), findService.getServiceInfos().getServiceInfo().get(0).getServiceKey());
+
+
+        }
+
+        private BindingTemplate getFirstBindingTemplate() {
+                try {
+                        int fetch = 10;
+                        int offset = 0;
+                        FindService fb = new FindService();
+                        fb.setMaxRows(fetch);
+                        fb.setListHead(offset);
+                        fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                        fb.setFindQualifiers(new FindQualifiers());
+                        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        ServiceList findService = inquiry.findService(fb);
+                        int returnedcount = findService.getServiceInfos().getServiceInfo().size();
+                        do {
+                                for (int i = 0; i < findService.getServiceInfos().getServiceInfo().size(); i++) {
+                                        GetServiceDetail gsd = new GetServiceDetail();
+                                        gsd.getServiceKey().add(findService.getServiceInfos().getServiceInfo().get(i).getServiceKey());
+                                        ServiceDetail serviceDetail = inquiry.getServiceDetail(gsd);
+                                        if (serviceDetail.getBusinessService().get(0).getBindingTemplates() != null
+                                                && !serviceDetail.getBusinessService().get(0).getBindingTemplates().getBindingTemplate().isEmpty()) {
+                                                return serviceDetail.getBusinessService().get(0).getBindingTemplates().getBindingTemplate().get(0);
+                                        }
+
+                                }
+                                offset = fetch;
+                                fetch = fetch + 10;
+                                fb = new FindService();
+                                fb.setMaxRows(fetch);
+                                fb.setListHead(offset);
+                                fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                                fb.setFindQualifiers(new FindQualifiers());
+                                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                                findService = inquiry.findService(fb);
+                                returnedcount = findService.getServiceInfos().getServiceInfo().size();
+
+                        } while (returnedcount > 0);
+                } catch (DispositionReportFaultMessage ex) {
+                        Logger.getLogger(UDDI_160_RESTIntergrationTest.class.getName()).log(Level.SEVERE, null, ex);
+                } catch (RemoteException ex) {
+                        Logger.getLogger(UDDI_160_RESTIntergrationTest.class.getName()).log(Level.SEVERE, null, ex);
+                }
+                return null;
+        }
+
+        @Test
+        public void InquiryREST_GET_Binding() throws Exception {
+                Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());
                 
+                BindingTemplate bt = getFirstBindingTemplate();
+                Assume.assumeTrue(bt != null);
+                
+                String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();
+
+                Assume.assumeNotNull(url);
+                HttpClient client = new DefaultHttpClient();
+                HttpGet httpGet = new HttpGet(url + "bindingKey?" + bt.getBindingKey());
+                HttpResponse response = client.execute(httpGet);
+                Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);
+                BindingTemplate unmarshal = JAXB.unmarshal(response.getEntity().getContent(), BindingTemplate.class);
+                Assert.assertNotNull(unmarshal);
+                Assert.assertEquals(unmarshal.getServiceKey(), bt.getServiceKey());
+                Assert.assertEquals(unmarshal.getBindingKey(), bt.getBindingKey());
+
+
         }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org