Repository: juddi
Updated Branches:
  refs/heads/master ba7c83576 -> 809a25e4a


JUDDI-242 adding get binding and publisher assertion subscription tests


Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/809a25e4
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/809a25e4
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/809a25e4

Branch: refs/heads/master
Commit: 809a25e4a3090c8199519984bc03f8053370d952
Parents: ba7c835
Author: alexoree <[email protected]>
Authored: Fri Feb 28 22:45:30 2014 -0500
Committer: alexoree <[email protected]>
Committed: Fri Feb 28 22:45:30 2014 -0500

----------------------------------------------------------------------
 ...090_SubscriptionListenerIntegrationBase.java | 639 ++++++++++++++++++-
 1 file changed, 615 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juddi/blob/809a25e4/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
----------------------------------------------------------------------
diff --git 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
index 95cbcbe..d300523 100644
--- 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
+++ 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
@@ -24,23 +24,39 @@ 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.Assert;
 import org.junit.Assume;
+import org.junit.Ignore;
 import org.junit.Test;
+import org.uddi.api_v3.AccessPoint;
+import org.uddi.api_v3.AddPublisherAssertions;
+import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.BindingTemplates;
 import org.uddi.api_v3.BusinessEntity;
 import org.uddi.api_v3.BusinessService;
+import org.uddi.api_v3.CompletionStatus;
+import org.uddi.api_v3.DeletePublisherAssertions;
 import org.uddi.api_v3.Description;
+import org.uddi.api_v3.FindBinding;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.FindRelatedBusinesses;
+import org.uddi.api_v3.GetAssertionStatusReport;
+import org.uddi.api_v3.GetBindingDetail;
 import org.uddi.api_v3.GetBusinessDetail;
 import org.uddi.api_v3.GetServiceDetail;
 import org.uddi.api_v3.GetTModelDetail;
+import org.uddi.api_v3.KeyedReference;
 import org.uddi.api_v3.Name;
+import org.uddi.api_v3.PublisherAssertion;
+import org.uddi.api_v3.SaveBinding;
 import org.uddi.api_v3.SaveBusiness;
 import org.uddi.api_v3.SaveService;
 import org.uddi.api_v3.SaveTModel;
-import org.uddi.api_v3.ServiceDetail;
 import org.uddi.api_v3.TModel;
+import org.uddi.api_v3.TModelBag;
 import org.uddi.sub_v3.DeleteSubscription;
 import org.uddi.sub_v3.Subscription;
 import org.uddi.sub_v3.SubscriptionFilter;
@@ -77,7 +93,9 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
         private static UDDIClient manager;
 
         public static void stopManager() throws ConfigurationException {
-                if (!TckPublisher.isEnabled()) return;
+                if (!TckPublisher.isEnabled()) {
+                        return;
+                }
                 tckTModelJoe.deleteCreatedTModels(authInfoJoe);
                 tckTModelMary.deleteCreatedTModels(authInfoMary);
                 manager.stop();
@@ -86,7 +104,9 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
         }
 
         public static void startManager() throws ConfigurationException {
-                if (!TckPublisher.isEnabled()) return;
+                if (!TckPublisher.isEnabled()) {
+                        return;
+                }
                 try {
                         /*                 smtpPort = 9700 + new 
Random().nextInt(99);
                          httpPort = 9600 + new Random().nextInt(99);
@@ -176,19 +196,22 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
 
         /**
          * used for logging purposes
-         * @return 
+         *
+         * @return
          */
         public abstract String getTransport();
 
         /**
          * listener port
-         * @return 
+         *
+         * @return
          */
         public abstract int getPort();
 
         /**
          * either returns localhost hostname or an email or delivery address
-         * @return 
+         *
+         * @return
          */
         public abstract String getHostame();
 
@@ -209,7 +232,7 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
                         //Saving the HTTP Listener Service
                         tckSubscriptionListenerJoe.saveService(authInfoJoe, 
getXMLLocationOfServiceForDelivery(), getPort(), getHostame());
                         //Saving the HTTP Subscription
-                        String saveNotifierSubscription = 
tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe,getSubscription1XML());
+                        String saveNotifierSubscription = 
tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe, 
getSubscription1XML());
                         //Changing the service we subscribed to 
"JoePublisherService"
                         Thread.sleep(1000);
                         logger.info("Updating Service ********** ");
@@ -286,11 +309,17 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
         }
 
         public abstract String getSubscription1XML();
+
         public abstract String getSubscription2XML();
+
         public abstract String getSubscription3XML();
