/* * Copyright 2010-2014 Ning, Inc. * Copyright 2014-2015 Groupon, Inc * Copyright 2014-2015 The Billing Project, LLC * * The Billing Project 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.killbill.commons.skeleton.modules; import java.util.Map; import java.util.concurrent.Future; import org.eclipse.jetty.server.NetworkConnector; import org.eclipse.jetty.server.Server; import org.testng.Assert; import org.testng.annotations.Test; import com.ning.http.client.AsyncHttpClient; import com.ning.http.client.Response; public class TestJerseyBaseServerModule extends AbstractBaseServerModuleTest { @Test(groups = "slow") public void testJerseyIntegration() throws Exception { final BaseServerModuleBuilder builder = new BaseServerModuleBuilder(); builder.addJaxrsResource("org.killbill.commons.skeleton.modules"); final Server server = startServer(builder.build(), new HelloModule()); final AsyncHttpClient client = new AsyncHttpClient(); final Future<Response> responseFuture = client.prepareGet("http://127.0.0.1:" + ((NetworkConnector) server.getConnectors()[0]).getPort() + "/hello/alhuile/").execute(); final String body = responseFuture.get().getResponseBody(); Assert.assertEquals(body, "Hello alhuile"); server.stop(); } @Test(groups = "fast") public void testJerseyParams() throws Exception { final BaseServerModuleBuilder builder1 = new BaseServerModuleBuilder(); final JerseyBaseServerModule module1 = (JerseyBaseServerModule) builder1.build(); final Map<String, String> jerseyParams1 = module1.getJerseyParams().build(); Assert.assertEquals(jerseyParams1.size(), 1); Assert.assertEquals(jerseyParams1.get(JerseyBaseServerModule.JERSEY_DISABLE_ENTITYLOGGING), "true"); final BaseServerModuleBuilder builder2 = new BaseServerModuleBuilder(); builder2.addJerseyFilter("filter1").addJerseyFilter("filter2").addJerseyFilter("filter3"); final JerseyBaseServerModule module2 = (JerseyBaseServerModule) builder2.build(); final Map<String, String> jerseyParams2 = module2.getJerseyParams().build(); Assert.assertEquals(jerseyParams2.size(), 3); Assert.assertEquals(jerseyParams2.get(JerseyBaseServerModule.JERSEY_CONTAINER_REQUEST_FILTERS), "filter1;filter2;filter3"); Assert.assertEquals(jerseyParams2.get(JerseyBaseServerModule.JERSEY_CONTAINER_RESPONSE_FILTERS), "filter3;filter2;filter1"); Assert.assertEquals(jerseyParams2.get(JerseyBaseServerModule.JERSEY_DISABLE_ENTITYLOGGING), "true"); final BaseServerModuleBuilder builder3 = new BaseServerModuleBuilder(); builder3.addJerseyFilter("filter1").addJerseyFilter("filter2").addJerseyFilter("filter3"); builder3.addJerseyParam(JerseyBaseServerModule.JERSEY_CONTAINER_REQUEST_FILTERS, "bar").addJerseyParam("foo", "qux"); final JerseyBaseServerModule module3 = (JerseyBaseServerModule) builder3.build(); final Map<String, String> jerseyParams3 = module3.getJerseyParams().build(); Assert.assertEquals(jerseyParams3.size(), 4); Assert.assertEquals(jerseyParams3.get(JerseyBaseServerModule.JERSEY_CONTAINER_REQUEST_FILTERS), "bar;filter1;filter2;filter3"); Assert.assertEquals(jerseyParams3.get(JerseyBaseServerModule.JERSEY_CONTAINER_RESPONSE_FILTERS), "filter3;filter2;filter1"); Assert.assertEquals(jerseyParams3.get(JerseyBaseServerModule.JERSEY_DISABLE_ENTITYLOGGING), "true"); Assert.assertEquals(jerseyParams3.get("foo"), "qux"); final BaseServerModuleBuilder builder4 = new BaseServerModuleBuilder(); builder4.addJerseyParam(JerseyBaseServerModule.JERSEY_CONTAINER_REQUEST_FILTERS, "bar") .addJerseyParam(JerseyBaseServerModule.JERSEY_CONTAINER_RESPONSE_FILTERS, "bar2") .addJerseyParam(JerseyBaseServerModule.JERSEY_DISABLE_ENTITYLOGGING, "false") .addJerseyParam("foo", "qux"); builder4.addJerseyFilter("filter1").addJerseyFilter("filter2").addJerseyFilter("filter3"); final JerseyBaseServerModule module4 = (JerseyBaseServerModule) builder4.build(); final Map<String, String> jerseyParams4 = module4.getJerseyParams().build(); Assert.assertEquals(jerseyParams4.size(), 4); Assert.assertEquals(jerseyParams4.get(JerseyBaseServerModule.JERSEY_CONTAINER_REQUEST_FILTERS), "bar;filter1;filter2;filter3"); Assert.assertEquals(jerseyParams4.get(JerseyBaseServerModule.JERSEY_CONTAINER_RESPONSE_FILTERS), "bar2;filter3;filter2;filter1"); Assert.assertEquals(jerseyParams4.get(JerseyBaseServerModule.JERSEY_DISABLE_ENTITYLOGGING), "false"); Assert.assertEquals(jerseyParams4.get("foo"), "qux"); } }