Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RESTEASY-2194 integration test-case #1964

Merged
merged 1 commit into from
Mar 26, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import org.jboss.logging.Logger;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
import org.jboss.resteasy.test.resource.param.resource.RESTEasyParamBeanCdi;
import org.jboss.resteasy.test.resource.param.resource.RESTEasyParamCdiResource;
import org.jboss.resteasy.test.providers.jsonb.basic.JsonBindingTest;
import org.jboss.resteasy.utils.PortProviderUtil;
import org.jboss.resteasy.utils.TestUtil;
import org.jboss.shrinkwrap.api.Archive;
Expand Down Expand Up @@ -35,14 +35,14 @@
@RunWith(Arquillian.class)
@RunAsClient
public class RESTEasyParamCdiTest {
protected static final Logger logger = Logger.getLogger(JsonBindingTest.class.getName());
protected static final Logger logger = Logger.getLogger(RESTEasyParamCdiTest.class.getName());

static ResteasyClient client;

@Deployment
public static Archive<?> deploySimpleResource() {
WebArchive war = TestUtil.prepareArchive(RESTEasyParamCdiTest.class.getSimpleName());
return TestUtil.finishContainerPrepare(war, null, RESTEasyParamCdiResource.class);
return TestUtil.finishContainerPrepare(war, null, RESTEasyParamCdiResource.class, RESTEasyParamBeanCdi.class);
}

@Before
Expand Down Expand Up @@ -100,4 +100,45 @@ public void requestScopedTest() throws Exception {
Assert.assertThat("expected value: " + defaultValue + ", get: " + message, message, is(defaultValue));
}
}

