Package org.apache.juddi.v3.tck

Source Code of org.apache.juddi.v3.tck.UDDI_160_RESTIntergrationTest

/*
* Copyright 2013 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.v3.tck;

import java.rmi.RemoteException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.bind.JAXB;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.juddi.v3.client.UDDIConstants;
import org.apache.juddi.v3.client.config.UDDIClient;
import org.apache.juddi.v3.client.transport.Transport;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.uddi.api_v3.BindingTemplate;
import org.uddi.api_v3.BusinessEntity;
import org.uddi.api_v3.BusinessList;
import org.uddi.api_v3.BusinessService;
import org.uddi.api_v3.FindBusiness;
import org.uddi.api_v3.FindQualifiers;
import org.uddi.api_v3.FindService;
import org.uddi.api_v3.FindTModel;
import org.uddi.api_v3.GetServiceDetail;
import org.uddi.api_v3.Name;
import org.uddi.api_v3.ServiceDetail;
import org.uddi.api_v3.ServiceList;
import org.uddi.api_v3.TModel;
import org.uddi.api_v3.TModelList;
import org.uddi.v3_service.DispositionReportFaultMessage;
import org.uddi.v3_service.UDDIInquiryPortType;

/**
* Optional HTTP GET, REST style web services for UDDI
*
* @author Alex O'Ree
*/
public class UDDI_160_RESTIntergrationTest {

        private static UDDIInquiryPortType inquiry = null;
        private static Log logger = LogFactory.getLog(UDDI_160_RESTIntergrationTest.class);
        private static String authInfo = null;
        private static UDDIClient manager;

        @BeforeClass
        public static void startRegistry() throws ConfigurationException {

                manager = new UDDIClient();
                manager.start();

                try {
                        Transport transport = manager.getTransport();
                        inquiry = transport.getUDDIInquiryService();
                } catch (Exception e) {
                        logger.error(e.getMessage(), e);
                        Assert.fail("Could not obtain authInfo token.");
                }
        }

        @AfterClass
        public static void stopRegistry() throws ConfigurationException {
                manager.stop();
        }

        /*@Test
         public void InquiryREST_WADL_GET() throws Exception {
         Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());

         String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();
         Assume.assumeNotNull(url);
         HttpClient client = new DefaultHttpClient();
         HttpGet httpGet = new HttpGet(url + "?_wadl");
         HttpResponse response = client.execute(httpGet);
         Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);

         }*/
        @Test
        public void InquiryREST_GET_Business() throws Exception {
                Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());
                FindBusiness fb = new FindBusiness();
                fb.setMaxRows(1);
                fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
                fb.setFindQualifiers(new FindQualifiers());
                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
                BusinessList findBusiness = inquiry.findBusiness(fb);
                Assume.assumeTrue(findBusiness != null);
                Assume.assumeTrue(findBusiness.getBusinessInfos() != null);
                Assume.assumeTrue(!findBusiness.getBusinessInfos().getBusinessInfo().isEmpty());

                String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();

