Repository: juddi
Updated Branches:
  refs/heads/master 4c7e798b7 -> a866ea020


http://git-wip-us.apache.org/repos/asf/juddi/blob/a866ea02/juddi-core/src/test/java/org/apache/juddi/api/impl/API_150_ValueSetValidationTest.java
----------------------------------------------------------------------
diff --git 
a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_150_ValueSetValidationTest.java
 
b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_150_ValueSetValidationTest.java
index 643ce81..54c9399 100644
--- 
a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_150_ValueSetValidationTest.java
+++ 
b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_150_ValueSetValidationTest.java
@@ -17,6 +17,7 @@ package org.apache.juddi.api.impl;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -32,16 +33,24 @@ import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.uddi.api_v3.AccessPoint;
 import org.uddi.api_v3.BindingDetail;
+import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.BusinessDetail;
 import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.BusinessService;
+import org.uddi.api_v3.BusinessServices;
 import org.uddi.api_v3.CategoryBag;
 import org.uddi.api_v3.Description;
 import org.uddi.api_v3.GetBindingDetail;
+import org.uddi.api_v3.IdentifierBag;
 import org.uddi.api_v3.KeyedReference;
 import org.uddi.api_v3.Name;
+import org.uddi.api_v3.SaveBinding;
 import org.uddi.api_v3.SaveBusiness;
 import org.uddi.api_v3.SaveTModel;
 import org.uddi.api_v3.TModel;
+import org.uddi.api_v3.TModelDetail;
 import org.uddi.api_v3.TModelInstanceDetails;
 import org.uddi.v3_service.UDDIInquiryPortType;
 import org.uddi.v3_service.UDDIPublicationPortType;