/**
* @tpTestDetails Checks end-point with a BeanParam decorated by @RequestScoped annotation
* @tpSince RESTEasy 3.6
*/
@Test
public void requestScopedBeanParamTest() throws Exception {
for (Integer i = 0; i < 3; i++) {
logger.info("Request " + i);
String defaultValue = i.toString();
Response response = client.target(generateURL(String.format("/%d/%d/%d/%d/%d",
i, i, i, i, i)))
.queryParam("queryParam0", defaultValue)
.queryParam("queryParam1", defaultValue)
.queryParam("queryParam2", defaultValue)
.queryParam("queryParam3", defaultValue)
.matrixParam("matrixParam0", defaultValue)
.matrixParam("matrixParam1", defaultValue)
.matrixParam("matrixParam2", defaultValue)
.matrixParam("matrixParam3", defaultValue)
.request()
.header("headerParam0", defaultValue)
.header("headerParam1", defaultValue)
.header("headerParam2", defaultValue)
.header("headerParam3", defaultValue)
.cookie("cookieParam0", defaultValue)
.cookie("cookieParam1", defaultValue)
.cookie("cookieParam2", defaultValue)
.cookie("cookieParam3", defaultValue)
.post(Entity.form(new Form()
.param("formParam0", defaultValue)
.param("formParam1", defaultValue)
.param("formParam2", defaultValue)
.param("formParam3", defaultValue)
));
Assert.assertThat("expected response code is 200, get: " + response.getStatus(),
response.getStatus(), is(200));
String message = response.readEntity(String.class);
Assert.assertThat("expected value: " + defaultValue + ", get: " + message, message, is(defaultValue));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
package org.jboss.resteasy.test.resource.param.resource;

import org.jboss.resteasy.annotations.jaxrs.CookieParam;
import org.jboss.resteasy.annotations.jaxrs.FormParam;
import org.jboss.resteasy.annotations.jaxrs.HeaderParam;
import org.jboss.resteasy.annotations.jaxrs.MatrixParam;
import org.jboss.resteasy.annotations.jaxrs.PathParam;
import org.jboss.resteasy.annotations.jaxrs.QueryParam;

import javax.enterprise.context.RequestScoped;

@RequestScoped
public class RESTEasyParamBeanCdi
{
private String cookieParam2;
@CookieParam
private String cookieParam3;

private String formParam2;
@FormParam
private String formParam3;

private String headerParam2;
@HeaderParam
private String headerParam3;

private String matrixParam2;
@MatrixParam
private String matrixParam3;

@PathParam
private String pathParam3;
private String pathParam4;

private String queryParam2;
@QueryParam
private String queryParam3;


public String getCookieParam2()
{
return cookieParam2;
}

@CookieParam
public void setCookieParam2(String cookieParam2)
{
this.cookieParam2 = cookieParam2;
}

public String getCookieParam3() {
return cookieParam3;
}

public String getFormParam2()
{
return formParam2;
}

@FormParam
public void setFormParam2(String formParam2)
{
this.formParam2 = formParam2;
}

public String getFormParam3()
{
return formParam3;
}

public String getPathParam3() {
return pathParam3;
}

public String getPathParam4()
{
return pathParam4;
}

@PathParam
public void setPathParam4(String pathParam4)
{
this.pathParam4 = pathParam4;
}

public String getHeaderParam2()
{
return headerParam2;
}

@HeaderParam
public void setHeaderParam2(String headerParam2)
{
this.headerParam2 = headerParam2;
}

public String getHeaderParam3() {
return headerParam3;
}

public String getMatrixParam2()
{
return matrixParam2;
}

@MatrixParam
public void setMatrixParam2(String matrixParam2)
{
this.matrixParam2 = matrixParam2;
}

public String getMatrixParam3() {
return matrixParam3;
}

public String getQueryParam2()
{
return queryParam2;
}

@QueryParam
public void setQueryParam2(String queryParam2)
{
this.queryParam2 = queryParam2;
}

public String getQueryParam3() {
return queryParam3;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.jboss.resteasy.annotations.jaxrs.QueryParam;

import javax.enterprise.context.RequestScoped;
import javax.ws.rs.BeanParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
Expand Down Expand Up @@ -186,8 +187,84 @@ public Response post2(
}

if(!queryParam3.equals(queryParam1)
|| !queryParam3.equals(queryParam2)
|| !queryParam3.equals(queryParam3)) {
|| !queryParam3.equals(queryParam2)) {
logger.error("query error");
return Response.status(Response.Status.BAD_REQUEST).build();
}

return Response.ok(queryParam1).build();
}

@POST
@Path("{pathParam0}/{pathParam1}/{pathParam2}/{pathParam3}/{pathParam4}")
public Response post(@BeanParam RESTEasyParamBeanCdi paramBean)
{
StringBuilder details = new StringBuilder();
details.append("cookieParam1: "+cookieParam1+"\n");
details.append("cookieParam2: "+paramBean.getCookieParam2()+"\n");
details.append("cookieParam3: "+paramBean.getCookieParam3()+"\n");

details.append("formParam1: "+formParam1+"\n");
details.append("formParam2: "+paramBean.getFormParam2()+"\n");
details.append("formParam3: "+paramBean.getFormParam3()+"\n");

details.append("headerParam1: "+headerParam1+"\n");
details.append("headerParam2: "+paramBean.getHeaderParam2()+"\n");
details.append("headerParam3: "+paramBean.getHeaderParam3()+"\n");

details.append("matrixParam1: "+matrixParam1+"\n");
details.append("matrixParam2: "+paramBean.getMatrixParam2()+"\n");
details.append("matrixParam3: "+paramBean.getMatrixParam3()+"\n");

details.append("pathParam1: "+pathParam1+"\n");
details.append("pathParam2: "+pathParam2+"\n");
details.append("pathParam3: "+paramBean.getPathParam3()+"\n");
details.append("pathParam4: "+paramBean.getPathParam4()+"\n");

details.append("queryParam1: "+queryParam1+"\n");
details.append("queryParam2: "+paramBean.getQueryParam2()+"\n");
details.append("queryParam3: "+paramBean.getQueryParam3()+"\n");

logger.info(details);

if(!paramBean.getQueryParam3().equals(cookieParam1)
|| !paramBean.getQueryParam3().equals(paramBean.getCookieParam2())
|| !paramBean.getQueryParam3().equals(paramBean.getCookieParam3())) {
logger.error("cookie error");
return Response.status(Response.Status.BAD_REQUEST).build();
}

if(!paramBean.getQueryParam3().equals(formParam1)
|| !paramBean.getQueryParam3().equals(paramBean.getFormParam2())
|| !paramBean.getQueryParam3().equals(paramBean.getFormParam3())) {
logger.error("form error");
return Response.status(Response.Status.BAD_REQUEST).build();
}

if(!paramBean.getQueryParam3().equals(headerParam1)
|| !paramBean.getQueryParam3().equals(paramBean.getHeaderParam2())
|| !paramBean.getQueryParam3().equals(paramBean.getHeaderParam3())) {
logger.error("header error");
return Response.status(Response.Status.BAD_REQUEST).build();
}

if(!paramBean.getQueryParam3().equals(matrixParam1)
|| !paramBean.getQueryParam3().equals(paramBean.getMatrixParam2())
|| !paramBean.getQueryParam3().equals(paramBean.getMatrixParam3())) {
logger.error("matrix error");
return Response.status(Response.Status.BAD_REQUEST).build();
}

if(!paramBean.getQueryParam3().equals(pathParam1)
|| !paramBean.getQueryParam3().equals(pathParam2)
|| !paramBean.getQueryParam3().equals(paramBean.getPathParam3())
|| !paramBean.getQueryParam3().equals(paramBean.getPathParam4())) {
logger.error("path error");
return Response.status(Response.Status.BAD_REQUEST).build();
}

if(!paramBean.getQueryParam3().equals(queryParam1)
|| !paramBean.getQueryParam3().equals(paramBean.getQueryParam2())) {
logger.error("query error");
return Response.status(Response.Status.BAD_REQUEST).build();
}
Expand Down