/* * Copyright (C) 2011 Red Hat, Inc. and/or its affiliates. * * 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.jboss.errai.enterprise.jaxrs.client.test; import java.util.Date; import javax.ws.rs.core.PathSegment; import org.jboss.errai.enterprise.client.jaxrs.api.PathSegmentImpl; import org.jboss.errai.enterprise.client.jaxrs.test.AbstractErraiJaxrsTest; import org.jboss.errai.enterprise.jaxrs.client.shared.PathParamTestService; import org.junit.Test; /** * Testing path parameters. * * @author Christian Sadilek <csadilek@redhat.com> */ public class PathParamIntegrationTest extends AbstractErraiJaxrsTest { @Override public String getModuleName() { return "org.jboss.errai.enterprise.jaxrs.TestModule"; } @Test public void testGetWithPathParam() { call(PathParamTestService.class, new SimpleAssertionCallback<>("@GET with @PathParam failed", 1l)).getWithPathParam(1l); } @Test public void testGetWithPathParamRegex() { call(PathParamTestService.class, new SimpleAssertionCallback<>("@GET with @PathParam using regex failed", 2l)).getWithPathParamRegex(2l); } @Test public void testGetWithPathParamRegexAndCurlyBracesQuantifier() { call(PathParamTestService.class, new SimpleAssertionCallback<>("@GET with @PathParam using regex failed", 2l)).getWithPathParamRegexAndCurlyBracesQuantifier(2l); } @Test public void testGetWithEncodedPathParam() { final String pathWithSpecialChars = "?<>!@#$%^\\&*()-+;:''\\/.,"; call(PathParamTestService.class, new SimpleAssertionCallback<>("@GET w/ encoded @PathParam failed", pathWithSpecialChars)).getWithStringPathParam(pathWithSpecialChars); } @Test public void testGetWithPathSegmentPathParam() { final PathSegment ps = new PathSegmentImpl("path;name=nameValue;author=authorValue;empty="); assertEquals("path", ps.getPath()); assertEquals("nameValue", ps.getMatrixParameters().getFirst("name")); assertEquals("authorValue", ps.getMatrixParameters().getFirst("author")); assertEquals("", ps.getMatrixParameters().getFirst("empty")); assertNull(ps.getMatrixParameters().getFirst("path")); call(PathParamTestService.class, new SimpleAssertionCallback<>("@GET with @PathParam failed", "nameValue/authorValue")) .getWithPathSegmentPathParam(ps); } @Test public void testGetWithDatePathParam() { final Date expected = new Date(); call(PathParamTestService.class, new AssertionCallback<String, String>("@GET with @PathParams using java.util.Date failed", expected.toGMTString(), str -> new Date(str).toGMTString())).getWithDatePathParam(expected); } @Test public void testGetWithMultiplePathParams() { call(PathParamTestService.class, new SimpleAssertionCallback<>("@GET with @PathParams failed", "1/2")).getWithMultiplePathParams(1, 2); } @Test public void testGetWithReusedPathParam() { call(PathParamTestService.class, new SimpleAssertionCallback<>("@GET with @PathParam failed", "1.0/2.0/1.0")).getWithReusedPathParam(1.0, 2.0); } @Test public void testPostWithPathParam() { call(PathParamTestService.class, new SimpleAssertionCallback<>("@POST with @PathParam failed", 1f)).postWithPathParam("", 1f); } @Test public void testPutWithPathParam() { call(PathParamTestService.class, new SimpleAssertionCallback<>("@PUT with @PathParam failed", 3l)).putWithPathParam(2l, 1l); } @Test public void testDeleteWithPathParam() { call(PathParamTestService.class, new SimpleAssertionCallback<>("@DELETE with @PathParam failed", 1l)).deleteWithPathParam(1l); } @Test public void testHeadWithPathParam() { call(PathParamTestService.class, new SimpleAssertionCallback<>("@HEAD with @PathParam failed", null)).headWithPathParam(1l); } }