                Assume.assumeNotNull(url);
                HttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url + "?businessKey=" + findBusiness.getBusinessInfos().getBusinessInfo().get(0).getBusinessKey());
                logger.info("Fetching " + httpGet.getURI());
                HttpResponse response = client.execute(httpGet);
               
                Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);
                logger.info("Response content: " + response.getEntity().getContent());
                BusinessEntity unmarshal = JAXB.unmarshal(response.getEntity().getContent(), BusinessEntity.class);
                client.getConnectionManager().shutdown();
                Assert.assertNotNull(unmarshal);
                Assert.assertEquals(unmarshal.getBusinessKey(), findBusiness.getBusinessInfos().getBusinessInfo().get(0).getBusinessKey());


        }

        @Test
        public void InquiryREST_GET_TModel() throws Exception {
                Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());
                FindTModel fb = new FindTModel();
                fb.setMaxRows(1);
                fb.setName(new Name(UDDIConstants.WILDCARD, null));
                fb.setFindQualifiers(new FindQualifiers());
                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
                TModelList findTModel = inquiry.findTModel(fb);
                Assume.assumeTrue(findTModel != null);
                Assume.assumeTrue(findTModel.getTModelInfos() != null);
                Assume.assumeTrue(!findTModel.getTModelInfos().getTModelInfo().isEmpty());

                String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();

                Assume.assumeNotNull(url);
               
                HttpClient client = new DefaultHttpClient();
               
                HttpGet httpGet = new HttpGet(url + "?tModelKey=" + findTModel.getTModelInfos().getTModelInfo().get(0).getTModelKey());
                logger.info("Fetching " + httpGet.getURI());
                HttpResponse response = client.execute(httpGet);
               
                Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);
                logger.info("Response content: " + response.getEntity().getContent());
                TModel unmarshal = JAXB.unmarshal(response.getEntity().getContent(), TModel.class);
                client.getConnectionManager().shutdown();
                Assert.assertNotNull(unmarshal);
                Assert.assertEquals(unmarshal.getTModelKey(), findTModel.getTModelInfos().getTModelInfo().get(0).getTModelKey());


        }

        @Test
        public void InquiryREST_GET_Service() throws Exception {
                Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());
                //find the first service via inquriy soap
                FindService fb = new FindService();
                fb.setMaxRows(1);
                fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
                fb.setFindQualifiers(new FindQualifiers());
                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
                ServiceList findService = inquiry.findService(fb);
                Assume.assumeTrue(findService != null);
                Assume.assumeTrue(findService.getServiceInfos() != null);
                Assume.assumeTrue(!findService.getServiceInfos().getServiceInfo().isEmpty());

                String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();

                Assume.assumeNotNull(url);
               
                //get the results via inquiry rest
                HttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url + "?serviceKey=" + findService.getServiceInfos().getServiceInfo().get(0).getServiceKey());
                logger.info("Fetching " + httpGet.getURI());
                HttpResponse response = client.execute(httpGet);
               
               
                Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);
                logger.info("Response content: " + response.getEntity().getContent());
                BusinessService unmarshal = JAXB.unmarshal(response.getEntity().getContent(), BusinessService.class);
                client.getConnectionManager().shutdown();
                Assert.assertNotNull(unmarshal);
                Assert.assertEquals(unmarshal.getServiceKey(), findService.getServiceInfos().getServiceInfo().get(0).getServiceKey());


        }

        private BindingTemplate getFirstBindingTemplate() {
                try {
                        int fetch = 10;
                        int offset = 0;
                        FindService fb = new FindService();
                        fb.setMaxRows(fetch);
                        fb.setListHead(offset);
                        fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
                        fb.setFindQualifiers(new FindQualifiers());
                        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
                        ServiceList findService = inquiry.findService(fb);
                        int returnedcount = findService.getServiceInfos().getServiceInfo().size();
                        do {
                                for (int i = 0; i < findService.getServiceInfos().getServiceInfo().size(); i++) {
                                        GetServiceDetail gsd = new GetServiceDetail();
                                        gsd.getServiceKey().add(findService.getServiceInfos().getServiceInfo().get(i).getServiceKey());
                                        ServiceDetail serviceDetail = inquiry.getServiceDetail(gsd);
                                        if (serviceDetail.getBusinessService().get(0).getBindingTemplates() != null
                                                && !serviceDetail.getBusinessService().get(0).getBindingTemplates().getBindingTemplate().isEmpty()) {
                                                return serviceDetail.getBusinessService().get(0).getBindingTemplates().getBindingTemplate().get(0);
                                        }

                                }
                                offset = fetch;
                                fetch = fetch + 10;
                                fb = new FindService();
                                fb.setMaxRows(fetch);
                                fb.setListHead(offset);
                                fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
                                fb.setFindQualifiers(new FindQualifiers());
                                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
                                findService = inquiry.findService(fb);
                                returnedcount = findService.getServiceInfos().getServiceInfo().size();

                        } while (returnedcount > 0);
                } catch (DispositionReportFaultMessage ex) {
                        Logger.getLogger(UDDI_160_RESTIntergrationTest.class.getName()).log(Level.SEVERE, null, ex);
                } catch (RemoteException ex) {
                        Logger.getLogger(UDDI_160_RESTIntergrationTest.class.getName()).log(Level.SEVERE, null, ex);
                }
                return null;
        }

        @Test
        public void InquiryREST_GET_Binding() throws Exception {
                Assume.assumeTrue(TckPublisher.isInquiryRestEnabled());
               
                BindingTemplate bt = getFirstBindingTemplate();
                Assume.assumeTrue(bt != null);
               
                String url = manager.getClientConfig().getHomeNode().getInquiry_REST_Url();

                Assume.assumeNotNull(url);
                HttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url + "?bindingKey=" + bt.getBindingKey());
                logger.info("Fetching " + httpGet.getURI());
                HttpResponse response = client.execute(httpGet);
               
                Assert.assertTrue(response.getStatusLine().getStatusCode() == 200);
                logger.info("Response content: " + response.getEntity().getContent());
                BindingTemplate unmarshal = JAXB.unmarshal(response.getEntity().getContent(), BindingTemplate.class);
                client.getConnectionManager().shutdown();
                Assert.assertNotNull(unmarshal);
                Assert.assertEquals(unmarshal.getServiceKey(), bt.getServiceKey());
                Assert.assertEquals(unmarshal.getBindingKey(), bt.getBindingKey());


        }
}
TOP

Related Classes of org.apache.juddi.v3.tck.UDDI_160_RESTIntergrationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.