+
         public abstract String getSubscriptionKey1();
+
         public abstract String getSubscriptionKey2();
+
         public abstract String getSubscriptionKey3();
+
         //tmodel tests
         @Test
         public void joePublisherUpdate_FIND_TMODEL() {
@@ -494,7 +523,6 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
                 }
         }
 
-        
         //TODO If a subscriber specifies a maximum number of entries to be 
returned with a subscription and the amount of data to be returned exceeds 
 //this limit, or if the node determines based on its policy that there are too 
many entries to be returned in a single group, 
         //then the node SHOULD provide a chunkToken with results.  
@@ -506,7 +534,8 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
                 stm.getTModel().add(saveMaryPublisherTmodel);
                 publicationMary.saveTModel(stm);
         }
-                /**
+
+        /**
          * adds a new name to the business, then resaves it
          *
          * @param auth
@@ -521,7 +550,6 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
                 pub.saveBusiness(sb);
         }
 
-
         /**
          * getService tests joe want's updates on mary's service
          *
@@ -544,16 +572,15 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
 
                         tckTModelMary.saveMaryPublisherTmodel(authInfoMary);
                         BusinessEntity saveMaryPublisherBusiness = 
tckBusinessMary.saveMaryPublisherBusiness(authInfoMary);
-                        
+
                         BusinessService bs = new BusinessService();
                         
bs.setBusinessKey(saveMaryPublisherBusiness.getBusinessKey());
                         bs.setServiceKey(TckTModel.MARY_KEY_PREFIX + 
UUID.randomUUID().toString());
-                        bs.getName().add(new Name("Mary's service for " + 
getTransport(),null));
+                        bs.getName().add(new Name("Mary's service for " + 
getTransport(), null));
                         SaveService ss = new SaveService();
                         ss.getBusinessService().add(bs);
                         ss.setAuthInfo(authInfoMary);
-                        bs= 
publicationMary.saveService(ss).getBusinessService().get(0);
-                        
+                        bs = 
publicationMary.saveService(ss).getBusinessService().get(0);
 
                         tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe);
                         
tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe);
@@ -576,7 +603,7 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
                         
//tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION3_XML);
                         //Changing the service we subscribed to 
"JoePublisherService"
                         Thread.sleep(1000);
-                        logger.info("updating Mary's business ********** ");
+                        logger.info("updating Mary's service ********** ");
                         updatePublisherService(authInfoMary, bs, 
publicationMary);
 
                         boolean found = verifyDelivery("Updated Name");
@@ -609,14 +636,572 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
 
                 }
         }
-        
-        //get binding detail
-        //get pub assertion
-        //get publisher assertion status
-        //find publisher assertions
-        //find binding
 
-        private void updatePublisherService(String authInfo, BusinessService 
bs, UDDIPublicationPortType pub) throws Exception{
+        /**
+         * getBinding tests joe want's updates on mary's binding
+         *
+         * @throws Exception
+         */
+        @Test
+        public void joePublisherUpdate_GET_BINDING_DETAIL() throws Exception {
+                Assume.assumeTrue(TckPublisher.isEnabled());
+                Assume.assumeNotNull(getHostame());
+                logger.info("joePublisherUpdate_" + getTransport() + 
"_GET_BINDING_DETAIL");
+                TckCommon.removeAllExistingSubscriptions(authInfoJoe, 
subscriptionJoe);
+                Holder<List<Subscription>> holder = null;
+                try {
+                        reset();
+
+                        String before = 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe);
+
+                        tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
+                        tckTModelJoe.saveTModels(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                        tckTModelMary.saveMaryPublisherTmodel(authInfoMary);
+                        BusinessEntity saveMaryPublisherBusiness = 
tckBusinessMary.saveMaryPublisherBusiness(authInfoMary);
+
+                        BusinessService bs = new BusinessService();
+                        
bs.setBusinessKey(saveMaryPublisherBusiness.getBusinessKey());
+                        bs.setServiceKey(TckTModel.MARY_KEY_PREFIX + 
UUID.randomUUID().toString());
+                        bs.getName().add(new Name("Mary's service for " + 
getTransport(), null));
+                        bs.setBindingTemplates(new BindingTemplates());
+                        BindingTemplate bt = new BindingTemplate();
+                        bt.setAccessPoint(new AccessPoint("http://localhost";, 
"endPoint"));
+                        bt.setBindingKey(TckTModel.MARY_KEY_PREFIX + 
UUID.randomUUID().toString());
+                        bt.setServiceKey(bs.getServiceKey());
+                        bt = UDDIClient.addSOAPtModels(bt);
+
+                        bs.getBindingTemplates().getBindingTemplate().add(bt);
+                        SaveService ss = new SaveService();
+                        ss.getBusinessService().add(bs);
+                        ss.setAuthInfo(authInfoMary);
+                        bs = 
publicationMary.saveService(ss).getBusinessService().get(0);
+
+                        tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe);
+                        
tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe);
+                        //Saving the Listener Service
+                        String bindingkey = 
tckSubscriptionListenerJoe.saveService(authInfoJoe, 
getXMLLocationOfServiceForDelivery(), getPort(), getHostame());
+
+                        //Saving the Subscription
+                        holder = new Holder<List<Subscription>>();
+                        holder.value = new ArrayList<Subscription>();
+                        Subscription sub = new Subscription();
+                        sub.setBindingKey(bindingkey);
+                        
sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(5000));
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        sub.getSubscriptionFilter().setGetBindingDetail(new 
GetBindingDetail());
+                        
sub.getSubscriptionFilter().getGetBindingDetail().getBindingKey().add(bt.getBindingKey());
+
+                        holder.value.add(sub);
+                        subscriptionJoe.saveSubscription(authInfoJoe, holder);
+                        logger.info("subscription saved for " + 
holder.value.get(0).getSubscriptionKey());
+                        
//tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION3_XML);
+                        //Changing the service we subscribed to 
"JoePublisherService"
+                        Thread.sleep(1000);
+                        logger.info("updating Mary's binding ********** ");
+                        updatePublisherBinding(authInfoMary, bt, 
publicationMary);
+
+                        boolean found = verifyDelivery("wsdlDeployment");
+
+                        if (!found) {
+                                logger.warn("Test failed, dumping business 
list");
+                                logger.warn("BEFORE " + before);
+                                logger.warn("After " + 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe));
+                                Assert.fail("Notification does not contain the 
correct service.");
+                        }
+
+                } catch (Exception e) {
+                        logger.error("No exceptions please.");
+                        e.printStackTrace();
+
+                        Assert.fail();
+                } finally {
+                        
//tckSubscriptionListenerJoe.deleteNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION_KEY);
+                        DeleteSubscription ds = new DeleteSubscription();
+                        ds.setAuthInfo(authInfoJoe);
+                        
ds.getSubscriptionKey().add(holder.value.get(0).getSubscriptionKey());
+                        subscriptionJoe.deleteSubscription(ds);
+                        
tckBusinessMary.deleteMaryPublisherBusiness(authInfoMary);
+                        tckTModelMary.deleteMaryPublisherTmodel(authInfoMary);
+
+                        
tckBusinessServiceJoe.deleteJoePublisherService(authInfoJoe);
+                        tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe);
+                        tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe);
+                        tckTModelJoe.deleteTModel(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_SUBSCRIPTION3_TMODEL_KEY, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                }
+        }
+
+        /**
+         * PUBLISHERASSERTION tests joe want's updates on mary's binding
+         *
+         * @throws Exception
+         */
+        @Test
+        @Ignore
+        public void joePublisherUpdate_PUBLISHERASSERTION_DETAIL_TO() throws 
Exception {
+                Assume.assumeTrue(TckPublisher.isEnabled());
+                Assume.assumeNotNull(getHostame());
+                logger.info("joePublisherUpdate_" + getTransport() + 
"_PUBLISHERASSERTION_DETAIL_TO");
+                TckCommon.removeAllExistingSubscriptions(authInfoJoe, 
subscriptionJoe);
+                Holder<List<Subscription>> holder = null;
+                try {
+                        reset();
+
+                        String before = 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe);
+
+                        tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
+                        //tckTModelJoe.saveTModels(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                        tckTModelMary.saveMaryPublisherTmodel(authInfoMary);
+                        BusinessEntity saveMaryPublisherBusiness = 
tckBusinessMary.saveMaryPublisherBusiness(authInfoMary);
+
+                        tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe);
+                        
tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe);
+                        //Saving the Listener Service
+                        String bindingkey = 
tckSubscriptionListenerJoe.saveService(authInfoJoe, 
getXMLLocationOfServiceForDelivery(), getPort(), getHostame());
+
+                        //Saving the Subscription
+                        holder = new Holder<List<Subscription>>();
+                        holder.value = new ArrayList<Subscription>();
+                        Subscription sub = new Subscription();
+                        sub.setBindingKey(bindingkey);
+                        
sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(5000));
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        
sub.getSubscriptionFilter().setGetAssertionStatusReport(new 
GetAssertionStatusReport());
+                        
sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.STATUS_TO_KEY_INCOMPLETE);
+
+                        holder.value.add(sub);
+                        subscriptionJoe.saveSubscription(authInfoJoe, holder);
+                        logger.info("subscription saved for " + 
holder.value.get(0).getSubscriptionKey());
+                        
//tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION3_XML);
+                        //Changing the service we subscribed to 
"JoePublisherService"
+                        Thread.sleep(1000);
+                        logger.info("saving Mary's publisher 
assertion********** ");
+                        AddPublisherAssertions pa = new 
AddPublisherAssertions();
+                        pa.setAuthInfo(authInfoMary);
+                        PublisherAssertion pas = new PublisherAssertion();
+                        pas.setToKey(TckBusiness.JOE_BUSINESS_KEY);
+                        pas.setFromKey(TckBusiness.MARY_BUSINESS_KEY);
+                        pas.setKeyedReference(new 
KeyedReference(UDDIConstants.RELATIONSHIPS, "parent", "parent-child"));
+                        pa.getPublisherAssertion().add(pas);
+
+                        publicationMary.addPublisherAssertions(pa);
+
+                        boolean found = 
verifyDelivery(TckBusiness.MARY_BUSINESS_KEY);
+
+                        DeletePublisherAssertions deletePublisherAssertions = 
new DeletePublisherAssertions();
+                        deletePublisherAssertions.setAuthInfo(authInfoMary);
+                        
deletePublisherAssertions.getPublisherAssertion().add(pas);
+                        
publicationMary.deletePublisherAssertions(deletePublisherAssertions);
+                        if (!found) {
+                                logger.warn("Test failed, dumping business 
list");
+                                logger.warn("BEFORE " + before);
+                                logger.warn("After " + 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe));
+                                Assert.fail("Notification does not contain the 
correct service.");
+                        }
+
+                } catch (Exception e) {
+                        logger.error("No exceptions please.");
+                        e.printStackTrace();
+
+                        Assert.fail();
+                } finally {
+                        
//tckSubscriptionListenerJoe.deleteNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION_KEY);
+                        DeleteSubscription ds = new DeleteSubscription();
+                        ds.setAuthInfo(authInfoJoe);
+                        
ds.getSubscriptionKey().add(holder.value.get(0).getSubscriptionKey());
+                        subscriptionJoe.deleteSubscription(ds);
+                        
tckBusinessMary.deleteMaryPublisherBusiness(authInfoMary);
+                        tckTModelMary.deleteMaryPublisherTmodel(authInfoMary);
+
+                        
tckBusinessServiceJoe.deleteJoePublisherService(authInfoJoe);
+                        tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe);
+                        tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe);
+                        tckTModelJoe.deleteTModel(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_SUBSCRIPTION3_TMODEL_KEY, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                }
+        }
+
+        /**
+         * PUBLISHERASSERTION tests joe want's updates on mary's binding
+         *
+         * @throws Exception
+         */
+        @Test
+        @Ignore
+        public void joePublisherUpdate_PUBLISHERASSERTION_DETAIL_FROM() throws 
Exception {
+                Assume.assumeTrue(TckPublisher.isEnabled());
+                Assume.assumeNotNull(getHostame());
+                logger.info("joePublisherUpdate_" + getTransport() + 
"_PUBLISHERASSERTION_DETAIL_FROM");
+                TckCommon.removeAllExistingSubscriptions(authInfoJoe, 
subscriptionJoe);
+                Holder<List<Subscription>> holder = null;
+                try {
+                        reset();
+
+                        String before = 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe);
+
+                        tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
+                        //tckTModelJoe.saveTModels(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                        tckTModelMary.saveMaryPublisherTmodel(authInfoMary);
+                        BusinessEntity saveMaryPublisherBusiness = 
tckBusinessMary.saveMaryPublisherBusiness(authInfoMary);
+
+                        tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe);
+                        
tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe);
+                        //Saving the Listener Service
+                        String bindingkey = 
tckSubscriptionListenerJoe.saveService(authInfoJoe, 
getXMLLocationOfServiceForDelivery(), getPort(), getHostame());
+
+                        //Saving the Subscription
+                        holder = new Holder<List<Subscription>>();
+                        holder.value = new ArrayList<Subscription>();
+                        Subscription sub = new Subscription();
+                        sub.setBindingKey(bindingkey);
+                        
sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(5000));
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        
sub.getSubscriptionFilter().setGetAssertionStatusReport(new 
GetAssertionStatusReport());
+                        
sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.STATUS_FROM_KEY_INCOMPLETE);
+
+                        holder.value.add(sub);
+                        subscriptionJoe.saveSubscription(authInfoJoe, holder);
+                        logger.info("subscription saved for " + 
holder.value.get(0).getSubscriptionKey());
+                        
//tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION3_XML);
+                        //Changing the service we subscribed to 
"JoePublisherService"
+                        Thread.sleep(1000);
+                        logger.info("saving Mary's publisher 
assertion********** ");
+                        AddPublisherAssertions pa = new 
AddPublisherAssertions();
+                        pa.setAuthInfo(authInfoMary);
+                        PublisherAssertion pas = new PublisherAssertion();
+                        pas.setToKey(TckBusiness.JOE_BUSINESS_KEY);
+                        pas.setFromKey(TckBusiness.MARY_BUSINESS_KEY);
+                        pas.setKeyedReference(new 
KeyedReference(UDDIConstants.RELATIONSHIPS, "parent", "parent-child"));
+                        pa.getPublisherAssertion().add(pas);
+
+                        publicationMary.addPublisherAssertions(pa);
+
+                        boolean found = 
verifyDelivery(TckBusiness.MARY_BUSINESS_KEY);
+
+                        DeletePublisherAssertions deletePublisherAssertions = 
new DeletePublisherAssertions();
+                        deletePublisherAssertions.setAuthInfo(authInfoMary);
+                        
deletePublisherAssertions.getPublisherAssertion().add(pas);
+                        
publicationMary.deletePublisherAssertions(deletePublisherAssertions);
+                        if (!found) {
+                                logger.warn("Test failed, dumping business 
list");
+                                logger.warn("BEFORE " + before);
+                                logger.warn("After " + 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe));
+                                Assert.fail("Notification does not contain the 
correct service.");
+                        }
+
+                } catch (Exception e) {
+                        logger.error("No exceptions please.");
+                        e.printStackTrace();
+
+                        Assert.fail();
+                } finally {
+                        
//tckSubscriptionListenerJoe.deleteNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION_KEY);
+                        DeleteSubscription ds = new DeleteSubscription();
+                        ds.setAuthInfo(authInfoJoe);
+                        
ds.getSubscriptionKey().add(holder.value.get(0).getSubscriptionKey());
+                        subscriptionJoe.deleteSubscription(ds);
+                        
tckBusinessMary.deleteMaryPublisherBusiness(authInfoMary);
+                        tckTModelMary.deleteMaryPublisherTmodel(authInfoMary);
+
+                        
tckBusinessServiceJoe.deleteJoePublisherService(authInfoJoe);
+                        tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe);
+                        tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe);
+                        tckTModelJoe.deleteTModel(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_SUBSCRIPTION3_TMODEL_KEY, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                }
+        }
+
+        /**
+         * PUBLISHERASSERTION2 tests joe want's updates on mary's binding
+         *
+         * @throws Exception
+         */
+        @Test
+        @Ignore
+        public void joePublisherUpdate_PUBLISHERASSERTION_DETAIL_COMPLETE() 
throws Exception {
+                Assume.assumeTrue(TckPublisher.isEnabled());
+                Assume.assumeNotNull(getHostame());
+                logger.info("joePublisherUpdate_" + getTransport() + 
"_PUBLISHERASSERTION_DETAIL_COMPLETE");
+                TckCommon.removeAllExistingSubscriptions(authInfoJoe, 
subscriptionJoe);
+                Holder<List<Subscription>> holder = null;
+                try {
+                        reset();
+
+                        String before = 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe);
+
+                        tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
+                        //tckTModelJoe.saveTModels(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                        tckTModelMary.saveMaryPublisherTmodel(authInfoMary);
+                        BusinessEntity saveMaryPublisherBusiness = 
tckBusinessMary.saveMaryPublisherBusiness(authInfoMary);
+
+                        tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe);
+                        
tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe);
+                        //Saving the Listener Service
+                        String bindingkey = 
tckSubscriptionListenerJoe.saveService(authInfoJoe, 
getXMLLocationOfServiceForDelivery(), getPort(), getHostame());
+
+                        //Saving the Subscription
+                        holder = new Holder<List<Subscription>>();
+                        holder.value = new ArrayList<Subscription>();
+                        Subscription sub = new Subscription();
+                        sub.setBindingKey(bindingkey);
+                        
sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(5000));
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        
sub.getSubscriptionFilter().setGetAssertionStatusReport(new 
GetAssertionStatusReport());
+                        
sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.STATUS_COMPLETE);
+
+                        holder.value.add(sub);
+                        subscriptionJoe.saveSubscription(authInfoJoe, holder);
+                        logger.info("subscription saved for " + 
holder.value.get(0).getSubscriptionKey());
+                        
//tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION3_XML);
+                        //Changing the service we subscribed to 
"JoePublisherService"
+                        Thread.sleep(1000);
+                        logger.info("saving Mary's publisher 
assertion********** ");
+                        AddPublisherAssertions pa = new 
AddPublisherAssertions();
+                        pa.setAuthInfo(authInfoMary);
+                        PublisherAssertion pas = new PublisherAssertion();
+                        pas.setToKey(TckBusiness.JOE_BUSINESS_KEY);
+                        pas.setFromKey(TckBusiness.MARY_BUSINESS_KEY);
+                        pas.setKeyedReference(new 
KeyedReference(UDDIConstants.RELATIONSHIPS, "parent", "parent-child"));
+                        pa.getPublisherAssertion().add(pas);
+
+                        publicationMary.addPublisherAssertions(pa);
+                        pa.setAuthInfo(authInfoJoe);
+                        publicationJoe.addPublisherAssertions(pa);
+
+                        boolean found = 
verifyDelivery(TckBusiness.MARY_BUSINESS_KEY);
+                        DeletePublisherAssertions deletePublisherAssertions = 
new DeletePublisherAssertions();
+                        deletePublisherAssertions.setAuthInfo(authInfoMary);
+                        
deletePublisherAssertions.getPublisherAssertion().add(pas);
+                        
publicationMary.deletePublisherAssertions(deletePublisherAssertions);
+                        if (!found) {
+                                logger.warn("Test failed, dumping business 
list");
+                                logger.warn("BEFORE " + before);
+                                logger.warn("After " + 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe));
+                                Assert.fail("Notification does not contain the 
correct service.");
+                        }
+
+                } catch (Exception e) {
+                        logger.error("No exceptions please.");
+                        e.printStackTrace();
+
+                        Assert.fail();
+                } finally {
+                        
//tckSubscriptionListenerJoe.deleteNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION_KEY);
+                        DeleteSubscription ds = new DeleteSubscription();
+                        ds.setAuthInfo(authInfoJoe);
+                        
ds.getSubscriptionKey().add(holder.value.get(0).getSubscriptionKey());
+                        subscriptionJoe.deleteSubscription(ds);
+                        
tckBusinessMary.deleteMaryPublisherBusiness(authInfoMary);
+                        tckTModelMary.deleteMaryPublisherTmodel(authInfoMary);
+
+                        
tckBusinessServiceJoe.deleteJoePublisherService(authInfoJoe);
+                        tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe);
+                        tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe);
+                        tckTModelJoe.deleteTModel(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_SUBSCRIPTION3_TMODEL_KEY, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                }
+        }
+
+        //
+        /**
+         * find related businesses tests joe want's updates on mary's binding
+         *
+         * @throws Exception
+         */
+        @Test
+        @Ignore
+        public void joePublisherUpdate_FIND_RELATED_BIZ() throws Exception {
+                Assume.assumeTrue(TckPublisher.isEnabled());
+                Assume.assumeNotNull(getHostame());
+                logger.info("joePublisherUpdate_" + getTransport() + 
"_FIND_RELATED_BIZ");
+                TckCommon.removeAllExistingSubscriptions(authInfoJoe, 
subscriptionJoe);
+                Holder<List<Subscription>> holder = null;
+                try {
+                        reset();
+
+                        String before = 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe);
+
+                        tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
+                        //tckTModelJoe.saveTModels(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                        tckTModelMary.saveMaryPublisherTmodel(authInfoMary);
+                        BusinessEntity saveMaryPublisherBusiness = 
tckBusinessMary.saveMaryPublisherBusiness(authInfoMary);
+
+                        tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe);
+                        
tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe);
+                        //Saving the Listener Service
+                        String bindingkey = 
tckSubscriptionListenerJoe.saveService(authInfoJoe, 
getXMLLocationOfServiceForDelivery(), getPort(), getHostame());
+
+                        //Saving the Subscription
+                        holder = new Holder<List<Subscription>>();
+                        holder.value = new ArrayList<Subscription>();
+                        Subscription sub = new Subscription();
+                        sub.setBindingKey(bindingkey);
+                        
sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(5000));
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        
sub.getSubscriptionFilter().setFindRelatedBusinesses(new 
FindRelatedBusinesses());
+                        
sub.getSubscriptionFilter().getFindRelatedBusinesses().setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
+
+                        holder.value.add(sub);
+                        subscriptionJoe.saveSubscription(authInfoJoe, holder);
+                        logger.info("subscription saved for " + 
holder.value.get(0).getSubscriptionKey());
+                        
//tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION3_XML);
+                        //Changing the service we subscribed to 
"JoePublisherService"
+                        Thread.sleep(1000);
+                        logger.info("saving Mary's publisher 
assertion********** ");
+                        AddPublisherAssertions pa = new 
AddPublisherAssertions();
+                        pa.setAuthInfo(authInfoMary);
+                        PublisherAssertion pas = new PublisherAssertion();
+                        pas.setToKey(TckBusiness.JOE_BUSINESS_KEY);
+                        pas.setFromKey(TckBusiness.MARY_BUSINESS_KEY);
+                        pas.setKeyedReference(new 
KeyedReference(UDDIConstants.RELATIONSHIPS, "parent", "parent-child"));
+                        pa.getPublisherAssertion().add(pas);
+
+                        publicationMary.addPublisherAssertions(pa);
+                        logger.info("saving Joe's publisher 
assertion********** ");
+                        pa.setAuthInfo(authInfoJoe);
+                        publicationJoe.addPublisherAssertions(pa);
+
+                        boolean found = 
verifyDelivery(TckBusiness.MARY_BUSINESS_KEY);
+                        DeletePublisherAssertions deletePublisherAssertions = 
new DeletePublisherAssertions();
+                        deletePublisherAssertions.setAuthInfo(authInfoMary);
+                        
deletePublisherAssertions.getPublisherAssertion().add(pas);
+                        
publicationMary.deletePublisherAssertions(deletePublisherAssertions);
+                        if (!found) {
+                                logger.warn("Test failed, dumping business 
list");
+                                logger.warn("BEFORE " + before);
+                                logger.warn("After " + 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe));
+                                Assert.fail("Notification does not contain the 
correct service.");
+                        }
+
+                } catch (Exception e) {
+                        logger.error("No exceptions please.");
+                        e.printStackTrace();
+
+                        Assert.fail();
+                } finally {
+                        
//tckSubscriptionListenerJoe.deleteNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION_KEY);
+                        DeleteSubscription ds = new DeleteSubscription();
+                        ds.setAuthInfo(authInfoJoe);
+                        
ds.getSubscriptionKey().add(holder.value.get(0).getSubscriptionKey());
+                        subscriptionJoe.deleteSubscription(ds);
+                        
tckBusinessMary.deleteMaryPublisherBusiness(authInfoMary);
+                        tckTModelMary.deleteMaryPublisherTmodel(authInfoMary);
+
+                        
tckBusinessServiceJoe.deleteJoePublisherService(authInfoJoe);
+                        tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe);
+                        tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe);
+                        tckTModelJoe.deleteTModel(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_SUBSCRIPTION3_TMODEL_KEY, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                }
+        }
+
+        /**
+         * getBinding tests joe want's updates on mary's binding
+         *
+         * @throws Exception
+         */
+        @Test
+        @Ignore
+        public void joePublisherUpdate_FIND_BINDING() throws Exception {
+                Assume.assumeTrue(TckPublisher.isEnabled());
+                Assume.assumeNotNull(getHostame());
+                logger.info("joePublisherUpdate_" + getTransport() + 
"_FIND_BINDING");
+                TckCommon.removeAllExistingSubscriptions(authInfoJoe, 
subscriptionJoe);
+                Holder<List<Subscription>> holder = null;
+                try {
+                        reset();
+
+                        String before = 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe);
+
+                        tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
+                        tckTModelJoe.saveTModels(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                        tckTModelMary.saveMaryPublisherTmodel(authInfoMary);
+                        BusinessEntity saveMaryPublisherBusiness = 
tckBusinessMary.saveMaryPublisherBusiness(authInfoMary);
+
+                        BusinessService bs = new BusinessService();
+                        
bs.setBusinessKey(saveMaryPublisherBusiness.getBusinessKey());
+                        bs.setServiceKey(TckTModel.MARY_KEY_PREFIX + 
UUID.randomUUID().toString());
+                        bs.getName().add(new Name("Mary's service for " + 
getTransport(), null));
+                        
+                        bs.setBindingTemplates(new BindingTemplates());
+                        BindingTemplate bt = new BindingTemplate();
+                        bt.setAccessPoint(new AccessPoint("http://localhost";, 
"endPoint"));
+                        bt.setBindingKey(TckTModel.MARY_KEY_PREFIX + 
UUID.randomUUID().toString());
+                        bt.setServiceKey(bs.getServiceKey());
+                        bt = UDDIClient.addSOAPtModels(bt);
+
+                        bs.getBindingTemplates().getBindingTemplate().add(bt);
+                        SaveService ss = new SaveService();
+                        ss.getBusinessService().add(bs);
+                        ss.setAuthInfo(authInfoMary);
+                        bs = 
publicationMary.saveService(ss).getBusinessService().get(0);
+
+                        tckBusinessJoe.saveJoePublisherBusiness(authInfoJoe);
+                        
tckBusinessServiceJoe.saveJoePublisherService(authInfoJoe);
+                        //Saving the Listener Service
+                        String bindingkey = 
tckSubscriptionListenerJoe.saveService(authInfoJoe, 
getXMLLocationOfServiceForDelivery(), getPort(), getHostame());
+
+                        //Saving the Subscription
+                        holder = new Holder<List<Subscription>>();
+                        holder.value = new ArrayList<Subscription>();
+                        Subscription sub = new Subscription();
+                        sub.setBindingKey(bindingkey);
+                        
sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(5000));
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        sub.getSubscriptionFilter().setFindBinding(new 
FindBinding());
+                        
sub.getSubscriptionFilter().getFindBinding().setServiceKey(bs.getServiceKey());
+                        
sub.getSubscriptionFilter().getFindBinding().setTModelBag(new TModelBag());
+                        
sub.getSubscriptionFilter().getFindBinding().getTModelBag().getTModelKey().add("uddi:uddi.org:categorization:types");
+                        
+
+                        holder.value.add(sub);
+                        subscriptionJoe.saveSubscription(authInfoJoe, holder);
+                        logger.info("subscription saved for " + 
holder.value.get(0).getSubscriptionKey());
+                        
//tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION3_XML);
+                        //Changing the service we subscribed to 
"JoePublisherService"
+                        Thread.sleep(1000);
+                        logger.info("updating Mary's binding ********** ");
+                        updatePublisherBinding(authInfoMary, bt, 
publicationMary);
+
+                        boolean found = verifyDelivery("wsdlDeployment");
+
+                        if (!found) {
+                                logger.warn("Test failed, dumping business 
list");
+                                logger.warn("BEFORE " + before);
+                                logger.warn("After " + 
TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe));
+                                Assert.fail("Notification does not contain the 
correct service.");
+                        }
+
+                } catch (Exception e) {
+                        logger.error("No exceptions please.");
+                        e.printStackTrace();
+
+                        Assert.fail();
+                } finally {
+                        
//tckSubscriptionListenerJoe.deleteNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION_KEY);
+                        DeleteSubscription ds = new DeleteSubscription();
+                        ds.setAuthInfo(authInfoJoe);
+                        
ds.getSubscriptionKey().add(holder.value.get(0).getSubscriptionKey());
+                        subscriptionJoe.deleteSubscription(ds);
+                        
tckBusinessMary.deleteMaryPublisherBusiness(authInfoMary);
+                        tckTModelMary.deleteMaryPublisherTmodel(authInfoMary);
+
+                        
tckBusinessServiceJoe.deleteJoePublisherService(authInfoJoe);
+                        tckBusinessJoe.deleteJoePublisherBusiness(authInfoJoe);
+                        tckTModelJoe.deleteJoePublisherTmodel(authInfoJoe);
+                        tckTModelJoe.deleteTModel(authInfoJoe, 
TckTModel.JOE_PUBLISHER_TMODEL_SUBSCRIPTION3_TMODEL_KEY, 
TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
+
+                }
+        }
+
+        //find binding
+        private void updatePublisherService(String authInfo, BusinessService 
bs, UDDIPublicationPortType pub) throws Exception {
                 bs.getName().add(new Name("Updated name", null));
                 SaveService ss = new SaveService();
                 ss.getBusinessService().add(bs);
@@ -624,6 +1209,12 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
                 pub.saveService(ss);
         }
 
-        
-        
+        private void updatePublisherBinding(String authInfo, BindingTemplate 
bt, UDDIPublicationPortType pub) throws Exception {
+                SaveBinding sb = new SaveBinding();
+                sb.setAuthInfo(authInfo);
+                bt.getAccessPoint().setUseType("wsdlDeployment");
+                sb.getBindingTemplate().add(bt);
+                pub.saveBinding(sb);
+        }
+
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to