Java tutorial
/* * Copyright 2001-2009 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.juddi.api.impl; import java.rmi.RemoteException; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.juddi.Registry; import org.apache.juddi.v3.tck.TckBusiness; import org.apache.juddi.v3.tck.TckBusinessService; import org.apache.juddi.v3.tck.TckPublisher; import org.apache.juddi.v3.tck.TckSecurity; import org.apache.juddi.v3.tck.TckTModel; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.uddi.v3_service.UDDISecurityPortType; /** * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a> * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a> */ public class API_040_BusinessServiceTest { private static Log logger = LogFactory.getLog(API_040_BusinessServiceTest.class); private static API_010_PublisherTest api010 = new API_010_PublisherTest(); private static TckTModel tckTModel = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl()); private static TckBusiness tckBusiness = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl()); private static TckBusinessService tckBusinessService = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl()); private static String authInfoJoe = null; private static String authInfoSam = null; @BeforeClass public static void setup() throws ConfigurationException { Registry.start(); logger.info("API_040_BusinessServiceTest"); logger.debug("Getting auth tokens.."); try { api010.saveJoePublisher(); api010.saveSamSyndicator(); UDDISecurityPortType security = new UDDISecurityImpl(); authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword()); authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword()); String authInfoUDDI = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword()); tckTModel.saveUDDIPublisherTmodel(authInfoUDDI); tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML); } catch (RemoteException e) { logger.error(e.getMessage(), e); Assert.fail("Could not obtain authInfo token."); } } @AfterClass public static void stopRegistry() throws ConfigurationException { tckTModel.deleteCreatedTModels(authInfoJoe); Registry.stop(); } @Test public void joepublisher() { try { tckTModel.saveJoePublisherTmodel(authInfoJoe); tckBusiness.saveJoePublisherBusiness(authInfoJoe); tckBusinessService.saveJoePublisherService(authInfoJoe); tckBusinessService.deleteJoePublisherService(authInfoJoe); } finally { tckBusiness.deleteJoePublisherBusiness(authInfoJoe); tckTModel.deleteJoePublisherTmodel(authInfoJoe); } } @Test public void joepublisher2Services() { try { tckTModel.saveJoePublisherTmodel(authInfoJoe); tckBusiness.saveJoePublisherBusiness(authInfoJoe); tckBusinessService.saveJoePublisherService(authInfoJoe); tckBusinessService.saveJoePublisherService2(authInfoJoe); tckBusinessService.deleteJoePublisherService(authInfoJoe); tckBusinessService.deleteJoePublisherService2(authInfoJoe); } finally { tckBusiness.deleteJoePublisherBusiness(authInfoJoe); tckTModel.deleteJoePublisherTmodel(authInfoJoe); } } @Test public void joepublisher2UpdateBusiness() { try { tckTModel.saveJoePublisherTmodel(authInfoJoe); tckBusiness.saveJoePublisherBusiness(authInfoJoe); tckBusinessService.saveJoePublisherService(authInfoJoe); tckBusinessService.saveJoePublisherService2(authInfoJoe); tckBusiness.updateJoePublisherBusiness(authInfoJoe); tckBusinessService.deleteJoePublisherService(authInfoJoe); tckBusinessService.deleteJoePublisherService2(authInfoJoe); } finally { tckBusiness.deleteJoePublisherBusiness(authInfoJoe); tckTModel.deleteJoePublisherTmodel(authInfoJoe); } } /** * 5.2.16.3 paragraph 4 * Data contained within businessEntity structures can be rearranged with * this API call. This can be done by redefining parent container relationships * for other registered information. For instance, if a new businessEntity * is saved with information about a businessService that is registered * already as part of a different businessEntity, this results in the * businessService being moved from its current container to the new businessEntity. * This condition occurs when the businessKey of the businessService being * saved matches the businessKey of the businessEntity being saved. * An attempt to delete or move a businessService in this manner by * a party who is not the publisher of the businessService MUST be * rejected with an error E_userMismatch. */ @Test public void joepublisherMoveBusinessService() { try { tckTModel.saveJoePublisherTmodel(authInfoJoe); tckBusiness.saveJoePublisherBusiness(authInfoJoe); tckBusinessService.saveJoePublisherService(authInfoJoe); tckBusiness.checkServicesBusinessOne(1); tckBusiness.saveJoePublisherBusiness3(authInfoJoe); //check that this business has no services tckBusiness.checkServicesBusinessThree(0); //Now move the service from one to three tckBusiness.saveJoePublisherBusiness1to3(authInfoJoe); tckBusiness.checkServicesBusinessOne(0); tckBusiness.checkServicesBusinessThree(1); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } finally { tckBusinessService.deleteJoePublisherService(authInfoJoe); tckBusiness.deleteJoePublisherBusiness3(authInfoJoe); tckBusiness.deleteJoePublisherBusiness(authInfoJoe); tckTModel.deleteJoePublisherTmodel(authInfoJoe); } } @Test public void samsyndicator() { try { // For sam's service projection, joe's information must be loaded tckTModel.saveJoePublisherTmodel(authInfoJoe); tckBusiness.saveJoePublisherBusiness(authInfoJoe); tckBusinessService.saveJoePublisherService(authInfoJoe); tckTModel.saveSamSyndicatorTmodel(authInfoSam); tckBusiness.saveSamSyndicatorBusinessWithProjection(authInfoSam); tckBusinessService.saveSamSyndicatorService(authInfoSam); tckBusinessService.deleteSamSyndicatorService(authInfoSam); } finally { tckBusiness.deleteSamSyndicatorBusiness(authInfoSam); tckTModel.deleteSamSyndicatorTmodel(authInfoSam); tckBusinessService.deleteJoePublisherService(authInfoJoe); tckBusiness.deleteJoePublisherBusiness(authInfoJoe); tckTModel.deleteJoePublisherTmodel(authInfoJoe); } } }