| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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.camel.component.cxf.jaxrs; |
| |
| import org.apache.camel.CamelContext; |
| import org.apache.camel.component.cxf.CXFTestSupport; |
| import org.apache.camel.component.cxf.jaxrs.testbean.CustomerService; |
| import org.apache.camel.impl.DefaultCamelContext; |
| import org.apache.camel.test.junit4.CamelTestSupport; |
| import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; |
| import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean; |
| import org.apache.cxf.jaxrs.provider.json.JSONProvider; |
| import org.junit.Test; |
| |
| public class CxfRsEndpointTest extends CamelTestSupport { |
| private static final String CTX = CXFTestSupport.getPort1() + "/CxfRsEndpointTest"; |
| |
| @Test |
| public void testCreateCxfRsEndpoint() throws Exception { |
| String endpointUri = "cxfrs://http://localhost:" + CTX + "" |
| + "?loggingFeatureEnabled=true&loggingSizeLimit=200" |
| + "&resourceClasses=org.apache.camel.component.cxf.jaxrs.testbean.CustomerService," |
| + "java.lang.String,org.apache.camel.component.cxf.jaxrs.testbean.Order"; |
| |
| CxfRsComponent component = new CxfRsComponent(context); |
| CxfRsEndpoint endpoint = (CxfRsEndpoint)component.createEndpoint(endpointUri); |
| |
| assertNotNull("The endpoint should not be null ", endpoint); |
| assertEquals("Get a wrong address ", endpointUri, endpoint.getEndpointUri()); |
| assertEquals("Get a wrong size of resouces classes", 3, endpoint.getResourceClasses().size()); |
| assertEquals("Get a wrong resources class", CustomerService.class, endpoint.getResourceClasses().get(0)); |
| assertEquals("Get a wrong loggingFeatureEnabled setting", true, endpoint.isLoggingFeatureEnabled()); |
| assertEquals("Get a wrong loggingSizeLimit setting", 200, endpoint.getLoggingSizeLimit()); |
| } |
| |
| @Test |
| public void testCxfRsEndpointParameters() throws Exception { |
| CxfRsComponent component = new CxfRsComponent(context); |
| String endpointUri = "cxfrs://http://localhost:" + CTX + "/templatetest/TID/ranges/start=0;end=1?" |
| + "continuationTimeout=80000&httpClientAPI=true&loggingFeatureEnabled=true&loggingSizeLimit=200&q1=11&q2=12"; |
| |
| CxfRsEndpoint endpoint = (CxfRsEndpoint)component.createEndpoint(endpointUri); |
| |
| assertEquals("Get a wrong URI ", endpointUri, endpoint.getEndpointUri()); |
| assertEquals("Get a wrong usingClientAPI option", true, endpoint.isHttpClientAPI()); |
| assertNotNull("The Parameter should not be null" + endpoint.getParameters()); |
| assertEquals("Get a wrong parameter map", "{q1=11, q2=12}", endpoint.getParameters().toString()); |
| assertEquals("Get a wrong continucationTimeout", 80000, endpoint.getContinuationTimeout()); |
| } |
| |
| @Test |
| public void testCxfRsEndpointResourceClass() throws Exception { |
| String endpointUri = "cxfrs://http://localhost:" + CTX + "" |
| + "?resourceClass=org.apache.camel.component.cxf.jaxrs.testbean.CustomerService"; |
| |
| CxfRsComponent component = new CxfRsComponent(context); |
| CxfRsEndpoint endpoint = (CxfRsEndpoint)component.createEndpoint(endpointUri); |
| |
| assertNotNull("The endpoint should not be null ", endpoint); |
| assertEquals("Get a wrong address ", endpointUri, endpoint.getEndpointUri()); |
| assertEquals("Get a wrong size of resouces classes", 1, endpoint.getResourceClasses().size()); |
| assertEquals("Get a wrong resources class", CustomerService.class, endpoint.getResourceClasses().get(0)); |
| // check the default continuation value |
| assertEquals("Get a wrong continucationTimeout", 30000, endpoint.getContinuationTimeout()); |
| } |
| |
| @Test |
| public void testCxfRsEndpointSetProvider() throws Exception { |
| |
| String endpointUri = "cxfrs://http://localhost:" + CTX + "" |
| + "?resourceClass=org.apache.camel.component.cxf.jaxrs.testbean.CustomerService"; |
| |
| CxfRsComponent component = new CxfRsComponent(context); |
| CxfRsEndpoint endpoint = (CxfRsEndpoint)component.createEndpoint(endpointUri); |
| JSONProvider<?> jsonProvider = new JSONProvider<Object>(); |
| jsonProvider.setDropRootElement(true); |
| jsonProvider.setSupportUnwrapped(true); |
| endpoint.setProvider(jsonProvider); |
| JAXRSServerFactoryBean sfb = endpoint.createJAXRSServerFactoryBean(); |
| assertEquals("Get a wrong proider size", 1, sfb.getProviders().size()); |
| JAXRSClientFactoryBean cfb = endpoint.createJAXRSClientFactoryBean(); |
| assertEquals("Get a wrong proider size", 1, cfb.getProviders().size()); |
| } |
| |
| @Test |
| public void testCxfRsEndpointCamelContextAware() throws Exception { |
| String endpointUri = "cxfrs://simple"; |
| CxfRsEndpoint endpoint = new CxfRsEndpoint(); |
| endpoint.setAddress("http://localhost:9000/test"); |
| endpoint.setResourceClasses(CustomerService.class); |
| CamelContext context = new DefaultCamelContext(); |
| context.addEndpoint(endpointUri, endpoint); |
| |
| assertEquals("Get a wrong camel context.", context, endpoint.getCamelContext()); |
| } |
| |
| } |