@@ -61,6 +70,7 @@ public class API_150_ValueSetValidationTest {
         static UDDIValueSetValidationImpl vsv = new 
UDDIValueSetValidationImpl();
         static TckTModel tckTModel = new TckTModel(new UDDIPublicationImpl(), 
new UDDIInquiryImpl());
         protected static String authInfoJoe = null;
+        protected static String authInfoMary = null;
         protected static String authInfoSam = null;
         protected static String authInfoRoot = null;
         protected static String authInfoUDDI = null;
@@ -77,6 +87,7 @@ public class API_150_ValueSetValidationTest {
                 logger.debug("Getting auth tokens..");
                 try {
                         authInfoJoe = TckSecurity.getAuthToken(security, 
TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
+                        authInfoMary = TckSecurity.getAuthToken(security, 
TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
                         authInfoSam = TckSecurity.getAuthToken(security, 
TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
                         authInfoRoot = TckSecurity.getAuthToken(security, 
TckPublisher.getRootPublisherId(), TckPublisher.getRootPassword());
                         authInfoUDDI = TckSecurity.getAuthToken(security, 
TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword());
@@ -123,42 +134,35 @@ public class API_150_ValueSetValidationTest {
                 //register business/service/bt for validatevalues service
                 //this is done by the install process using the built in vsv
 
-
                 //add/alter BT to include instance info for ref to tmodel 
checked
                 //turns out we don't need this either, its in the default 
install data
                 //AlterRootBusiness();
-
                 //configure jUDDI API service to "set" the valid values
                 //SaveVSVValues(TckTModel.JOE_PUBLISHER_KEY_PREFIX + TMODEL);
-
                 //add a new service for joe, reference the checked tmodel with 
an invalid token 
-
-                SaveBusiness(authInfoJoe, true,TMODEL);
+                SaveBusiness(authInfoJoe, true, TMODEL);
 
                 //add a new service for joe, reference the checked tmodel with 
invalid token
         }
+
         @Ignore
         @Test(expected = ValueNotAllowedException.class)
         public void Scenario1Invalid() throws Exception {
                 //create checked tmodel x
                 //logger.info("Saving checked tModel");
-               // SaveCheckedTModel(TckTModel.JOE_PUBLISHER_KEY_PREFIX + 
TMODEL);
+                // SaveCheckedTModel(TckTModel.JOE_PUBLISHER_KEY_PREFIX + 
TMODEL);
                 //register business/service/bt for validatevalues service
                 //this is done by the install process using the built in vsv
 
-
                 //add/alter BT to include instance info for ref to tmodel 
checked
                 //turns out we don't need this either, its in the default 
install data
                 //AlterRootBusiness();
-
                 //configure jUDDI API service to "set" the valid values
                 //logger.info("Saving VS valid values");
                 //SaveVSVValues(TckTModel.JOE_PUBLISHER_KEY_PREFIX + TMODEL);
-
                 //add a new service for joe, reference the checked tmodel with 
an invalid token 
-
                 logger.info("Saving a business using those values");
-                SaveBusiness(authInfoJoe, false,TMODEL);
+                SaveBusiness(authInfoJoe, false, TMODEL);
 
                 //add a new service for joe, reference the checked tmodel with 
invalid token
         }
@@ -171,7 +175,7 @@ public class API_150_ValueSetValidationTest {
                  register business/service/bt for validatevalues service
                  add/alter BT to include instance info for ref to tmodel 
checked
                  alter checked tmodel, add reference to the BT for the 
validator
-                   >>> open question? do we check existing instances of tmodel 
x at this point? do we reject the request if validation fails?
+                 >>> open question? do we check existing instances of tmodel x 
at this point? do we reject the request if validation fails?
                  someone tries to use the checked tmodel as a KR
                  on publish, the server attempts to validate the KR's value 
against the VV service via the binding Template
                  */
@@ -184,7 +188,7 @@ public class API_150_ValueSetValidationTest {
                 tm.setName(new Name("My Custom validated key", "en"));
                 tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
                 tm.getCategoryBag().getKeyedReference().add(
-                        new KeyedReference(UDDIConstants.IS_VALIDATED_BY, 
UDDIConstants.IS_VALIDATED_BY_KEY_NAME, VSV_BT_KEY));
+                     new KeyedReference(UDDIConstants.IS_VALIDATED_BY, 
UDDIConstants.IS_VALIDATED_BY_KEY_NAME, VSV_BT_KEY));
                 SaveTModel stm = new SaveTModel();
                 stm.setAuthInfo(authInfoJoe);
                 stm.getTModel().add(tm);
@@ -234,4 +238,469 @@ public class API_150_ValueSetValidationTest {
                 items.add(i);
                 juddi.setAllValidValues(authInfoJoe, items);
         }
+
+        public void DerviedFromValid() throws Exception {
+
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_DERVIVED_FROM, "", 
"uddi:uddi.org:categorization:nodes"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void DerviedFromInValid() throws Exception {
+
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_DERVIVED_FROM, "", "uddi:juddi.apache.org:" + 
UUID.randomUUID().toString()));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+        }
+
+        @Test
+        public void EntitKeyValuesValid() throws Exception {
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.ENTITY_KEY_VALUES, "", "tModelKey"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void EntitKeyValuesInValid() throws Exception {
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.ENTITY_KEY_VALUES, "", "asdasdasd"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+        }
+
+        @Test
+        @Ignore
+        public void UDDINodeValid() throws Exception {
+                BusinessEntity be = new BusinessEntity();
+                be.getName().add(new Name("test", "en"));
+                be.setCategoryBag(new CategoryBag());
+                be.getCategoryBag().getKeyedReference().add(new 
KeyedReference("uddi:uddi.org:categorization:nodes", "", "node"));
+                SaveBusiness sb = new SaveBusiness();
+                sb.setAuthInfo(authInfoRoot);
+                sb.getBusinessEntity().add(be);
+                publication.saveBusiness(sb);
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void UDDINodeInValid1() throws Exception {
+                BusinessEntity be = new BusinessEntity();
+                be.getName().add(new Name("test", "en"));
+                be.setCategoryBag(new CategoryBag());
+                be.getCategoryBag().getKeyedReference().add(new 
KeyedReference("uddi:uddi.org:categorization:nodes", "", "asdasd"));
+                SaveBusiness sb = new SaveBusiness();
+                sb.setAuthInfo(authInfoRoot);
+                sb.getBusinessEntity().add(be);
+                publication.saveBusiness(sb);
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void UDDINodeInValid2() throws Exception {
+                BusinessEntity be = new BusinessEntity();
+                be.getName().add(new Name("test", "en"));
+                be.setBusinessServices(new BusinessServices());
+                BusinessService bs = new BusinessService();
+                bs.setCategoryBag(new CategoryBag());
+                bs.getCategoryBag().getKeyedReference().add(new 
KeyedReference("uddi:uddi.org:categorization:nodes", "", "asdasd"));
+                be.getBusinessServices().getBusinessService().add(bs);
+                be.setCategoryBag(new CategoryBag());
+
+                SaveBusiness sb = new SaveBusiness();
+                sb.setAuthInfo(authInfoRoot);
+                sb.getBusinessEntity().add(be);
+                publication.saveBusiness(sb);
+        }
+
+        @Test
+        public void OwningBusinessValid() throws Exception {
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.OWNING_BUSINESS, "", 
"uddi:juddi.apache.org:businesses-asf"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void OwningBusinessInValid() throws Exception {
+                BusinessEntity be = new BusinessEntity();
+                be.getName().add(new Name("test", "en"));
+                be.setCategoryBag(new CategoryBag());
+                be.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.OWNING_BUSINESS, "", "uddi:juddi.apache.org:" + 
UUID.randomUUID().toString()));
+                SaveBusiness sb = new SaveBusiness();
+                sb.setAuthInfo(authInfoJoe);
+                sb.getBusinessEntity().add(be);
+                publication.saveBusiness(sb);
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void OwningBusinessInValid2() throws Exception {
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.OWNING_BUSINESS, "", "uddi:juddi.apache.org:" + 
UUID.randomUUID().toString()));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+        }
+
+        @Test
+        public void TypeTmodelValid() throws Exception {
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference("uddi:uddi.org:categorization:types", "", "namespace"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void TypeTModelInValid() throws Exception {
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference("uddi:uddi.org:categorization:types", "", "wsdlDeployment"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void TypeBindingInValid() throws Exception {
+                SaveBinding sb = new SaveBinding();
+                sb.setAuthInfo(authInfoRoot);
+                BindingTemplate bt = new BindingTemplate();
+                bt.setServiceKey("uddi:juddi.apache.org:services-inquiry");
+                bt.setAccessPoint(new AccessPoint("http://test";, "endPoint"));
+                bt.setCategoryBag(new CategoryBag());
+                bt.getCategoryBag().getKeyedReference().add(new 
KeyedReference("uddi:uddi.org:categorization:types", "", "namespace"));
+                publication.saveBinding(sb);
+        }
+
+        @Test
+        public void TypeBindingValid() throws Exception {
+                SaveBinding sb = new SaveBinding();
+                sb.setAuthInfo(authInfoRoot);
+                BindingTemplate bt = new BindingTemplate();
+                bt.setServiceKey("uddi:juddi.apache.org:services-inquiry");
+                bt.setAccessPoint(new AccessPoint("http://test";, "endPoint"));
+                bt.setCategoryBag(new CategoryBag());
+                bt.getCategoryBag().getKeyedReference().add(new 
KeyedReference("uddi:uddi.org:categorization:types", "", "wsdlDeployment"));
+                sb.getBindingTemplate().add(bt);
+                publication.saveBinding(sb);
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void ValidatedByInValid() throws Exception {
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_VALIDATED_BY, 
UDDIConstants.IS_VALIDATED_BY_KEY_NAME, 
"uddi:juddi.apache.org:s:nonexistentvalidator"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+
+        }
+
+        @Test
+        @Ignore
+        public void ValidatedByValid() throws Exception {
+                //this is covered by the default install
+        }
+
+        @Test
+        public void ReplacedByValid() throws Exception {
+                TModel tm = new TModel();
+                tm.setName(new Name("My old tmodel", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                TModelDetail saveTModel = publication.saveTModel(stm);
+
+                tm = new TModel();
+                tm.setName(new Name("My new tmodel", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.setIdentifierBag(new IdentifierBag());
+                tm.getIdentifierBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_REPLACED_BY, "", 
saveTModel.getTModel().get(0).getTModelKey()));
+                stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+        }
+
+        @Test
+        public void ReplacedByValid2() throws Exception {
+                TModel tm = new TModel();
+                tm.setName(new Name("My old tmodel", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                TModelDetail saveTModel = publication.saveTModel(stm);
+
+                tm = new TModel();
+                tm.setName(new Name("My new tmodel", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.setCategoryBag(new CategoryBag());
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_REPLACED_BY, "", 
saveTModel.getTModel().get(0).getTModelKey()));
+                stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+        }
+
+        @Test
+        public void ReplacedByValid3() throws Exception {
+                BusinessEntity tm = new BusinessEntity();
+                tm.getName().add(new Name("My old business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                SaveBusiness stm = new SaveBusiness();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getBusinessEntity().add(tm);
+                BusinessDetail saveBusiness = publication.saveBusiness(stm);
+
+                tm = new BusinessEntity();
+                tm.getName().add(new Name("My new business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.setIdentifierBag(new IdentifierBag());
+                tm.getIdentifierBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_REPLACED_BY, "", 
saveBusiness.getBusinessEntity().get(0).getBusinessKey()));
+                stm = new SaveBusiness();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getBusinessEntity().add(tm);
+                publication.saveBusiness(stm);
+        }
+
+        @Test
+        public void ReplacedByValid4() throws Exception {
+                BusinessEntity tm = new BusinessEntity();
+                tm.getName().add(new Name("My old business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                SaveBusiness stm = new SaveBusiness();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getBusinessEntity().add(tm);
+                BusinessDetail saveBusiness = publication.saveBusiness(stm);
+
+                tm = new BusinessEntity();
+                tm.getName().add(new Name("My new business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.setCategoryBag(new CategoryBag());
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_REPLACED_BY, "", 
saveBusiness.getBusinessEntity().get(0).getBusinessKey()));
+                stm = new SaveBusiness();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getBusinessEntity().add(tm);
+                publication.saveBusiness(stm);
+        }
+
+        @Test
+        public void ReplacedByValid5Projected() throws Exception {
+                BusinessEntity tm = new BusinessEntity();
+                tm.setBusinessKey(TckTModel.JOE_PUBLISHER_KEY_PREFIX + 
"testbiz");
+                tm.getName().add(new Name("My old business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                SaveBusiness stm = new SaveBusiness();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getBusinessEntity().add(tm);
+
+                tm = new BusinessEntity();
+                tm.setBusinessKey(TckTModel.JOE_PUBLISHER_KEY_PREFIX + 
"oldbiz");
+                tm.getName().add(new Name("My new business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.setCategoryBag(new CategoryBag());
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_REPLACED_BY, "", 
TckTModel.JOE_PUBLISHER_KEY_PREFIX + "testbiz"));
+                stm.getBusinessEntity().add(tm);
+                publication.saveBusiness(stm);
+        }
+        
+        
+         @Test
+        public void ReplacedByValid6DifferentOwners() throws Exception {
+                BusinessEntity tm = new BusinessEntity();
+                tm.setBusinessKey(TckTModel.MARY_KEY_PREFIX + "testbiz");
+                tm.getName().add(new Name("My old business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                SaveBusiness stm = new SaveBusiness();
+                stm.setAuthInfo(authInfoMary);
+                stm.getBusinessEntity().add(tm);
+                publication.saveBusiness(stm);
+
+                tm = new BusinessEntity();
+                tm.setBusinessKey(TckTModel.JOE_PUBLISHER_KEY_PREFIX + 
"oldbiz");
+                tm.getName().add(new Name("My new business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.setCategoryBag(new CategoryBag());
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_REPLACED_BY, "", TckTModel.MARY_KEY_PREFIX + 
"testbiz"));
+                stm = new SaveBusiness();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getBusinessEntity().add(tm);
+                publication.saveBusiness(stm);
+        }
+        
+           @Test
+        public void ReplacedByValid7DifferentOwners() throws Exception {
+                BusinessEntity tm = new BusinessEntity();
+                tm.setBusinessKey(TckTModel.MARY_KEY_PREFIX + "testbiz");
+                tm.getName().add(new Name("My old business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                SaveBusiness stm = new SaveBusiness();
+                stm.setAuthInfo(authInfoMary);
+                stm.getBusinessEntity().add(tm);
+                publication.saveBusiness(stm);
+
+                tm = new BusinessEntity();
+                tm.setBusinessKey(TckTModel.JOE_PUBLISHER_KEY_PREFIX + 
"oldbiz");
+                tm.getName().add(new Name("My new business", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.setIdentifierBag(new IdentifierBag());
+                tm.getIdentifierBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_REPLACED_BY, "", TckTModel.MARY_KEY_PREFIX + 
"testbiz"));
+                stm = new SaveBusiness();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getBusinessEntity().add(tm);
+                publication.saveBusiness(stm);
+        }
+
+        /**
+         * reference undefined tmodel
+         *
+         * @throws Exception
+         */
+        @Test(expected = ValueNotAllowedException.class)
+        public void ReplacedByInValid() throws Exception {
+
+                TModel tm = new TModel();
+                tm.setName(new Name("My new tmodel", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.setCategoryBag(new CategoryBag());
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_REPLACED_BY, "", 
TckTModel.JOE_PUBLISHER_KEY_PREFIX + UUID.randomUUID().toString()));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+        }
+
+        /**
+         * reference business key
+         *
+         * @throws Exception
+         */
+        @Test(expected = ValueNotAllowedException.class)
+        public void ReplacedByInValid2() throws Exception {
+
+                TModel tm = new TModel();
+                tm.setName(new Name("My new tmodel", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.setCategoryBag(new CategoryBag());
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_REPLACED_BY, "", 
"uddi:juddi.apache.org:businesses-asf"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+        }
+
+        @Test
+        public void RelationshipsValid() throws Exception {
+                TModel tm = new TModel();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.RELATIONSHIPS, "", "peer-peer"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void RelationshipsInValid() throws Exception {
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.RELATIONSHIPS, "", "asdasdasd"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+
+        }
+
+        @Test(expected = ValueNotAllowedException.class)
+        public void ClassLoadingTestsInValid() throws Exception {
+
+                //save a tmodel that's is validated but no validator exists
+                TModel tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                tm.setTModelKey(TckTModel.JOE_PUBLISHER_KEY_PREFIX + 
"nonexistentvalidator");
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(UDDIConstants.IS_VALIDATED_BY, 
UDDIConstants.IS_VALIDATED_BY_KEY_NAME, 
"uddi:juddi.apache.org:servicebindings-valueset-cp"));
+                SaveTModel stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+
+                tm = new TModel();
+                //tm.setTModelKey();
+                tm.setCategoryBag(new CategoryBag());
+                // 
tm.setTModelKey("uddi:uddi.org:categorization:nonexistentvalidator");
+                tm.setName(new Name("My Custom validated key", "en"));
+                tm.getDescription().add(new Description("valid values include 
'one', 'two', 'three'", "en"));
+                tm.getCategoryBag().getKeyedReference().add(new 
KeyedReference(TckTModel.JOE_PUBLISHER_KEY_PREFIX + "nonexistentvalidator", "", 
"asdasd"));
+                stm = new SaveTModel();
+                stm.setAuthInfo(authInfoJoe);
+                stm.getTModel().add(tm);
+                publication.saveTModel(stm);
+
+                //use it has a keyed reference, expect failure
+        }
 }


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

Reply via email to