This project has retired. For details please refer to its Attic page.
UDDI_140_NegativePublicationIntegrationTest xref
View Javadoc
1   /*
2    * Copyright 2001-2009 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *      http://www.apache.org/licenses/LICENSE-2.0
8    * 
9    * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  package org.apache.juddi.v3.tck;
16  
17  import java.rmi.RemoteException;
18  import java.util.List;
19  import java.util.UUID;
20  import javax.xml.soap.SOAPFault;
21  import javax.xml.ws.BindingProvider;
22  import javax.xml.ws.soap.SOAPFaultException;
23  
24  import org.apache.commons.configuration.ConfigurationException;
25  import org.apache.commons.logging.Log;
26  import org.apache.commons.logging.LogFactory;
27  import org.apache.juddi.api_v3.AccessPointType;
28  import org.apache.juddi.v3.client.config.UDDIClient;
29  import org.apache.juddi.v3.client.transport.Transport;
30  import org.junit.AfterClass;
31  import org.junit.Assert;
32  import org.junit.Assume;
33  import org.junit.BeforeClass;
34  import org.junit.Test;
35  import org.uddi.api_v3.AccessPoint;
36  import org.uddi.api_v3.Address;
37  import org.uddi.api_v3.AddressLine;
38  import org.uddi.api_v3.BindingTemplate;
39  import org.uddi.api_v3.BindingTemplates;
40  import org.uddi.api_v3.BusinessDetail;
41  import org.uddi.api_v3.BusinessEntity;
42  import org.uddi.api_v3.BusinessInfos;
43  import org.uddi.api_v3.BusinessService;
44  import org.uddi.api_v3.BusinessServices;
45  import org.uddi.api_v3.CategoryBag;
46  import org.uddi.api_v3.Contact;
47  import org.uddi.api_v3.Contacts;
48  import org.uddi.api_v3.DeleteBusiness;
49  import org.uddi.api_v3.DeleteTModel;
50  import org.uddi.api_v3.Description;
51  import org.uddi.api_v3.DiscoveryURL;
52  import org.uddi.api_v3.DiscoveryURLs;
53  import org.uddi.api_v3.Email;
54  import org.uddi.api_v3.HostingRedirector;
55  import org.uddi.api_v3.KeyedReference;
56  import org.uddi.api_v3.Name;
57  import org.uddi.api_v3.PersonName;
58  import org.uddi.api_v3.Phone;
59  import org.uddi.api_v3.SaveBusiness;
60  import org.uddi.api_v3.SaveTModel;
61  import org.uddi.api_v3.ServiceInfos;
62  import org.uddi.api_v3.TModel;
63  import org.uddi.api_v3.TModelDetail;
64  import org.uddi.v3_service.DispositionReportFaultMessage;
65  import org.uddi.v3_service.UDDIInquiryPortType;
66  import org.uddi.v3_service.UDDIPublicationPortType;
67  import org.uddi.v3_service.UDDISecurityPortType;
68  
69  /**
70   * The Negative Publication tests validates adherence to UDDI's string
71   * validations, max lengths, null values (and more) by sending bogus requests to
72   * a Publication endpoint. Tests that succeed or return stack traces are
73   * actually failing test cases
74   *
75   * This class is for the most part complete.
76   *
77   * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
78   */
79  public class UDDI_140_NegativePublicationIntegrationTest {
80  
81          private static Log logger = LogFactory.getLog(UDDI_140_NegativePublicationIntegrationTest.class);
82          static UDDISecurityPortType security = null;
83          static UDDIInquiryPortType inquiryJoe = null;
84          static UDDIPublicationPortType publicationJoe = null;
85          static TckTModel tckTModelJoe = null;
86          protected static String authInfoJoe = null;
87          private static UDDIClient manager;
88          static final String str256 = "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
89          static final String str255 = "uddi:tmodelkey:categories:1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
90          static final String strkey256 = "uddi:tmodelkey:categories:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
91          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";
92          static final String str26 = "11111111111111111111111111";
93          static final String str27 = "111111111111111111111111110";
94          static final String str10 = "0123456789";
95          static final String str11 = "01234567890";
96          static final String str80 = "01234567890123456789012345678901234567890123456789012345678901234567890123456789";
97          static final String str81 = "012345678901234567890123456789012345678901234567890123456789012345678901234567891";
98          static final String TRANS = "The transaction has been rolled back";
99          static final String str4096 = "12345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXX";
100         static final String str4097 = "12345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012345670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000XXXXXXXXZ";
101         static final String str51 = "111111111111111111111111111111111111111111111111111";
102         static final String str50 = "11111111111111111111111111111111111111111111111111";
103         static final String MISSING_RESOURCE = "Can't find resource for bundle";
104 
105         @AfterClass
106         public static void stopManager() throws ConfigurationException {
107              if (!TckPublisher.isEnabled()) return;
108                 tckTModelJoe.deleteCreatedTModels(authInfoJoe);
109                 manager.stop();
110         }
111 
112         @BeforeClass
113         public static void startManager() throws ConfigurationException {
114              if (!TckPublisher.isEnabled()) return;
115                 manager = new UDDIClient();
116                 manager.start();
117 
118                 logger.debug("Getting auth tokens..");
119                 try {
120                         Transport transport = manager.getTransport("uddiv3");
121                         security = transport.getUDDISecurityService();
122                         authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
123 
124 
125                         publicationJoe = transport.getUDDIPublishService();
126                         inquiryJoe = transport.getUDDIInquiryService();
127 
128                         if (!TckPublisher.isUDDIAuthMode()) {
129                                 TckSecurity.setCredentials((BindingProvider) publicationJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
130                                 TckSecurity.setCredentials((BindingProvider) inquiryJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
131                         }
132 
133 
134                         tckTModelJoe = new TckTModel(publicationJoe, inquiryJoe);
135 
136                         String authInfoUDDI = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword());
137 
138                         transport = manager.getTransport("uddiv3");
139                         UDDIPublicationPortType publicationJoe = transport.getUDDIPublishService();
140                         UDDIInquiryPortType inquiry = transport.getUDDIInquiryService();
141 
142                         if (!TckPublisher.isUDDIAuthMode()) {
143                                 TckSecurity.setCredentials((BindingProvider) publicationJoe, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword());
144                                 TckSecurity.setCredentials((BindingProvider) inquiry, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword());
145                         }
146 
147 
148                         TckTModel uddi = new TckTModel(publicationJoe, inquiry);
149                         uddi.saveUDDIPublisherTmodel(authInfoUDDI);
150                         uddi.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
151 
152                         tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
153                 } catch (Exception e) {
154                         logger.error(e.getMessage(), e);
155                         Assert.fail("Could not obtain authInfo token.");
156                 }
157                 JUDDI_300_MultiNodeIntegrationTest.testSetupReplicationConfig();
158         }
159 
160         static void HandleException(Exception ex) {
161                 if (logger.isDebugEnabled()) {
162                         logger.error("Error caught of type " + ex.getClass().getCanonicalName(),ex);
163                 }
164                 Assert.assertFalse(ex.getMessage().contains(TRANS));
165                 Assert.assertFalse(ex.getMessage().contains(MISSING_RESOURCE));
166                 if (ex instanceof SOAPFault) {
167                         SOAPFault sf = (SOAPFault) ex;
168                         if (!sf.getTextContent().contains("org.apache.juddi.v3.error.ValueNotAllowedException")) {
169                                 Assert.fail();
170                         }
171                 }
172         }
173 
174         //<editor-fold defaultstate="collapsed" desc="Business Name tests">
175         
176 
177         @Test(expected = SOAPFaultException.class)
178         public void BusinessKeyTooLongTest() throws DispositionReportFaultMessage, RemoteException {
179              Assume.assumeTrue(TckPublisher.isEnabled());
180                 logger.info("BusinessKeyTooLongTest");
181                 SaveBusiness sb = new SaveBusiness();
182                 sb.setAuthInfo(authInfoJoe);
183                 BusinessEntity be = new BusinessEntity();
184                 Name n = new Name();
185                 n.setValue("BusinessKeyTooLongTest -Hello Nurse");
186                 be.getName().add(n);
187                 be.setBusinessKey(strkey256_1);
188                 sb.getBusinessEntity().add(be);
189                 try {
190                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
191                         DeleteBusiness db = new DeleteBusiness();
192                         db.setAuthInfo(authInfoJoe);
193                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
194                         publicationJoe.deleteBusiness(db);
195                         Assert.fail("request should have been rejected");
196                 } catch (SOAPFaultException ex) {
197                         HandleException(ex);
198                         throw ex;
199                 }
200         }
201 
202         @Test(expected = SOAPFaultException.class)
203         public void BusinessNameTooShortTest() throws DispositionReportFaultMessage, RemoteException {
204              Assume.assumeTrue(TckPublisher.isEnabled());
205                 logger.info("BusinessNameTooShortTest");
206                 SaveBusiness sb = new SaveBusiness();
207                 sb.setAuthInfo(authInfoJoe);
208                 BusinessEntity be = new BusinessEntity();
209                 Name n = new Name();
210                 n.setValue("");
211                 be.getName().add(n);
212                 sb.getBusinessEntity().add(be);
213                 try {
214                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
215                         DeleteBusiness db = new DeleteBusiness();
216                         db.setAuthInfo(authInfoJoe);
217                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
218                         publicationJoe.deleteBusiness(db);
219                         Assert.fail("request should have been rejected");
220                 } catch (SOAPFaultException ex) {
221                         HandleException(ex);
222                         throw ex;
223                 }
224         }
225 
226         @Test
227         public void BusinessNameMinLengthTest() throws DispositionReportFaultMessage, RemoteException {
228              Assume.assumeTrue(TckPublisher.isEnabled());
229                 logger.info("BusinessNameMinLengthTest");
230                 SaveBusiness sb = new SaveBusiness();
231                 sb.setAuthInfo(authInfoJoe);
232                 BusinessEntity be = new BusinessEntity();
233                 Name n = new Name();
234                 n.setValue("1");
235                 be.getName().add(n);
236                 sb.getBusinessEntity().add(be);
237                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
238                 DeleteBusiness db = new DeleteBusiness();
239                 db.setAuthInfo(authInfoJoe);
240                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
241                 publicationJoe.deleteBusiness(db);
242         }
243 
244         @Test(expected = SOAPFaultException.class)
245         public void BusinessNameTooLongTest() throws DispositionReportFaultMessage, RemoteException {
246              Assume.assumeTrue(TckPublisher.isEnabled());
247                 logger.info("BusinessNameTooLongTest");
248                 SaveBusiness sb = new SaveBusiness();
249                 sb.setAuthInfo(authInfoJoe);
250                 BusinessEntity be = new BusinessEntity();
251                 Name n = new Name();
252                 //256 chars
253                 n.setValue(str256);
254                 be.getName().add(n);
255                 sb.getBusinessEntity().add(be);
256                 try {
257                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
258                         DeleteBusiness db = new DeleteBusiness();
259                         db.setAuthInfo(authInfoJoe);
260                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
261                         publicationJoe.deleteBusiness(db);
262                         Assert.fail("request should have been rejected");
263                 } catch (SOAPFaultException ex) {
264                         HandleException(ex);
265                         throw ex;
266                 }
267 
268         }
269 
270         @Test
271         public void BusinessNameMaxLengthTest() throws DispositionReportFaultMessage, RemoteException {
272              Assume.assumeTrue(TckPublisher.isEnabled());
273                 logger.info("BusinessNameMaxLengthTest");
274                 SaveBusiness sb = new SaveBusiness();
275                 sb.setAuthInfo(authInfoJoe);
276                 BusinessEntity be = new BusinessEntity();
277                 Name n = new Name();
278                 //255 chars
279                 n.setValue(str255);
280                 be.getName().add(n);
281                 sb.getBusinessEntity().add(be);
282                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
283                 DeleteBusiness db = new DeleteBusiness();
284                 db.setAuthInfo(authInfoJoe);
285                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
286                 publicationJoe.deleteBusiness(db);
287         }
288 
289         @Test(expected = SOAPFaultException.class)
290         public void BusinessNameLangTooLongTest() throws DispositionReportFaultMessage, RemoteException {
291              Assume.assumeTrue(TckPublisher.isEnabled());
292                 logger.info("BusinessNameLangTooLongTest");
293                 SaveBusiness sb = new SaveBusiness();
294                 sb.setAuthInfo(authInfoJoe);
295                 BusinessEntity be = new BusinessEntity();
296                 Name n = new Name();
297 
298                 n.setValue("BusinessNameLangTooLongTest A Test business");
299                 //27
300                 n.setLang(str27);
301                 be.getName().add(n);
302                 sb.getBusinessEntity().add(be);
303                 try {
304                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
305                         DeleteBusiness db = new DeleteBusiness();
306                         db.setAuthInfo(authInfoJoe);
307                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
308                         publicationJoe.deleteBusiness(db);
309                         Assert.fail("request should have been rejected");
310                 } catch (SOAPFaultException ex) {
311                         HandleException(ex);
312                         throw ex;
313                 }
314 
315         }
316 
317         @Test
318         public void BusinessNameLangMaxLengthTest() throws DispositionReportFaultMessage, RemoteException {
319              Assume.assumeTrue(TckPublisher.isEnabled());
320                 logger.info("BusinessNameLangMaxLengthTest");
321                 SaveBusiness sb = new SaveBusiness();
322                 sb.setAuthInfo(authInfoJoe);
323                 BusinessEntity be = new BusinessEntity();
324                 Name n = new Name();
325 
326                 n.setValue("BusinessNameLangMaxLengthTest A Test business");
327                 n.setLang(str26);
328 
329                 be.getName().add(n);
330                 sb.getBusinessEntity().add(be);
331                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
332                 DeleteBusiness db = new DeleteBusiness();
333                 db.setAuthInfo(authInfoJoe);
334                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
335                 publicationJoe.deleteBusiness(db);
336         }
337 
338         @Test(expected = SOAPFaultException.class)
339         public void BusinessDescriptionLangTooLongTest() throws DispositionReportFaultMessage, RemoteException {
340              Assume.assumeTrue(TckPublisher.isEnabled());
341                 logger.info("BusinessDescriptionLangTooLongTest");
342                 SaveBusiness sb = new SaveBusiness();
343                 sb.setAuthInfo(authInfoJoe);
344                 BusinessEntity be = new BusinessEntity();
345                 Name n = new Name();
346 
347                 n.setValue("BusinessDescriptionLangTooLongTest A Test business");
348                 Description d = new Description();
349                 d.setValue("a description");
350                 //27
351                 d.setLang(str27);
352                 be.getName().add(n);
353                 be.getDescription().add(d);
354                 sb.getBusinessEntity().add(be);
355                 try {
356                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
357                         DeleteBusiness db = new DeleteBusiness();
358                         db.setAuthInfo(authInfoJoe);
359                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
360                         publicationJoe.deleteBusiness(db);
361                         Assert.fail("request should have been rejected");
362                 } catch (SOAPFaultException ex) {
363                         HandleException(ex);
364                         throw ex;
365                 }
366 
367         }
368 
369         @Test
370         public void BusinessDescriptionLangMaxLengthTest() throws DispositionReportFaultMessage, RemoteException {
371              Assume.assumeTrue(TckPublisher.isEnabled());
372                 logger.info("BusinessDescriptionLangMaxLengthTest");
373                 SaveBusiness sb = new SaveBusiness();
374                 sb.setAuthInfo(authInfoJoe);
375                 BusinessEntity be = new BusinessEntity();
376                 Name n = new Name();
377 
378                 n.setValue("BusinessDescriptionLangMaxLengthTest A Test business");
379                 Description d = new Description();
380                 d.setValue("a description");
381                 //26
382                 d.setLang(str26);
383                 be.getDescription().add(d);
384                 be.getName().add(n);
385                 sb.getBusinessEntity().add(be);
386                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
387                 DeleteBusiness db = new DeleteBusiness();
388                 db.setAuthInfo(authInfoJoe);
389                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
390                 publicationJoe.deleteBusiness(db);
391         }
392 
393         @Test
394         public void BusinessDescriptionMaxLengthTest() throws DispositionReportFaultMessage, RemoteException {
395              Assume.assumeTrue(TckPublisher.isEnabled());
396                 logger.info("BusinessDescriptionMaxLengthTest");
397                 SaveBusiness sb = new SaveBusiness();
398                 sb.setAuthInfo(authInfoJoe);
399                 BusinessEntity be = new BusinessEntity();
400                 Name n = new Name();
401 
402                 n.setValue("BusinessDescriptionMaxLengthTest A Test business");
403                 Description d = new Description();
404                 d.setValue(str255);
405                 be.getDescription().add(d);
406                 be.getName().add(n);
407                 sb.getBusinessEntity().add(be);
408 
409                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
410                 DeleteBusiness db = new DeleteBusiness();
411                 db.setAuthInfo(authInfoJoe);
412                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
413                 publicationJoe.deleteBusiness(db);
414         }
415 
416         @Test(expected = SOAPFaultException.class)
417         public void BusinessDescriptionTooLongLengthTest() throws DispositionReportFaultMessage, RemoteException {
418              Assume.assumeTrue(TckPublisher.isEnabled());
419                 logger.info("BusinessDescriptionTooLongLengthTest");
420                 SaveBusiness sb = new SaveBusiness();
421                 sb.setAuthInfo(authInfoJoe);
422                 BusinessEntity be = new BusinessEntity();
423                 Name n = new Name();
424 
425                 n.setValue("BusinessDescriptionTooLongLengthTest A Test business");
426                 Description d = new Description();
427                 d.setValue(str256);
428                 be.getDescription().add(d);
429                 be.getName().add(n);
430                 sb.getBusinessEntity().add(be);
431                 try {
432                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
433                         DeleteBusiness db = new DeleteBusiness();
434                         db.setAuthInfo(authInfoJoe);
435                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
436                         publicationJoe.deleteBusiness(db);
437                         Assert.fail("request should have been rejected");
438                 } catch (SOAPFaultException ex) {
439                         HandleException(ex);
440                         throw ex;
441                 }
442 
443         }
444 
445         @Test(expected = SOAPFaultException.class)
446         public void BusinessDiscoveryURLTooLongTest() throws DispositionReportFaultMessage, RemoteException {
447              Assume.assumeTrue(TckPublisher.isEnabled());
448                 logger.info("BusinessDiscoveryURLTooLongTest");
449                 SaveBusiness sb = new SaveBusiness();
450                 sb.setAuthInfo(authInfoJoe);
451                 BusinessEntity be = new BusinessEntity();
452                 Name n = new Name();
453 
454                 n.setValue("BusinessDiscoveryURLTooLongTest A Test business");
455                 be.getName().add(n);
456                 be.setDiscoveryURLs(new DiscoveryURLs());
457                 DiscoveryURL d = new DiscoveryURL();
458                 d.setValue(str4097);
459                 be.getDiscoveryURLs().getDiscoveryURL().add(d);
460                 sb.getBusinessEntity().add(be);
461                 try {
462                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
463                         DeleteBusiness db = new DeleteBusiness();
464                         db.setAuthInfo(authInfoJoe);
465                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
466                         publicationJoe.deleteBusiness(db);
467                         Assert.fail("request should have been rejected");
468                 } catch (SOAPFaultException ex) {
469                         HandleException(ex);
470                         throw ex;
471                 }
472 
473         }
474 
475         @Test
476         public void BusinessDiscoveryURLMaxLengthTest() throws DispositionReportFaultMessage, RemoteException {
477              Assume.assumeTrue(TckPublisher.isEnabled());
478                 logger.info("BusinessDiscoveryURLMaxLengthTest");
479                 SaveBusiness sb = new SaveBusiness();
480                 sb.setAuthInfo(authInfoJoe);
481                 BusinessEntity be = new BusinessEntity();
482                 Name n = new Name();
483 
484                 n.setValue("BusinessDiscoveryURLMaxLengthTest A Test business");
485                 be.getName().add(n);
486                 be.setDiscoveryURLs(new DiscoveryURLs());
487                 DiscoveryURL d = new DiscoveryURL();
488                 d.setValue(str4096);
489                 be.getDiscoveryURLs().getDiscoveryURL().add(d);
490                 sb.getBusinessEntity().add(be);
491 
492                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
493                 DeleteBusiness db = new DeleteBusiness();
494                 db.setAuthInfo(authInfoJoe);
495                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
496                 publicationJoe.deleteBusiness(db);
497         }
498 
499         @Test
500         public void BusinessDiscoveryURLMaxLengthMaxUseTypeTest() throws DispositionReportFaultMessage, RemoteException {
501              Assume.assumeTrue(TckPublisher.isEnabled());
502                 logger.info("BusinessDiscoveryURLMaxLengthMaxUseTypeTest");
503                 SaveBusiness sb = new SaveBusiness();
504                 sb.setAuthInfo(authInfoJoe);
505                 BusinessEntity be = new BusinessEntity();
506                 Name n = new Name();
507 
508                 n.setValue("BusinessDiscoveryURLMaxLengthMaxUseTypeTest A Test business");
509                 be.getName().add(n);
510                 be.setDiscoveryURLs(new DiscoveryURLs());
511                 DiscoveryURL d = new DiscoveryURL();
512                 d.setValue(str4096);
513                 d.setUseType(str255);
514                 be.getDiscoveryURLs().getDiscoveryURL().add(d);
515                 sb.getBusinessEntity().add(be);
516 
517                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
518                 DeleteBusiness db = new DeleteBusiness();
519                 db.setAuthInfo(authInfoJoe);
520                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
521                 publicationJoe.deleteBusiness(db);
522         }
523 
524         @Test(expected = SOAPFaultException.class)
525         public void BusinessDiscoveryURLMaxLengthToolongUseTypeTest() throws DispositionReportFaultMessage, RemoteException {
526              Assume.assumeTrue(TckPublisher.isEnabled());
527                 logger.info("BusinessDiscoveryURLMaxLengthToolongUseTypeTest");
528                 SaveBusiness sb = new SaveBusiness();
529                 sb.setAuthInfo(authInfoJoe);
530                 BusinessEntity be = new BusinessEntity();
531                 Name n = new Name();
532 
533                 n.setValue("BusinessDiscoveryURLMaxLengthToolongUseTypeTest A Test business");
534                 be.getName().add(n);
535                 be.setDiscoveryURLs(new DiscoveryURLs());
536                 DiscoveryURL d = new DiscoveryURL();
537                 d.setValue(str4096);
538                 d.setUseType(str256);
539                 be.getDiscoveryURLs().getDiscoveryURL().add(d);
540                 sb.getBusinessEntity().add(be);
541                 try {
542                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
543                         DeleteBusiness db = new DeleteBusiness();
544                         db.setAuthInfo(authInfoJoe);
545                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
546                         publicationJoe.deleteBusiness(db);
547                         Assert.fail("request should have been rejected");
548                 } catch (SOAPFaultException ex) {
549                         HandleException(ex);
550                         throw ex;
551                 }
552         }
553 
554         @Test
555         public void ContactMaxEmailMaxUseTypeTest() throws DispositionReportFaultMessage, RemoteException {
556              Assume.assumeTrue(TckPublisher.isEnabled());
557                 logger.info("ContactMaxEmailMaxUseTypeTest");
558                 SaveBusiness sb = new SaveBusiness();
559                 sb.setAuthInfo(authInfoJoe);
560                 BusinessEntity be = new BusinessEntity();
561                 Name n = new Name();
562                 n.setValue("ContactMaxEmailMaxUseTypeTest A Test business");
563                 be.getName().add(n);
564                 be.setContacts(ContactMaxEmailMaxUseType());
565                 sb.getBusinessEntity().add(be);
566 
567                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
568                 DeleteBusiness db = new DeleteBusiness();
569                 db.setAuthInfo(authInfoJoe);
570                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
571                 publicationJoe.deleteBusiness(db);
572         }
573 
574         private Contacts ContactMaxEmailMaxUseType() {
575                 Contacts cc = new Contacts();
576                 Contact c = new Contact();
577                 PersonName n = new PersonName();
578                 n.setValue("Bob");
579                 c.getPersonName().add(n);
580                 Email m = new Email();
581                 m.setValue(str255);
582                 m.setUseType(str255);
583                 c.getEmail().add(m);
584                 cc.getContact().add(c);;
585                 return cc;
586         }
587 
588         private Contacts ContactTooLongEmailMaxUseType() {
589                 Contacts cc = new Contacts();
590                 Contact c = new Contact();
591                 PersonName n = new PersonName();
592                 n.setValue("Bob");
593                 c.getPersonName().add(n);
594                 Email m = new Email();
595                 m.setValue(str256);
596                 m.setUseType(str255);
597                 c.getEmail().add(m);
598                 cc.getContact().add(c);;
599                 return cc;
600         }
601 
602         private Contacts ContactEmailUseTypeToolong() {
603                 Contacts cc = new Contacts();
604                 Contact c = new Contact();
605                 PersonName n = new PersonName();
606                 n.setValue("Bob");
607                 c.getPersonName().add(n);
608                 Email m = new Email();
609                 m.setValue(str255);
610                 m.setUseType(str256);
611                 c.getEmail().add(m);
612                 cc.getContact().add(c);;
613                 return cc;
614         }
615 
616         private Contacts ContactMaxDescription() {
617                 Contacts cc = new Contacts();
618                 Contact c = new Contact();
619                 PersonName n = new PersonName();
620                 n.setValue("Bob");
621                 c.getPersonName().add(n);
622                 Email m = new Email();
623                 m.setValue(str255);
624                 m.setUseType(str255);
625                 c.getEmail().add(m);
626                 Description d = new Description();
627                 d.setLang(str26);
628                 d.setValue(str255);
629                 c.getDescription().add(d);
630                 cc.getContact().add(c);;
631                 return cc;
632         }
633 
634         private Contacts ContactDescriptionTooLong() {
635                 Contacts cc = new Contacts();
636                 Contact c = new Contact();
637                 PersonName n = new PersonName();
638                 n.setValue("Bob");
639                 c.getPersonName().add(n);
640                 Email m = new Email();
641                 m.setValue(str255);
642                 m.setUseType(str255);
643                 c.getEmail().add(m);
644                 Description d = new Description();
645                 d.setLang(str256);
646                 d.setValue(str26);
647                 c.getDescription().add(d);
648                 cc.getContact().add(c);;
649                 return cc;
650         }
651 
652         private Contacts ContactPhoneTooLong() {
653                 Contacts cc = new Contacts();
654                 Contact c = new Contact();
655                 PersonName n = new PersonName();
656                 n.setValue("Bob");
657                 c.getPersonName().add(n);
658                 Phone p = new Phone();
659                 p.setValue(str51);
660                 c.getPhone().add(p);
661                 cc.getContact().add(c);;
662                 return cc;
663         }
664 
665         private Contacts ContactPhoneUseTypeTooLong() {
666                 Contacts cc = new Contacts();
667                 Contact c = new Contact();
668                 PersonName n = new PersonName();
669                 n.setValue("Bob");
670                 c.getPersonName().add(n);
671                 Phone p = new Phone();
672                 p.setValue(str50);
673                 p.setUseType(str256);
674                 c.getPhone().add(p);
675                 cc.getContact().add(c);;
676                 return cc;
677         }
678 
679         private Contacts ContactPhoneUseTypeMaxLen() {
680                 Contacts cc = new Contacts();
681                 Contact c = new Contact();
682                 PersonName n = new PersonName();
683                 n.setValue("Bob");
684                 c.getPersonName().add(n);
685                 Phone p = new Phone();
686                 p.setValue(str50);
687                 p.setUseType(str255);
688                 c.getPhone().add(p);
689                 cc.getContact().add(c);;
690                 return cc;
691         }
692 
693         private Contacts ContactPhoneMaxLength() {
694                 Contacts cc = new Contacts();
695                 Contact c = new Contact();
696                 PersonName n = new PersonName();
697                 n.setValue("Bob");
698                 c.getPersonName().add(n);
699                 Phone p = new Phone();
700                 p.setValue(str50);
701                 c.getPhone().add(p);
702                 cc.getContact().add(c);;
703                 return cc;
704         }
705 
706         private Contacts ContactAddressAllMax(boolean oversizedLang, boolean oversizedTmodel, boolean oversizedSortCode, boolean oversizedUseType,
707                 boolean oversizedAddressLineValue, boolean oversizedAddressKN, boolean oversizedAddressKV) {
708                 Contacts cc = new Contacts();
709                 Contact c = new Contact();
710                 PersonName n = new PersonName();
711                 n.setValue("Bob");
712                 c.getPersonName().add(n);
713 
714                 cc.getContact().add(c);
715                 Address a = new Address();
716                 if (oversizedSortCode) {
717                         a.setSortCode(str11);
718                 } else {
719                         a.setSortCode(str10);
720                 }
721                 if (oversizedLang) {
722                         a.setLang(str27);
723                 } else {
724                         a.setLang(str26);
725                 }
726                 if (oversizedTmodel) {
727                         a.setTModelKey(str256);
728                 } else {
729                         a.setTModelKey(str255);
730                 }
731                 if (oversizedUseType) {
732                         a.setUseType(str256);
733                 } else {
734                         a.setUseType(str255);
735                 }
736                 if (oversizedSortCode) {
737                         a.setSortCode(str11);
738                 } else {
739                         a.setSortCode(str10);
740                 }
741                 AddressLine al = new AddressLine();
742                 if (oversizedAddressKN) {
743                         al.setKeyName(str256); //optional
744                 } else {
745                         al.setKeyName(str255); //optional
746                 }
747                 if (oversizedAddressKV) {
748                         al.setKeyValue(str256); //optional
749                 } else {
750                         al.setKeyValue(str255); //optional
751                 }
752                 if (oversizedAddressLineValue) {
753                         al.setValue(str81); //this one is required
754                 } else {
755                         al.setValue(str80);
756                 }
757                 a.getAddressLine().add(al);
758                 c.getAddress().add(a);
759                 return cc;
760         }
761 
762         private Contacts ContactDescriptionLangTooLong() {
763                 Contacts cc = new Contacts();
764                 Contact c = new Contact();
765                 PersonName n = new PersonName();
766                 n.setValue("Bob");
767                 c.getPersonName().add(n);
768                 Email m = new Email();
769                 m.setValue(str255);
770                 m.setUseType(str255);
771                 c.getEmail().add(m);
772                 Description d = new Description();
773                 d.setLang(str255);
774                 d.setValue(str27);
775                 c.getDescription().add(d);
776                 cc.getContact().add(c);
777                 return cc;
778         }
779 
780         @Test(expected = SOAPFaultException.class)
781         public void ContactTooLongEmailMaxUseTypeTest() throws DispositionReportFaultMessage, RemoteException {
782              Assume.assumeTrue(TckPublisher.isEnabled());
783                 logger.info("ContactTooLongEmailMaxUseTypeTest");
784                 SaveBusiness sb = new SaveBusiness();
785                 sb.setAuthInfo(authInfoJoe);
786                 BusinessEntity be = new BusinessEntity();
787                 Name n = new Name();
788                 n.setValue("ContactTooLongEmailMaxUseTypeTest A Test business");
789                 be.getName().add(n);
790                 be.setContacts(ContactTooLongEmailMaxUseType());
791                 sb.getBusinessEntity().add(be);
792                 try {
793                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
794                         DeleteBusiness db = new DeleteBusiness();
795                         db.setAuthInfo(authInfoJoe);
796                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
797                         publicationJoe.deleteBusiness(db);
798                         Assert.fail("request should have been rejected");
799 
800                 } catch (SOAPFaultException ex) {
801                         HandleException(ex);
802                         throw ex;
803                 }
804         }
805 
806         @Test(expected = SOAPFaultException.class)
807         public void ContactMaxEmailToolongUseTypeTest() throws DispositionReportFaultMessage, RemoteException {
808              Assume.assumeTrue(TckPublisher.isEnabled());
809                 logger.info("ContactMaxEmailToolongUseTypeTest");
810                 SaveBusiness sb = new SaveBusiness();
811                 sb.setAuthInfo(authInfoJoe);
812                 BusinessEntity be = new BusinessEntity();
813                 Name n = new Name();
814                 n.setValue("ContactMaxEmailToolongUseTypeTest A Test business");
815                 be.getName().add(n);
816 
817                 be.setContacts(ContactEmailUseTypeToolong());
818 
819 
820                 sb.getBusinessEntity().add(be);
821                 try {
822                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
823                         DeleteBusiness db = new DeleteBusiness();
824                         db.setAuthInfo(authInfoJoe);
825                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
826                         publicationJoe.deleteBusiness(db);
827                         Assert.fail("request should have been rejected");
828 
829                 } catch (SOAPFaultException ex) {
830                         HandleException(ex);
831                         throw ex;
832                 }
833         }
834 
835         @Test
836         public void ContactDescriptionMaxLangMaxtest() throws DispositionReportFaultMessage, RemoteException {
837              Assume.assumeTrue(TckPublisher.isEnabled());
838                 logger.info("ContactDescriptionMaxLangMaxtest");
839                 SaveBusiness sb = new SaveBusiness();
840                 sb.setAuthInfo(authInfoJoe);
841                 BusinessEntity be = new BusinessEntity();
842                 Name n = new Name();
843                 n.setValue("ContactDescriptionMaxLangMaxtest A Test business");
844                 be.getName().add(n);
845                 be.setContacts(ContactMaxDescription());
846                 sb.getBusinessEntity().add(be);
847 
848                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
849                 DeleteBusiness db = new DeleteBusiness();
850                 db.setAuthInfo(authInfoJoe);
851                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
852                 publicationJoe.deleteBusiness(db);
853 
854         }
855 
856         @Test(expected = SOAPFaultException.class)
857         public void ContactDescriptionTooLongtest() throws DispositionReportFaultMessage, RemoteException {
858              Assume.assumeTrue(TckPublisher.isEnabled());
859                 logger.info("ContactDescriptionTooLongtest");
860                 SaveBusiness sb = new SaveBusiness();
861                 sb.setAuthInfo(authInfoJoe);
862                 BusinessEntity be = new BusinessEntity();
863                 Name n = new Name();
864                 n.setValue("ContactDescriptionTooLongtest A Test business");
865                 be.getName().add(n);
866                 be.setContacts(ContactDescriptionTooLong());
867                 sb.getBusinessEntity().add(be);
868                 try {
869                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
870                         DeleteBusiness db = new DeleteBusiness();
871                         db.setAuthInfo(authInfoJoe);
872                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
873                         publicationJoe.deleteBusiness(db);
874                         Assert.fail("request should have been rejected");
875 
876                 } catch (SOAPFaultException ex) {
877                         HandleException(ex);
878                         throw ex;
879                 }
880         }
881 
882         @Test(expected = SOAPFaultException.class)
883         public void ContactDescriptionLangTooLongTest() throws DispositionReportFaultMessage, RemoteException {
884              Assume.assumeTrue(TckPublisher.isEnabled());
885                 logger.info("ContactDescriptionLangTooLongTest");
886                 SaveBusiness sb = new SaveBusiness();
887                 sb.setAuthInfo(authInfoJoe);
888                 BusinessEntity be = new BusinessEntity();
889                 Name n = new Name();
890                 n.setValue("ContactDescriptionLangTooLongTest A Test business");
891                 be.getName().add(n);
892                 be.setContacts(ContactDescriptionLangTooLong());
893                 sb.getBusinessEntity().add(be);
894                 try {
895                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
896                         DeleteBusiness db = new DeleteBusiness();
897                         db.setAuthInfo(authInfoJoe);
898                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
899                         publicationJoe.deleteBusiness(db);
900                         Assert.fail("request should have been rejected");
901 
902                 } catch (SOAPFaultException ex) {
903                         HandleException(ex);
904                         throw ex;
905                 }
906         }
907 
908         @Test
909         public void ContactPhoneMaxLentest() throws DispositionReportFaultMessage, RemoteException {
910              Assume.assumeTrue(TckPublisher.isEnabled());
911                 logger.info("ContactPhoneMaxLentest");
912                 SaveBusiness sb = new SaveBusiness();
913                 sb.setAuthInfo(authInfoJoe);
914                 BusinessEntity be = new BusinessEntity();
915                 Name n = new Name();
916                 n.setValue("ContactPhoneMaxLentest A Test business");
917                 be.getName().add(n);
918                 be.setContacts(ContactPhoneMaxLength());
919                 sb.getBusinessEntity().add(be);
920 
921                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
922                 DeleteBusiness db = new DeleteBusiness();
923                 db.setAuthInfo(authInfoJoe);
924                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
925                 publicationJoe.deleteBusiness(db);
926 
927         }
928 
929         @Test(expected = SOAPFaultException.class)
930         public void ContactPhoneTooLongtest() throws DispositionReportFaultMessage, RemoteException {
931              Assume.assumeTrue(TckPublisher.isEnabled());
932                 logger.info("ContactPhoneTooLongtest");
933                 SaveBusiness sb = new SaveBusiness();
934                 sb.setAuthInfo(authInfoJoe);
935                 BusinessEntity be = new BusinessEntity();
936                 Name n = new Name();
937                 n.setValue("ContactPhoneTooLongtest A Test business");
938                 be.getName().add(n);
939                 be.setContacts(ContactPhoneTooLong());
940                 sb.getBusinessEntity().add(be);
941                 try {
942                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
943                         DeleteBusiness db = new DeleteBusiness();
944                         db.setAuthInfo(authInfoJoe);
945                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
946                         publicationJoe.deleteBusiness(db);
947                         Assert.fail("request should have been rejected");
948                 } catch (SOAPFaultException ex) {
949                         HandleException(ex);
950                         throw ex;
951                 }
952         }
953 
954         @Test
955         public void ContactPhoneMaxLongtest() throws DispositionReportFaultMessage, RemoteException {
956              Assume.assumeTrue(TckPublisher.isEnabled());
957                 logger.info("ContactPhoneMaxLongtest");
958                 SaveBusiness sb = new SaveBusiness();
959                 sb.setAuthInfo(authInfoJoe);
960                 BusinessEntity be = new BusinessEntity();
961                 Name n = new Name();
962                 n.setValue("ContactPhoneMaxLongtest A Test business");
963                 be.getName().add(n);
964                 be.setContacts(ContactPhoneMaxLength());
965                 sb.getBusinessEntity().add(be);
966                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
967                 DeleteBusiness db = new DeleteBusiness();
968                 db.setAuthInfo(authInfoJoe);
969                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
970                 publicationJoe.deleteBusiness(db);
971         }
972 
973         @Test
974         public void ContactPhoneMaxLongMaxUseTypetest() throws DispositionReportFaultMessage, RemoteException {
975              Assume.assumeTrue(TckPublisher.isEnabled());
976                 logger.info("ContactPhoneMaxLongMaxUseTypetest");
977                 SaveBusiness sb = new SaveBusiness();
978                 sb.setAuthInfo(authInfoJoe);
979                 BusinessEntity be = new BusinessEntity();
980                 Name n = new Name();
981                 n.setValue("ContactPhoneMaxLongMaxUseTypetest A Test business");
982                 be.getName().add(n);
983                 be.setContacts(ContactPhoneUseTypeMaxLen());
984                 sb.getBusinessEntity().add(be);
985 
986                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
987                 DeleteBusiness db = new DeleteBusiness();
988                 db.setAuthInfo(authInfoJoe);
989                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
990                 publicationJoe.deleteBusiness(db);
991         }
992 
993         @Test(expected = SOAPFaultException.class)
994         public void ContactPhoneUseTypeTooLongtest() throws DispositionReportFaultMessage, RemoteException {
995              Assume.assumeTrue(TckPublisher.isEnabled());
996                 logger.info("ContactPhoneUseTypeTooLongtest");
997                 SaveBusiness sb = new SaveBusiness();
998                 sb.setAuthInfo(authInfoJoe);
999                 BusinessEntity be = new BusinessEntity();
1000                 Name n = new Name();
1001                 n.setValue("ContactPhoneUseTypeTooLongtest A Test business");
1002                 be.getName().add(n);
1003                 be.setContacts(ContactPhoneUseTypeTooLong());
1004                 sb.getBusinessEntity().add(be);
1005                 try {
1006                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1007                         DeleteBusiness db = new DeleteBusiness();
1008                         db.setAuthInfo(authInfoJoe);
1009                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1010                         publicationJoe.deleteBusiness(db);
1011                         Assert.fail("request should have been rejected");
1012                 } catch (SOAPFaultException ex) {
1013                         HandleException(ex);
1014                         throw ex;
1015                 }
1016         }
1017 
1018         @Test
1019         public void ContactMaxAddressFFFFFFFtest() throws DispositionReportFaultMessage, RemoteException {
1020              Assume.assumeTrue(TckPublisher.isEnabled());
1021                 logger.info("ContactMaxAddressFFFFFFFtest");
1022                 SaveBusiness sb = new SaveBusiness();
1023                 sb.setAuthInfo(authInfoJoe);
1024                 BusinessEntity be = new BusinessEntity();
1025                 Name n = new Name();
1026                 n.setValue("ContactMaxAddressFFFFFFFtest A Test business");
1027                 be.getName().add(n);
1028                 be.setContacts(ContactAddressAllMax(false, false, false, false, false, false, false));
1029                 sb.getBusinessEntity().add(be);
1030 
1031                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1032                 DeleteBusiness db = new DeleteBusiness();
1033                 db.setAuthInfo(authInfoJoe);
1034                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1035                 publicationJoe.deleteBusiness(db);
1036 
1037         }
1038 
1039         @Test(expected = SOAPFaultException.class)
1040         public void ContactMaxAddressTFFFFFFtest() throws DispositionReportFaultMessage, RemoteException {
1041              Assume.assumeTrue(TckPublisher.isEnabled());
1042                 logger.info("ContactMaxAddressTFFFFFFtest");
1043                 SaveBusiness sb = new SaveBusiness();
1044                 sb.setAuthInfo(authInfoJoe);
1045                 BusinessEntity be = new BusinessEntity();
1046                 Name n = new Name();
1047                 n.setValue("ContactMaxAddressTFFFFFFtest A Test business");
1048                 be.getName().add(n);
1049                 be.setContacts(ContactAddressAllMax(true, false, false, false, false, false, false));
1050                 sb.getBusinessEntity().add(be);
1051                 try {
1052                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1053                         DeleteBusiness db = new DeleteBusiness();
1054                         db.setAuthInfo(authInfoJoe);
1055                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1056                         publicationJoe.deleteBusiness(db);
1057                         Assert.fail("request should have been rejected");
1058 
1059                 } catch (SOAPFaultException ex) {
1060                         HandleException(ex);
1061                         throw ex;
1062                 }
1063         }
1064 
1065         @Test(expected = SOAPFaultException.class)
1066         public void ContactMaxAddressFTFFFFFtest() throws DispositionReportFaultMessage, RemoteException {
1067              Assume.assumeTrue(TckPublisher.isEnabled());
1068                 logger.info("ContactMaxAddressFTFFFFFtest");
1069                 SaveBusiness sb = new SaveBusiness();
1070                 sb.setAuthInfo(authInfoJoe);
1071                 BusinessEntity be = new BusinessEntity();
1072                 Name n = new Name();
1073                 n.setValue("ContactMaxAddressFTFFFFFtest A Test business");
1074                 be.getName().add(n);
1075                 be.setContacts(ContactAddressAllMax(false, true, false, false, false, false, false));
1076                 sb.getBusinessEntity().add(be);
1077                 try {
1078                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1079                         DeleteBusiness db = new DeleteBusiness();
1080                         db.setAuthInfo(authInfoJoe);
1081                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1082                         publicationJoe.deleteBusiness(db);
1083                         Assert.fail("request should have been rejected");
1084 
1085                 } catch (SOAPFaultException ex) {
1086                         HandleException(ex);
1087                         throw ex;
1088                 }
1089         }
1090 
1091         @Test(expected = SOAPFaultException.class)
1092         public void ContactMaxAddressFFTFFFFtest() throws DispositionReportFaultMessage, RemoteException {
1093              Assume.assumeTrue(TckPublisher.isEnabled());
1094                 logger.info("ContactMaxAddressFFTFFFFtest");
1095                 SaveBusiness sb = new SaveBusiness();
1096                 sb.setAuthInfo(authInfoJoe);
1097                 BusinessEntity be = new BusinessEntity();
1098                 Name n = new Name();
1099                 n.setValue("ContactMaxAddressFFTFFFFtest A Test business");
1100                 be.getName().add(n);
1101                 be.setContacts(ContactAddressAllMax(false, false, true, false, false, false, false));
1102                 sb.getBusinessEntity().add(be);
1103                 try {
1104                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1105                         DeleteBusiness db = new DeleteBusiness();
1106                         db.setAuthInfo(authInfoJoe);
1107                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1108                         publicationJoe.deleteBusiness(db);
1109                         Assert.fail("request should have been rejected");
1110 
1111                 } catch (SOAPFaultException ex) {
1112                         HandleException(ex);
1113                         throw ex;
1114                 }
1115         }
1116 
1117         @Test(expected = SOAPFaultException.class)
1118         public void ContactMaxAddressFFFTFFFtest() throws DispositionReportFaultMessage, RemoteException {
1119              Assume.assumeTrue(TckPublisher.isEnabled());
1120                 logger.info("ContactMaxAddressFFFTFFFtest");
1121                 SaveBusiness sb = new SaveBusiness();
1122                 sb.setAuthInfo(authInfoJoe);
1123                 BusinessEntity be = new BusinessEntity();
1124                 Name n = new Name();
1125                 n.setValue("ContactMaxAddressFFFTFFFtest A Test business");
1126                 be.getName().add(n);
1127                 be.setContacts(ContactAddressAllMax(false, false, false, true, false, false, false));
1128                 sb.getBusinessEntity().add(be);
1129                 try {
1130                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1131                         DeleteBusiness db = new DeleteBusiness();
1132                         db.setAuthInfo(authInfoJoe);
1133                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1134                         publicationJoe.deleteBusiness(db);
1135                         Assert.fail("request should have been rejected");
1136                 } catch (SOAPFaultException ex) {
1137                         HandleException(ex);
1138                         throw ex;
1139                 }
1140         }
1141 
1142         @Test(expected = SOAPFaultException.class)
1143         public void ContactMaxAddressFFFFTFFtest() throws DispositionReportFaultMessage, RemoteException {
1144              Assume.assumeTrue(TckPublisher.isEnabled());
1145                 logger.info("ContactMaxAddressFFFFTFFtest");
1146                 SaveBusiness sb = new SaveBusiness();
1147                 sb.setAuthInfo(authInfoJoe);
1148                 BusinessEntity be = new BusinessEntity();
1149                 Name n = new Name();
1150                 n.setValue("ContactMaxAddressFFFFTFFtest A Test business");
1151                 be.getName().add(n);
1152                 be.setContacts(ContactAddressAllMax(false, false, false, false, true, false, false));
1153                 sb.getBusinessEntity().add(be);
1154                 try {
1155                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1156                         DeleteBusiness db = new DeleteBusiness();
1157                         db.setAuthInfo(authInfoJoe);
1158                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1159                         publicationJoe.deleteBusiness(db);
1160                         Assert.fail("request should have been rejected");
1161 
1162                 } catch (SOAPFaultException ex) {
1163                         HandleException(ex);
1164                         throw ex;
1165                 }
1166         }
1167 
1168         @Test(expected = SOAPFaultException.class)
1169         public void ContactMaxAddressFFFFFTFtest() throws DispositionReportFaultMessage, RemoteException {
1170              Assume.assumeTrue(TckPublisher.isEnabled());
1171                 logger.info("ContactMaxAddressFFFFFTFtest");
1172                 SaveBusiness sb = new SaveBusiness();
1173                 sb.setAuthInfo(authInfoJoe);
1174                 BusinessEntity be = new BusinessEntity();
1175                 Name n = new Name();
1176                 n.setValue("ContactMaxAddressFFFFFTFtest A Test business");
1177                 be.getName().add(n);
1178                 be.setContacts(ContactAddressAllMax(false, false, false, false, false, true, false));
1179                 sb.getBusinessEntity().add(be);
1180                 try {
1181                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1182                         DeleteBusiness db = new DeleteBusiness();
1183                         db.setAuthInfo(authInfoJoe);
1184                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1185                         publicationJoe.deleteBusiness(db);
1186                         Assert.fail("request should have been rejected");
1187 
1188                 } catch (SOAPFaultException ex) {
1189                         HandleException(ex);
1190                         throw ex;
1191                 }
1192         }
1193 
1194         @Test(expected = SOAPFaultException.class)
1195         public void ContactMaxAddressFFFFFFTtest() throws DispositionReportFaultMessage, RemoteException {
1196              Assume.assumeTrue(TckPublisher.isEnabled());
1197                 logger.info("ContactMaxAddressFFFFFFTtest");
1198                 SaveBusiness sb = new SaveBusiness();
1199                 sb.setAuthInfo(authInfoJoe);
1200                 BusinessEntity be = new BusinessEntity();
1201                 Name n = new Name();
1202                 n.setValue("ContactMaxAddressFFFFFFTtest A Test business");
1203                 be.getName().add(n);
1204                 be.setContacts(ContactAddressAllMax(false, false, false, false, false, false, true));
1205                 sb.getBusinessEntity().add(be);
1206                 try {
1207                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1208                         DeleteBusiness db = new DeleteBusiness();
1209                         db.setAuthInfo(authInfoJoe);
1210                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1211                         publicationJoe.deleteBusiness(db);
1212                         Assert.fail("request should have been rejected");
1213 
1214                 } catch (SOAPFaultException ex) {
1215                         HandleException(ex);
1216                         throw ex;
1217                 }
1218         }
1219 
1220         @Test
1221         public void KeyReferenceMax() throws DispositionReportFaultMessage, RemoteException {
1222              Assume.assumeTrue(TckPublisher.isEnabled());
1223                 logger.info("KeyReferenceMax");
1224                 SaveBusiness sb = new SaveBusiness();
1225                 sb.setAuthInfo(authInfoJoe);
1226                 BusinessEntity be = new BusinessEntity();
1227                 Name n = new Name();
1228                 n.setValue("KeyReferenceMax A Test business");
1229                 be.getName().add(n);
1230                 be.setCategoryBag(new CategoryBag());
1231                 KeyedReference kr = new KeyedReference();
1232                 kr.setKeyName(str255);
1233                 kr.setKeyValue(str255);
1234                 kr.setTModelKey(str255);
1235                 be.getCategoryBag().getKeyedReference().add(kr);
1236                 sb.getBusinessEntity().add(be);
1237 
1238                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1239                 DeleteBusiness db = new DeleteBusiness();
1240                 db.setAuthInfo(authInfoJoe);
1241                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1242                 publicationJoe.deleteBusiness(db);
1243         }
1244 
1245         @Test(expected = SOAPFaultException.class)
1246         public void KeyReferenceKeyTooLong() throws DispositionReportFaultMessage, RemoteException {
1247              Assume.assumeTrue(TckPublisher.isEnabled());
1248                 logger.info("KeyReferenceKeyTooLong");
1249                 SaveBusiness sb = new SaveBusiness();
1250                 sb.setAuthInfo(authInfoJoe);
1251                 BusinessEntity be = new BusinessEntity();
1252                 Name n = new Name();
1253                 n.setValue("KeyReferenceKeyTooLong A Test business");
1254                 be.getName().add(n);
1255                 be.setCategoryBag(new CategoryBag());
1256                 KeyedReference kr = new KeyedReference();
1257                 kr.setKeyName(str255);
1258                 kr.setKeyValue(str255);
1259                 kr.setTModelKey(str256);
1260                 be.getCategoryBag().getKeyedReference().add(kr);
1261                 sb.getBusinessEntity().add(be);
1262                 try {
1263                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1264                         DeleteBusiness db = new DeleteBusiness();
1265                         db.setAuthInfo(authInfoJoe);
1266                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1267                         publicationJoe.deleteBusiness(db);
1268                         Assert.fail("request should have been rejected");
1269 
1270                 } catch (SOAPFaultException ex) {
1271                         HandleException(ex);
1272                         throw ex;
1273                 }
1274         }
1275 
1276         @Test(expected = SOAPFaultException.class)
1277         public void KeyReferenceNameTooLong() throws DispositionReportFaultMessage, RemoteException {
1278              Assume.assumeTrue(TckPublisher.isEnabled());
1279                 logger.info("KeyReferenceNameTooLong");
1280                 SaveBusiness sb = new SaveBusiness();
1281                 sb.setAuthInfo(authInfoJoe);
1282                 BusinessEntity be = new BusinessEntity();
1283                 Name n = new Name();
1284                 n.setValue("KeyReferenceNameTooLong A Test business");
1285                 be.getName().add(n);
1286                 be.setCategoryBag(new CategoryBag());
1287                 KeyedReference kr = new KeyedReference();
1288                 kr.setKeyName(str256);
1289                 kr.setKeyValue(str255);
1290                 kr.setTModelKey(str255);
1291                 be.getCategoryBag().getKeyedReference().add(kr);
1292                 sb.getBusinessEntity().add(be);
1293                 try {
1294                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1295                         DeleteBusiness db = new DeleteBusiness();
1296                         db.setAuthInfo(authInfoJoe);
1297                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1298                         publicationJoe.deleteBusiness(db);
1299                         Assert.fail("request should have been rejected");
1300 
1301                 } catch (SOAPFaultException ex) {
1302                         HandleException(ex);
1303                         throw ex;
1304                 }
1305         }
1306 
1307         @Test(expected = SOAPFaultException.class)
1308         public void KeyReferenceValueTooLong() throws DispositionReportFaultMessage, RemoteException {
1309              Assume.assumeTrue(TckPublisher.isEnabled());
1310                 logger.info("KeyReferenceValueTooLong");
1311                 SaveBusiness sb = new SaveBusiness();
1312                 sb.setAuthInfo(authInfoJoe);
1313                 BusinessEntity be = new BusinessEntity();
1314                 Name n = new Name();
1315                 n.setValue("KeyReferenceValueTooLong A Test business");
1316                 be.getName().add(n);
1317                 be.setCategoryBag(new CategoryBag());
1318                 KeyedReference kr = new KeyedReference();
1319                 kr.setKeyName(str255);
1320                 kr.setKeyValue(str256);
1321                 kr.setTModelKey(str255);
1322                 be.getCategoryBag().getKeyedReference().add(kr);
1323                 sb.getBusinessEntity().add(be);
1324                 try {
1325                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1326                         DeleteBusiness db = new DeleteBusiness();
1327                         db.setAuthInfo(authInfoJoe);
1328                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1329                         publicationJoe.deleteBusiness(db);
1330                         Assert.fail("request should have been rejected");
1331 
1332                 } catch (SOAPFaultException ex) {
1333                         HandleException(ex);
1334                         throw ex;
1335                 }
1336         }
1337 
1338         @Test(expected = SOAPFaultException.class)
1339         public void ServiceNameTooLongTest() throws DispositionReportFaultMessage, RemoteException {
1340              Assume.assumeTrue(TckPublisher.isEnabled());
1341                 logger.info("ServiceNameTooLongTest");
1342                 SaveBusiness sb = new SaveBusiness();
1343                 sb.setAuthInfo(authInfoJoe);
1344                 BusinessEntity be = new BusinessEntity();
1345                 Name n = new Name();
1346                 n.setValue("ServiceNameTooLongTest A Test business");
1347                 be.getName().add(n);
1348                 be.setBusinessServices(new BusinessServices());
1349                 BusinessService bs = new BusinessService();
1350                 n = new Name();
1351                 n.setValue(str256);
1352                 bs.getName().add(n);
1353                 be.getBusinessServices().getBusinessService().add(bs);
1354 
1355                 sb.getBusinessEntity().add(be);
1356                 try {
1357                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1358                         DeleteBusiness db = new DeleteBusiness();
1359                         db.setAuthInfo(authInfoJoe);
1360                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1361                         publicationJoe.deleteBusiness(db);
1362                         Assert.fail("request should have been rejected");
1363 
1364                 } catch (SOAPFaultException ex) {
1365                         HandleException(ex);
1366                         throw ex;
1367                 }
1368         }
1369 
1370         @Test
1371         public void ServiceNameMaxLenTest() throws DispositionReportFaultMessage, RemoteException {
1372              Assume.assumeTrue(TckPublisher.isEnabled());
1373                 logger.info("ServiceNameMaxLenTest");
1374                 SaveBusiness sb = new SaveBusiness();
1375                 sb.setAuthInfo(authInfoJoe);
1376                 BusinessEntity be = new BusinessEntity();
1377                 Name n = new Name();
1378                 n.setValue("ServiceNameMaxLenTest A Test business");
1379                 be.getName().add(n);
1380                 be.setBusinessServices(new BusinessServices());
1381                 BusinessService bs = new BusinessService();
1382                 n = new Name();
1383                 n.setValue(str255);
1384                 bs.getName().add(n);
1385                 be.getBusinessServices().getBusinessService().add(bs);
1386 
1387                 sb.getBusinessEntity().add(be);
1388 
1389                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1390                 DeleteBusiness db = new DeleteBusiness();
1391                 db.setAuthInfo(authInfoJoe);
1392                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1393                 publicationJoe.deleteBusiness(db);
1394         }
1395 
1396         @Test
1397         public void ServiceNameMaxLangLenTest() throws DispositionReportFaultMessage, RemoteException {
1398              Assume.assumeTrue(TckPublisher.isEnabled());
1399                 logger.info("ServiceNameMaxLangLenTest");
1400                 SaveBusiness sb = new SaveBusiness();
1401                 sb.setAuthInfo(authInfoJoe);
1402                 BusinessEntity be = new BusinessEntity();
1403                 Name n = new Name();
1404                 n.setValue("ServiceNameMaxLangLenTest A Test business");
1405                 be.getName().add(n);
1406                 be.setBusinessServices(new BusinessServices());
1407                 BusinessService bs = new BusinessService();
1408                 n = new Name();
1409                 n.setValue(str255);
1410                 n.setLang(str26);
1411                 bs.getName().add(n);
1412                 be.getBusinessServices().getBusinessService().add(bs);
1413 
1414                 sb.getBusinessEntity().add(be);
1415 
1416                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1417                 DeleteBusiness db = new DeleteBusiness();
1418                 db.setAuthInfo(authInfoJoe);
1419                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1420                 publicationJoe.deleteBusiness(db);
1421         }
1422 
1423         @Test(expected = SOAPFaultException.class)
1424         public void ServiceNameTooLongLangTest() throws DispositionReportFaultMessage, RemoteException {
1425              Assume.assumeTrue(TckPublisher.isEnabled());
1426                 logger.info("ServiceNameTooLongLangTest");
1427                 SaveBusiness sb = new SaveBusiness();
1428                 sb.setAuthInfo(authInfoJoe);
1429                 BusinessEntity be = new BusinessEntity();
1430                 Name n = new Name();
1431                 n.setValue("ServiceNameTooLongLangTest A Test business");
1432                 be.getName().add(n);
1433                 be.setBusinessServices(new BusinessServices());
1434                 BusinessService bs = new BusinessService();
1435                 n = new Name();
1436                 n.setValue(str255);
1437                 n.setLang(str27);
1438                 bs.getName().add(n);
1439                 be.getBusinessServices().getBusinessService().add(bs);
1440 
1441                 sb.getBusinessEntity().add(be);
1442                 try {
1443                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1444                         DeleteBusiness db = new DeleteBusiness();
1445                         db.setAuthInfo(authInfoJoe);
1446                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1447                         publicationJoe.deleteBusiness(db);
1448                         Assert.fail("request should have been rejected");
1449 
1450                 } catch (SOAPFaultException ex) {
1451                         HandleException(ex);
1452                         throw ex;
1453                 }
1454         }
1455 
1456         @Test(expected = SOAPFaultException.class)
1457         public void ServiceDescTooLongTest() throws DispositionReportFaultMessage, RemoteException {
1458              Assume.assumeTrue(TckPublisher.isEnabled());
1459                 logger.info("ServiceDescTooLongTest");
1460                 SaveBusiness sb = new SaveBusiness();
1461                 sb.setAuthInfo(authInfoJoe);
1462                 BusinessEntity be = new BusinessEntity();
1463                 Name n = new Name();
1464                 n.setValue("ServiceDescTooLongTest A Test business");
1465                 be.getName().add(n);
1466                 be.setBusinessServices(new BusinessServices());
1467                 BusinessService bs = new BusinessService();
1468                 Description d = new Description();
1469                 d.setValue(str256);
1470                 bs.getDescription().add(d);
1471                 n = new Name();
1472                 n.setValue(str255);
1473                 bs.getName().add(n);
1474                 be.getBusinessServices().getBusinessService().add(bs);
1475 
1476                 sb.getBusinessEntity().add(be);
1477                 try {
1478                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1479                         DeleteBusiness db = new DeleteBusiness();
1480                         db.setAuthInfo(authInfoJoe);
1481                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1482                         publicationJoe.deleteBusiness(db);
1483                         Assert.fail("request should have been rejected");
1484 
1485                 } catch (SOAPFaultException ex) {
1486                         HandleException(ex);
1487                         throw ex;
1488                 }
1489         }
1490 
1491         @Test(expected = SOAPFaultException.class)
1492         public void ServiceDescLangTooLongTest() throws DispositionReportFaultMessage, RemoteException {
1493              Assume.assumeTrue(TckPublisher.isEnabled());
1494                 logger.info("ServiceDescLangTooLongTest");
1495                 SaveBusiness sb = new SaveBusiness();
1496                 sb.setAuthInfo(authInfoJoe);
1497                 BusinessEntity be = new BusinessEntity();
1498                 Name n = new Name();
1499                 n.setValue("ServiceDescLangTooLongTest A Test business");
1500                 be.getName().add(n);
1501                 be.setBusinessServices(new BusinessServices());
1502                 BusinessService bs = new BusinessService();
1503                 Description d = new Description();
1504                 d.setValue(str255);
1505                 d.setLang(str27);
1506                 bs.getDescription().add(d);
1507                 n = new Name();
1508                 n.setValue(str255);
1509                 bs.getName().add(n);
1510                 be.getBusinessServices().getBusinessService().add(bs);
1511 
1512                 sb.getBusinessEntity().add(be);
1513                 try {
1514                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1515                         DeleteBusiness db = new DeleteBusiness();
1516                         db.setAuthInfo(authInfoJoe);
1517                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1518                         publicationJoe.deleteBusiness(db);
1519                         Assert.fail("request should have been rejected");
1520 
1521                 } catch (SOAPFaultException ex) {
1522                         HandleException(ex);
1523                         throw ex;
1524                 }
1525         }
1526 
1527         @Test
1528         public void ServiceDescMaxLangTest() throws DispositionReportFaultMessage, RemoteException {
1529              Assume.assumeTrue(TckPublisher.isEnabled());
1530                 logger.info("ServiceDescMaxLangTest");
1531                 SaveBusiness sb = new SaveBusiness();
1532                 sb.setAuthInfo(authInfoJoe);
1533                 BusinessEntity be = new BusinessEntity();
1534                 Name n = new Name();
1535                 n.setValue("ServiceDescMaxLangTest A Test business");
1536                 be.getName().add(n);
1537                 be.setBusinessServices(new BusinessServices());
1538                 BusinessService bs = new BusinessService();
1539                 Description d = new Description();
1540                 d.setValue(str255);
1541                 d.setLang(str26);
1542                 bs.getDescription().add(d);
1543                 n = new Name();
1544                 n.setValue(str255);
1545                 bs.getName().add(n);
1546                 be.getBusinessServices().getBusinessService().add(bs);
1547 
1548                 sb.getBusinessEntity().add(be);
1549 
1550                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1551                 DeleteBusiness db = new DeleteBusiness();
1552                 db.setAuthInfo(authInfoJoe);
1553                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1554                 publicationJoe.deleteBusiness(db);
1555 
1556         }
1557 
1558         @Test
1559         public void ServiceMaxCatBagTest() throws DispositionReportFaultMessage, RemoteException {
1560              Assume.assumeTrue(TckPublisher.isEnabled());
1561                 logger.info("ServiceDescMaxLangTest");
1562                 SaveBusiness sb = new SaveBusiness();
1563                 sb.setAuthInfo(authInfoJoe);
1564                 BusinessEntity be = new BusinessEntity();
1565                 Name n = new Name();
1566                 n.setValue("ServiceDescMaxLangTest A Test business");
1567                 be.getName().add(n);
1568                 be.setBusinessServices(new BusinessServices());
1569                 BusinessService bs = new BusinessService();
1570                 Description d = new Description();
1571                 d.setValue(str255);
1572                 d.setLang(str26);
1573                 bs.getDescription().add(d);
1574                 n = new Name();
1575                 n.setValue(str255);
1576                 bs.getName().add(n);
1577                 bs.setCategoryBag(new CategoryBag());
1578                 KeyedReference kr = new KeyedReference();
1579                 kr.setKeyName(str255);
1580                 kr.setKeyValue(str255);
1581                 kr.setTModelKey(str255);
1582                 bs.getCategoryBag().getKeyedReference().add(kr);
1583                 be.getBusinessServices().getBusinessService().add(bs);
1584 
1585                 sb.getBusinessEntity().add(be);
1586 
1587                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1588                 DeleteBusiness db = new DeleteBusiness();
1589                 db.setAuthInfo(authInfoJoe);
1590                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1591                 publicationJoe.deleteBusiness(db);
1592         }
1593 
1594         @Test(expected = SOAPFaultException.class)
1595         public void ServiceMaxCatBagTooBigTest() throws DispositionReportFaultMessage, RemoteException {
1596              Assume.assumeTrue(TckPublisher.isEnabled());
1597                 logger.info("ServiceMaxCatBagTooBigTest");
1598                 SaveBusiness sb = new SaveBusiness();
1599                 sb.setAuthInfo(authInfoJoe);
1600                 BusinessEntity be = new BusinessEntity();
1601                 Name n = new Name();
1602                 n.setValue("ServiceMaxCatBagTooBigTest A Test business");
1603                 be.getName().add(n);
1604                 be.setBusinessServices(new BusinessServices());
1605                 BusinessService bs = new BusinessService();
1606                 Description d = new Description();
1607                 d.setValue(str255);
1608                 d.setLang(str26);
1609                 bs.getDescription().add(d);
1610                 n = new Name();
1611                 n.setValue(str255);
1612                 bs.getName().add(n);
1613                 bs.setCategoryBag(new CategoryBag());
1614                 KeyedReference kr = new KeyedReference();
1615                 kr.setKeyName(str256);
1616                 kr.setKeyValue(str256);
1617                 kr.setTModelKey(str256);
1618                 bs.getCategoryBag().getKeyedReference().add(kr);
1619                 be.getBusinessServices().getBusinessService().add(bs);
1620 
1621                 sb.getBusinessEntity().add(be);
1622                 try {
1623                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1624                         DeleteBusiness db = new DeleteBusiness();
1625                         db.setAuthInfo(authInfoJoe);
1626                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1627                         publicationJoe.deleteBusiness(db);
1628                         Assert.fail("request should have been rejected");
1629 
1630                 } catch (SOAPFaultException ex) {
1631                         HandleException(ex);
1632                         throw ex;
1633                 }
1634         }
1635 
1636         @Test(expected = SOAPFaultException.class)
1637         public void BindingTemplateNoAccessPointTest() throws DispositionReportFaultMessage, RemoteException {
1638              Assume.assumeTrue(TckPublisher.isEnabled());
1639                 logger.info("BindingTemplateNoAccessPointTest");
1640                 SaveBusiness sb = new SaveBusiness();
1641                 sb.setAuthInfo(authInfoJoe);
1642                 BusinessEntity be = new BusinessEntity();
1643                 Name n = new Name();
1644                 n.setValue("BindingTemplateNoAccessPointTest A Test business");
1645                 be.getName().add(n);
1646                 be.setBusinessServices(new BusinessServices());
1647                 BusinessService bs = new BusinessService();
1648 
1649                 n = new Name();
1650                 n.setValue(str255);
1651                 bs.getName().add(n);
1652                 BindingTemplate bt = new BindingTemplate();
1653                 bs.setBindingTemplates(new BindingTemplates());
1654                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1655 
1656                 be.getBusinessServices().getBusinessService().add(bs);
1657 
1658                 sb.getBusinessEntity().add(be);
1659                 try {
1660                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1661                         DeleteBusiness db = new DeleteBusiness();
1662                         db.setAuthInfo(authInfoJoe);
1663                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1664                         publicationJoe.deleteBusiness(db);
1665                         Assert.fail("request should have been rejected");
1666 
1667                 } catch (SOAPFaultException ex) {
1668                         HandleException(ex);
1669                         throw ex;
1670                 }
1671         }
1672 
1673         @Test
1674         public void BindingTemplateAccessPointMaxUseTypeTest() throws DispositionReportFaultMessage, RemoteException {
1675              Assume.assumeTrue(TckPublisher.isEnabled());
1676                 logger.info("BindingTemplateAccessPointMaxUseTypeTest");
1677                 SaveBusiness sb = new SaveBusiness();
1678                 sb.setAuthInfo(authInfoJoe);
1679                 BusinessEntity be = new BusinessEntity();
1680                 Name n = new Name();
1681                 n.setValue("BindingTemplateAccessPointMaxUseTypeTest A Test business");
1682                 be.getName().add(n);
1683                 be.setBusinessServices(new BusinessServices());
1684                 BusinessService bs = new BusinessService();
1685 
1686                 n = new Name();
1687                 n.setValue(str255);
1688                 bs.getName().add(n);
1689                 BindingTemplate bt = new BindingTemplate();
1690                 bs.setBindingTemplates(new BindingTemplates());
1691                 AccessPoint ap = new AccessPoint();
1692                 ap.setUseType(str255);
1693                 ap.setValue("http://localhost");
1694                 bt.setAccessPoint(ap);
1695                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1696 
1697                 be.getBusinessServices().getBusinessService().add(bs);
1698 
1699                 sb.getBusinessEntity().add(be);
1700 
1701                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1702                 DeleteBusiness db = new DeleteBusiness();
1703                 db.setAuthInfo(authInfoJoe);
1704                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1705                 publicationJoe.deleteBusiness(db);
1706         }
1707 
1708         @Test(expected = SOAPFaultException.class)
1709         public void BindingTemplateAccessPointUseTypeTooLongTest() throws DispositionReportFaultMessage, RemoteException {
1710              Assume.assumeTrue(TckPublisher.isEnabled());
1711                 logger.info("BindingTemplateAccessPointUseTypeTooLongTest");
1712                 SaveBusiness sb = new SaveBusiness();
1713                 sb.setAuthInfo(authInfoJoe);
1714                 BusinessEntity be = new BusinessEntity();
1715                 Name n = new Name();
1716                 n.setValue("BindingTemplateAccessPointUseTypeTooLongTest A Test business");
1717                 be.getName().add(n);
1718                 be.setBusinessServices(new BusinessServices());
1719                 BusinessService bs = new BusinessService();
1720 
1721                 n = new Name();
1722                 n.setValue(str255);
1723                 bs.getName().add(n);
1724                 BindingTemplate bt = new BindingTemplate();
1725                 bs.setBindingTemplates(new BindingTemplates());
1726                 AccessPoint ap = new AccessPoint();
1727                 ap.setUseType(str256);
1728                 ap.setValue("http://localhost");
1729                 bt.setAccessPoint(ap);
1730                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1731 
1732                 be.getBusinessServices().getBusinessService().add(bs);
1733 
1734                 sb.getBusinessEntity().add(be);
1735                 try {
1736                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1737                         DeleteBusiness db = new DeleteBusiness();
1738                         db.setAuthInfo(authInfoJoe);
1739                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1740                         publicationJoe.deleteBusiness(db);
1741                         Assert.fail("request should have been rejected");
1742 
1743                 } catch (SOAPFaultException ex) {
1744                         HandleException(ex);
1745                         throw ex;
1746                 }
1747         }
1748 
1749         @Test(expected = SOAPFaultException.class)
1750         public void BindingTemplateAccessPointValueTooLongTest() throws DispositionReportFaultMessage, RemoteException {
1751              Assume.assumeTrue(TckPublisher.isEnabled());
1752                 logger.info("BindingTemplateAccessPointValueTooLongTest");
1753                 SaveBusiness sb = new SaveBusiness();
1754                 sb.setAuthInfo(authInfoJoe);
1755                 BusinessEntity be = new BusinessEntity();
1756                 Name n = new Name();
1757                 n.setValue("BindingTemplateAccessPointValueTooLongTest A Test business");
1758                 be.getName().add(n);
1759                 be.setBusinessServices(new BusinessServices());
1760                 BusinessService bs = new BusinessService();
1761 
1762                 n = new Name();
1763                 n.setValue(str255);
1764                 bs.getName().add(n);
1765                 BindingTemplate bt = new BindingTemplate();
1766                 bs.setBindingTemplates(new BindingTemplates());
1767                 AccessPoint ap = new AccessPoint();
1768                 ap.setUseType(str255);
1769                 ap.setValue(str4097);
1770                 bt.setAccessPoint(ap);
1771                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1772 
1773                 be.getBusinessServices().getBusinessService().add(bs);
1774 
1775                 sb.getBusinessEntity().add(be);
1776                 try {
1777                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1778                         DeleteBusiness db = new DeleteBusiness();
1779                         db.setAuthInfo(authInfoJoe);
1780                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1781                         publicationJoe.deleteBusiness(db);
1782                         Assert.fail("request should have been rejected");
1783 
1784                 } catch (SOAPFaultException ex) {
1785                         HandleException(ex);
1786                         throw ex;
1787                 }
1788         }
1789 
1790         @Test
1791         public void BindingTemplateAccessPointMaxValueTest() throws DispositionReportFaultMessage, RemoteException {
1792              Assume.assumeTrue(TckPublisher.isEnabled());
1793                 logger.info("BindingTemplateAccessPointMaxValueTest");
1794                 SaveBusiness sb = new SaveBusiness();
1795                 sb.setAuthInfo(authInfoJoe);
1796                 BusinessEntity be = new BusinessEntity();
1797                 Name n = new Name();
1798                 n.setValue("BindingTemplateAccessPointMaxValueTest A Test business");
1799                 be.getName().add(n);
1800                 be.setBusinessServices(new BusinessServices());
1801                 BusinessService bs = new BusinessService();
1802 
1803                 n = new Name();
1804                 n.setValue(str255);
1805                 bs.getName().add(n);
1806                 BindingTemplate bt = new BindingTemplate();
1807                 bs.setBindingTemplates(new BindingTemplates());
1808                 AccessPoint ap = new AccessPoint();
1809                 ap.setUseType(str255);
1810                 ap.setValue(str4096);
1811                 bt.setAccessPoint(ap);
1812                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1813 
1814                 be.getBusinessServices().getBusinessService().add(bs);
1815 
1816                 sb.getBusinessEntity().add(be);
1817 
1818                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1819                 DeleteBusiness db = new DeleteBusiness();
1820                 db.setAuthInfo(authInfoJoe);
1821                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1822                 publicationJoe.deleteBusiness(db);
1823         }
1824 
1825         @Test(expected = SOAPFaultException.class)
1826         public void BindingTemplateNoAccessPointNoRedirectorTest() throws DispositionReportFaultMessage, RemoteException {
1827              Assume.assumeTrue(TckPublisher.isEnabled());
1828                 logger.info("BindingTemplateNoAccessPointNoRedirectorTest");
1829                 SaveBusiness sb = new SaveBusiness();
1830                 sb.setAuthInfo(authInfoJoe);
1831                 BusinessEntity be = new BusinessEntity();
1832                 Name n = new Name();
1833                 n.setValue("BindingTemplateNoAccessPointNoRedirectorTest A Test business");
1834                 be.getName().add(n);
1835                 be.setBusinessServices(new BusinessServices());
1836                 BusinessService bs = new BusinessService();
1837 
1838 
1839                 n = new Name();
1840                 n.setValue(str255);
1841                 bs.getName().add(n);
1842                 BindingTemplate bt = new BindingTemplate();
1843                 bs.setBindingTemplates(new BindingTemplates());
1844 
1845                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1846 
1847                 be.getBusinessServices().getBusinessService().add(bs);
1848 
1849                 sb.getBusinessEntity().add(be);
1850                 try {
1851                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1852                         DeleteBusiness db = new DeleteBusiness();
1853                         db.setAuthInfo(authInfoJoe);
1854                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1855                         publicationJoe.deleteBusiness(db);
1856                         Assert.fail("request should have been rejected");
1857 
1858                 } catch (SOAPFaultException ex) {
1859                         HandleException(ex);
1860                         throw ex;
1861                 }
1862         }
1863 
1864         @Test(expected = SOAPFaultException.class)
1865         public void BindingTemplateAccessPointAndRedirectorTest() throws DispositionReportFaultMessage, RemoteException {
1866              Assume.assumeTrue(TckPublisher.isEnabled());
1867                 logger.info("BindingTemplateAccessPointAndRedirectorTest");
1868                 SaveBusiness sb = new SaveBusiness();
1869                 sb.setAuthInfo(authInfoJoe);
1870                 BusinessEntity be = new BusinessEntity();
1871                 Name n = new Name();
1872                 n.setValue("BindingTemplateAccessPointAndRedirectorTest A Test business");
1873                 be.getName().add(n);
1874                 be.setBusinessServices(new BusinessServices());
1875                 BusinessService bs = new BusinessService();
1876 
1877                 n = new Name();
1878                 n.setValue(str255);
1879                 bs.getName().add(n);
1880                 BindingTemplate bt = new BindingTemplate();
1881                 bs.setBindingTemplates(new BindingTemplates());
1882                 bt.setAccessPoint(new AccessPoint());
1883                 bt.getAccessPoint().setUseType(str26);
1884 
1885                 bt.setHostingRedirector(new HostingRedirector());
1886 
1887                 bt.getHostingRedirector().setBindingKey(str26);
1888                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1889 
1890                 be.getBusinessServices().getBusinessService().add(bs);
1891 
1892                 sb.getBusinessEntity().add(be);
1893                 try {
1894                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1895                         DeleteBusiness db = new DeleteBusiness();
1896                         db.setAuthInfo(authInfoJoe);
1897                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1898                         publicationJoe.deleteBusiness(db);
1899                         Assert.fail("request should have been rejected");
1900 
1901                 } catch (SOAPFaultException ex) {
1902                         HandleException(ex);
1903                         throw ex;
1904                 }
1905         }
1906 
1907         @Test
1908         public void BindingTemplateHostRedirectorReferencalIntegritytest() throws DispositionReportFaultMessage, RemoteException {
1909              Assume.assumeTrue(TckPublisher.isEnabled());
1910                 logger.info("BindingTemplateHostRedirectorReferencalIntegritytest");
1911                 //TODO create a binding template, get the key, use the key as the specific redirector
1912                 String url = "http://juddi.apache.org";
1913                 SaveBusiness sb = new SaveBusiness();
1914                 sb.setAuthInfo(authInfoJoe);
1915                 BusinessEntity be = new BusinessEntity();
1916                 Name n = new Name();
1917                 n.setValue("BindingTemplateHostRedirectorReferencalIntegritytest A Test business");
1918                 be.getName().add(n);
1919                 be.setBusinessServices(new BusinessServices());
1920                 BusinessService bs = new BusinessService();
1921 
1922                 n = new Name();
1923                 n.setValue("A first business service");
1924                 bs.getName().add(n);
1925                 BindingTemplate bt = new BindingTemplate();
1926                 bs.setBindingTemplates(new BindingTemplates());
1927                 bt.setAccessPoint(new AccessPoint());
1928                 bt.getAccessPoint().setValue(url);
1929 
1930                 //bt.setHostingRedirector(new HostingRedirector());
1931                 //bt.getHostingRedirector().setBindingKey(str255);
1932                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1933 
1934                 be.getBusinessServices().getBusinessService().add(bs);
1935 
1936                 sb.getBusinessEntity().add(be);
1937 
1938                 logger.info("Saving the business with the first service");
1939                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
1940 
1941                 TckCommon.PrintBusinessDetails(saveBusiness.getBusinessEntity());
1942 
1943                 //setup the next one
1944                 bs = new BusinessService();
1945                 n = new Name();
1946                 n.setValue("A a redirected business service");
1947                 bt = new BindingTemplate();
1948                 bt.setHostingRedirector(new HostingRedirector());
1949                 bt.getHostingRedirector().setBindingKey(saveBusiness.getBusinessEntity().get(0).getBusinessServices().getBusinessService().get(0).getBindingTemplates().getBindingTemplate().get(0).getBindingKey());
1950                 bs.getName().add(n);
1951                 bs.setBindingTemplates(new BindingTemplates());
1952                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1953                 saveBusiness.getBusinessEntity().get(0).getBusinessServices().getBusinessService().add(bs);
1954 
1955                 sb = new SaveBusiness();
1956                 sb.setAuthInfo(authInfoJoe);
1957                 sb.getBusinessEntity().add(saveBusiness.getBusinessEntity().get(0));
1958 
1959                 //This SHOULD be allowed
1960                 logger.info("Saving the business with the first and second service as a host redirect");
1961                 saveBusiness = publicationJoe.saveBusiness(sb);
1962                 TckCommon.PrintBusinessDetails(saveBusiness.getBusinessEntity());
1963 
1964                 DeleteBusiness db = new DeleteBusiness();
1965                 db.setAuthInfo(authInfoJoe);
1966                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
1967                 publicationJoe.deleteBusiness(db);
1968         }
1969 
1970         @Test
1971         public void BindingTemplateAccessPointAsBindingTemplateReferencalIntegritytest() throws DispositionReportFaultMessage, RemoteException {
1972              Assume.assumeTrue(TckPublisher.isEnabled());
1973                 logger.info("BindingTemplateAccessPointAsBindingTemplateReferencalIntegritytest");
1974                 //create a binding template, get the key, use the key as the specific redirector
1975                 String url = "http://juddi.apache.org";
1976                 SaveBusiness sb = new SaveBusiness();
1977                 sb.setAuthInfo(authInfoJoe);
1978                 BusinessEntity be = new BusinessEntity();
1979                 Name n = new Name();
1980                 n.setValue("BindingTemplateAccessPointAsBindingTemplateReferencalIntegritytest A Test business");
1981                 be.getName().add(n);
1982                 be.setBusinessServices(new BusinessServices());
1983                 BusinessService bs = new BusinessService();
1984 
1985                 n = new Name();
1986                 n.setValue("A first business service");
1987                 bs.getName().add(n);
1988                 BindingTemplate bt = new BindingTemplate();
1989                 bs.setBindingTemplates(new BindingTemplates());
1990                 bt.setAccessPoint(new AccessPoint());
1991                 bt.getAccessPoint().setValue(url);
1992 
1993                 //bt.setHostingRedirector(new HostingRedirector());
1994                 //bt.getHostingRedirector().setBindingKey(str255);
1995                 bs.getBindingTemplates().getBindingTemplate().add(bt);
1996 
1997                 be.getBusinessServices().getBusinessService().add(bs);
1998 
1999                 sb.getBusinessEntity().add(be);
2000                 logger.info("Saving the business with the first service");
2001                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
2002 
2003                 TckCommon.PrintBusinessDetails(saveBusiness.getBusinessEntity());
2004 
2005                 //setup the next one
2006                 bs = new BusinessService();
2007                 n = new Name();
2008                 n.setValue("A a redirected business service");
2009                 bt = new BindingTemplate();
2010                 bt.setAccessPoint(new AccessPoint());
2011                 bt.getAccessPoint().setUseType(AccessPointType.BINDING_TEMPLATE.toString());
2012                 bt.getAccessPoint().setValue(saveBusiness.getBusinessEntity().get(0).getBusinessServices().getBusinessService().get(0).getBindingTemplates().getBindingTemplate().get(0).getBindingKey());
2013                 bs.getName().add(n);
2014                 bs.setBindingTemplates(new BindingTemplates());
2015                 bs.getBindingTemplates().getBindingTemplate().add(bt);
2016                 saveBusiness.getBusinessEntity().get(0).getBusinessServices().getBusinessService().add(bs);
2017 
2018                 sb = new SaveBusiness();
2019                 sb.setAuthInfo(authInfoJoe);
2020                 sb.getBusinessEntity().add(saveBusiness.getBusinessEntity().get(0));
2021 
2022                 //This SHOULD be allowed
2023                 logger.info("Saving the business with the first and second service as a host redirect");
2024                 saveBusiness = publicationJoe.saveBusiness(sb);
2025                 TckCommon.PrintBusinessDetails(saveBusiness.getBusinessEntity());
2026 
2027                 DeleteBusiness db = new DeleteBusiness();
2028                 db.setAuthInfo(authInfoJoe);
2029                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
2030                 publicationJoe.deleteBusiness(db);
2031         }
2032 
2033         @Test(expected = SOAPFaultException.class)
2034         public void BindingTemplateAccessPointAsBindingTemplateINVALIDReferencalIntegritytest() throws DispositionReportFaultMessage, RemoteException {
2035              Assume.assumeTrue(TckPublisher.isEnabled());
2036                 logger.info("BindingTemplateAccessPointAsBindingTemplateINVALIDReferencalIntegritytest");
2037                 //create a binding template, get the key, use the key as the specific redirector
2038                 SaveBusiness sb;
2039                 try {
2040 
2041                         sb = new SaveBusiness();
2042                         sb.setAuthInfo(authInfoJoe);
2043 
2044                         BusinessEntity be = new BusinessEntity();
2045                         Name bsn = new Name();
2046                         bsn.setValue("BindingTemplateAccessPointAsBindingTemplateINVALIDReferencalIntegritytest A bogus business");
2047                         be.getName().add(bsn);
2048 
2049                         BusinessService bs = new BusinessService();
2050                         Name n = new Name();
2051                         n.setValue("A a redirected business service");
2052                         BindingTemplate bt = new BindingTemplate();
2053                         bt.setAccessPoint(new AccessPoint());
2054                         bt.getAccessPoint().setUseType(AccessPointType.BINDING_TEMPLATE.toString());
2055                         bt.getAccessPoint().setValue("uddi:" + UUID.randomUUID().toString());
2056                         bs.getName().add(n);
2057                         bs.setBindingTemplates(new BindingTemplates());
2058                         bs.getBindingTemplates().getBindingTemplate().add(bt);
2059                         be.setBusinessServices(new BusinessServices());
2060                         be.getBusinessServices().getBusinessService().add(bs);
2061                         sb.getBusinessEntity().add(be);
2062                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
2063 
2064                         DeleteBusiness db = new DeleteBusiness();
2065                         db.setAuthInfo(authInfoJoe);
2066                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
2067                         publicationJoe.deleteBusiness(db);
2068                         Assert.fail("request should have been rejected");
2069 
2070                 } catch (SOAPFaultException ex) {
2071                         HandleException(ex);
2072                         throw ex;
2073                 }
2074         }
2075 
2076         @Test(expected = SOAPFaultException.class)
2077         public void BindingTemplateHostRedirectorTooLongTest() throws DispositionReportFaultMessage, RemoteException {
2078              Assume.assumeTrue(TckPublisher.isEnabled());
2079                 logger.info("BindingTemplateHostRedirectorTooLongTest");
2080                 SaveBusiness sb = new SaveBusiness();
2081                 sb.setAuthInfo(authInfoJoe);
2082                 BusinessEntity be = new BusinessEntity();
2083                 Name n = new Name();
2084                 n.setValue("BindingTemplateHostRedirectorTooLongTest A Test business");
2085                 be.getName().add(n);
2086                 be.setBusinessServices(new BusinessServices());
2087                 BusinessService bs = new BusinessService();
2088 
2089                 n = new Name();
2090                 n.setValue(str255);
2091                 bs.getName().add(n);
2092                 BindingTemplate bt = new BindingTemplate();
2093                 bs.setBindingTemplates(new BindingTemplates());
2094 
2095                 bt.setHostingRedirector(new HostingRedirector());
2096                 bt.getHostingRedirector().setBindingKey(str256);
2097                 bs.getBindingTemplates().getBindingTemplate().add(bt);
2098 
2099                 be.getBusinessServices().getBusinessService().add(bs);
2100 
2101                 sb.getBusinessEntity().add(be);
2102                 try {
2103                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
2104                         DeleteBusiness db = new DeleteBusiness();
2105                         db.setAuthInfo(authInfoJoe);
2106                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
2107                         publicationJoe.deleteBusiness(db);
2108                         Assert.fail("request should have been rejected");
2109 
2110                 } catch (SOAPFaultException ex) {
2111                         HandleException(ex);
2112                         throw ex;
2113                 }
2114         }
2115 
2116         @Test
2117         public void BindingTemplateAccessPointMaxLengthTest() throws DispositionReportFaultMessage, RemoteException {
2118              Assume.assumeTrue(TckPublisher.isEnabled());
2119                 logger.info("BindingTemplateAccessPointMaxLengthTest");
2120                 SaveBusiness sb = new SaveBusiness();
2121                 sb.setAuthInfo(authInfoJoe);
2122                 BusinessEntity be = new BusinessEntity();
2123                 Name n = new Name();
2124                 n.setValue("BindingTemplateAccessPointMaxLengthTest A Test business");
2125                 be.getName().add(n);
2126                 be.setBusinessServices(new BusinessServices());
2127                 BusinessService bs = new BusinessService();
2128 
2129                 n = new Name();
2130                 n.setValue(str255);
2131                 bs.getName().add(n);
2132                 BindingTemplate bt = new BindingTemplate();
2133                 bs.setBindingTemplates(new BindingTemplates());
2134                 bt.setAccessPoint(new AccessPoint());
2135                 bt.getAccessPoint().setValue(str4096);
2136 
2137                 bs.getBindingTemplates().getBindingTemplate().add(bt);
2138 
2139                 be.getBusinessServices().getBusinessService().add(bs);
2140 
2141                 sb.getBusinessEntity().add(be);
2142 
2143                 BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
2144                 DeleteBusiness db = new DeleteBusiness();
2145                 db.setAuthInfo(authInfoJoe);
2146                 db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
2147                 publicationJoe.deleteBusiness(db);
2148         }
2149 
2150         @Test(expected = SOAPFaultException.class)
2151         public void BindingTemplateAccessPointTooLongTest() throws DispositionReportFaultMessage, RemoteException {
2152              Assume.assumeTrue(TckPublisher.isEnabled());
2153                 logger.info("BindingTemplateAccessPointTooLongTest");
2154                 SaveBusiness sb = new SaveBusiness();
2155                 sb.setAuthInfo(authInfoJoe);
2156                 BusinessEntity be = new BusinessEntity();
2157                 Name n = new Name();
2158                 n.setValue("BindingTemplateAccessPointTooLongTest A Test business");
2159                 be.getName().add(n);
2160                 be.setBusinessServices(new BusinessServices());
2161                 BusinessService bs = new BusinessService();
2162 
2163                 n = new Name();
2164                 n.setValue(str255);
2165                 bs.getName().add(n);
2166                 BindingTemplate bt = new BindingTemplate();
2167 
2168                 bs.setBindingTemplates(new BindingTemplates());
2169                 bt.setAccessPoint(new AccessPoint());
2170                 bt.getAccessPoint().setValue(str4097);
2171 
2172                 bs.getBindingTemplates().getBindingTemplate().add(bt);
2173 
2174                 be.getBusinessServices().getBusinessService().add(bs);
2175 
2176                 sb.getBusinessEntity().add(be);
2177                 try {
2178                         BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
2179                         DeleteBusiness db = new DeleteBusiness();
2180                         db.setAuthInfo(authInfoJoe);
2181                         db.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
2182                         publicationJoe.deleteBusiness(db);
2183                         Assert.fail("request should have been rejected");
2184 
2185                 } catch (SOAPFaultException ex) {
2186                         HandleException(ex);
2187                         throw ex;
2188                 }
2189         }
2190         //</editor-fold>
2191         static final String validTmodelKeyGenMax = "uddi:www.mycoolxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcompany.com:keygenerator";
2192         static final String validTmodelKeyGenTooLong = "uddi:www.mycoolzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcompany.com:keygenerator";
2193 
2194         //create a basic key gen
2195         @Test
2196         public void CreateKeyGenMaxLengthTest() throws DispositionReportFaultMessage, RemoteException {
2197              Assume.assumeTrue(TckPublisher.isEnabled());
2198                 logger.info("CreateKeyGenMaxLengthTest");
2199 
2200                 SaveTModel st = new SaveTModel();
2201                 st.setAuthInfo(authInfoJoe);
2202                 TModel tm = new TModel();
2203                 tm.setName(new Name());
2204                 tm.getName().setValue("CreateKeyGenMaxLengthTest My Cool Company Keymodel generator");
2205                 tm.getName().setLang("en");
2206                 tm.setCategoryBag(new CategoryBag());
2207                 KeyedReference kr = new KeyedReference();
2208                 kr.setTModelKey("uddi:uddi.org:categorization:types");
2209                 kr.setKeyName("uddi-org:keyGenerator");
2210                 kr.setKeyValue("keyGenerator");
2211                 tm.getCategoryBag().getKeyedReference().add(kr);
2212                 tm.setTModelKey(validTmodelKeyGenMax);
2213                 st.getTModel().add(tm);
2214 
2215                 @SuppressWarnings("unused")
2216                 TModelDetail saveTModel = publicationJoe.saveTModel(st);
2217                 DeleteTModel dm = new DeleteTModel();
2218                 dm.setAuthInfo(authInfoJoe);
2219                 dm.getTModelKey().add(validTmodelKeyGenMax);
2220                 publicationJoe.deleteTModel(dm);
2221 
2222         }
2223 
2224         //create a oversized tmodel keygen fail
2225         @Test(expected = SOAPFaultException.class)
2226         public void CreateKeyGenTooLongTest() throws DispositionReportFaultMessage, RemoteException {
2227              Assume.assumeTrue(TckPublisher.isEnabled());
2228                 logger.info("CreateKeyGenTooLongTest");
2229 
2230                 SaveTModel st = new SaveTModel();
2231                 st.setAuthInfo(authInfoJoe);
2232                 TModel tm = new TModel();
2233                 tm.setName(new Name());
2234                 tm.getName().setValue("CreateKeyGenTooLongTest My Cool Company Keymodel generator");
2235                 tm.getName().setLang("en");
2236                 tm.setCategoryBag(new CategoryBag());
2237                 KeyedReference kr = new KeyedReference();
2238                 kr.setTModelKey("uddi:uddi.org:categorization:types");
2239                 kr.setKeyName("uddi-org:keyGenerator");
2240                 kr.setKeyValue("keyGenerator");
2241                 tm.getCategoryBag().getKeyedReference().add(kr);
2242                 tm.setTModelKey(validTmodelKeyGenTooLong);
2243                 st.getTModel().add(tm);
2244                 try {
2245                         @SuppressWarnings("unused")
2246                         TModelDetail saveTModel = publicationJoe.saveTModel(st);
2247                         Assert.fail("request should have been rejected");
2248                 } catch (SOAPFaultException ex) {
2249                         HandleException(ex);
2250                         throw ex;
2251                 }
2252 
2253         }
2254 
2255         //create a tmodel with a key gen defined valid, with oversized Name
2256         @Test(expected = SOAPFaultException.class)
2257         public void CreateKeyGenKeyDescriptionTooLongTest() throws DispositionReportFaultMessage, RemoteException {
2258              Assume.assumeTrue(TckPublisher.isEnabled());
2259                 logger.info("CreateKeyGenKeyDescriptionTooLongTest");
2260 
2261                 SaveTModel st = new SaveTModel();
2262                 st.setAuthInfo(authInfoJoe);
2263                 TModel tm = new TModel();
2264                 tm.setName(new Name());
2265                 tm.getName().setValue("CreateKeyGenKeyDescriptionTooLongTest Key gen name");
2266                 tm.getName().setLang("en");
2267                 Description d = new Description();
2268                 d.setValue(str256);
2269                 tm.getDescription().add(d);
2270                 tm.setCategoryBag(new CategoryBag());
2271                 KeyedReference kr = new KeyedReference();
2272                 kr.setTModelKey("uddi:uddi.org:categorization:types");
2273                 kr.setKeyName("uddi-org:keyGenerator");
2274                 kr.setKeyValue("keyGenerator");
2275                 tm.getCategoryBag().getKeyedReference().add(kr);
2276                 tm.setTModelKey("uddi:uddi.joepublisher.com:mycustomkey");
2277                 st.getTModel().add(tm);
2278                 try {
2279                         @SuppressWarnings("unused")
2280                         TModelDetail saveTModel = publicationJoe.saveTModel(st);
2281                         Assert.fail("request should have been rejected");
2282                 } catch (SOAPFaultException ex) {
2283                         HandleException(ex);
2284                         throw ex;
2285                 }
2286         }
2287 
2288         @Test(expected = SOAPFaultException.class)
2289         public void CreateKeyGenKeyDescriptionLangTooLongTest() throws DispositionReportFaultMessage, RemoteException {
2290              Assume.assumeTrue(TckPublisher.isEnabled());
2291                 logger.info("CreateKeyGenKeyDescriptionTooLongTest");
2292 
2293                 SaveTModel st = new SaveTModel();
2294                 st.setAuthInfo(authInfoJoe);
2295                 TModel tm = new TModel();
2296                 tm.setName(new Name());
2297                 tm.getName().setValue("CreateKeyGenKeyDescriptionTooLongTest Key gen name");
2298                 tm.getName().setLang("en");
2299                 Description d = new Description();
2300                 d.setValue("A description");
2301                 d.setLang(str256);
2302                 tm.getDescription().add(d);
2303                 tm.setCategoryBag(new CategoryBag());
2304                 KeyedReference kr = new KeyedReference();
2305                 kr.setTModelKey("uddi:uddi.org:categorization:types");
2306                 kr.setKeyName("uddi-org:keyGenerator");
2307                 kr.setKeyValue("keyGenerator");
2308                 tm.getCategoryBag().getKeyedReference().add(kr);
2309                 String key = UUID.randomUUID().toString();
2310                 tm.setTModelKey(key);
2311                 st.getTModel().add(tm);
2312                 try {
2313                         @SuppressWarnings("unused")
2314                         TModelDetail saveTModel = publicationJoe.saveTModel(st);
2315                         Assert.fail("request should have been rejected");
2316                 } catch (SOAPFaultException ex) {
2317                         HandleException(ex);
2318                         throw ex;
2319                 } finally {
2320                         //TODO delete the key
2321                 }
2322         }
2323 
2324         @Test(expected = SOAPFaultException.class)
2325         public void CreateKeyGenNameLangTooLongTest() throws DispositionReportFaultMessage, RemoteException {
2326              Assume.assumeTrue(TckPublisher.isEnabled());
2327                 logger.info("CreateKeyGenNameLangTooLongTest");
2328 
2329                 SaveTModel st = new SaveTModel();
2330                 st.setAuthInfo(authInfoJoe);
2331                 TModel tm = new TModel();
2332                 tm.setName(new Name());
2333                 tm.getName().setValue("CreateKeyGenNameLangTooLongTest hello world");
2334                 tm.getName().setLang(str27);
2335                 tm.setCategoryBag(new CategoryBag());
2336                 KeyedReference kr = new KeyedReference();
2337                 kr.setTModelKey("uddi:uddi.org:categorization:types");
2338                 kr.setKeyName("uddi-org:keyGenerator");
2339                 kr.setKeyValue("keyGenerator");
2340                 tm.getCategoryBag().getKeyedReference().add(kr);
2341                 tm.setTModelKey(validTmodelKeyGenTooLong);
2342                 st.getTModel().add(tm);
2343                 try {
2344                         @SuppressWarnings("unused")
2345                         TModelDetail saveTModel = publicationJoe.saveTModel(st);
2346                         Assert.fail("request should have been rejected");
2347                 } catch (SOAPFaultException ex) {
2348                         HandleException(ex);
2349                         throw ex;
2350                 }
2351         }
2352 
2353         /**
2354          * //create a tmodel with a key gen defined valid, regular tmodel,
2355          * //then a business, service, binding template, tmodel instance infos,
2356          * attach tmodel with some data, success //create a tmodel without a key
2357          * gen defined- fail
2358          *
2359          * @throws DispositionReportFaultMessage
2360          * @throws RemoteException
2361          */
2362         @Test(expected = SOAPFaultException.class)
2363         public void CreateTmodelnoKeyGen() throws DispositionReportFaultMessage, RemoteException {
2364              Assume.assumeTrue(TckPublisher.isEnabled());
2365                 logger.info("CreateTmodelnoKeyGen");
2366 
2367                 SaveTModel st = new SaveTModel();
2368                 st.setAuthInfo(authInfoJoe);
2369                 TModel tm = new TModel();
2370                 tm.setName(new Name());
2371                 tm.getName().setValue("CreateTmodelnoKeyGen My Cool Company's tmodel");
2372                 tm.getName().setLang("en");
2373 
2374                 tm.setTModelKey("uddi:uddi.joepublisher.com:nokeygenerator:customkey");
2375                 st.getTModel().add(tm);
2376                 try {
2377                         @SuppressWarnings("unused")
2378                         TModelDetail saveTModel = publicationJoe.saveTModel(st);
2379                         Assert.fail("request should have been rejected");
2380                 } catch (SOAPFaultException ex) {
2381                         HandleException(ex);
2382                         throw ex;
2383                 }
2384 
2385         }
2386 
2387         @Test
2388         public void BindingTemplateTmodelInstanceInfoTest() {
2389              Assume.assumeTrue(TckPublisher.isEnabled());
2390                 logger.info("BindingTemplateTmodelInstanceInfoTest");
2391                 //create a key gen
2392                 //create a tmodels
2393                 //create a business, service, binding with tmodel instance infos
2394 
2395         }
2396         
2397         //TODO binding template tmodel instance info
2398         //TODO tmodel tests
2399         //TODO create tests for enforcing ref integrity of tmodel keys, after enforcing this, the tests in this class will need to be heavily revised
2400 }