Skip to content

Commit

Permalink
Add coverage for "method not registered" error in native mode
Browse files Browse the repository at this point in the history
  • Loading branch information
fedinskiy committed Dec 18, 2024
1 parent f1c4596 commit 7026230
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package io.quarkus.ts.http.minimum.reactive;

import java.io.IOException;

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.ws.rs.WebApplicationException;
import jakarta.ws.rs.ext.Provider;
import jakarta.ws.rs.ext.ReaderInterceptor;
import jakarta.ws.rs.ext.ReaderInterceptorContext;

import org.jboss.logging.Logger;

/**
* The type Jakarta rest workflow tracker.
*/
@Provider
@ApplicationScoped
public class JakartaRestInterceptor implements ReaderInterceptor {

private static final Logger LOG = Logger.getLogger(JakartaRestInterceptor.class);

@Override
public Object aroundReadFrom(ReaderInterceptorContext context)
throws IOException, WebApplicationException {
LOG.info("Before reading " + context.getGenericType());
Object entity = context.proceed();
LOG.info("After reading " + entity);
return entity;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

package io.quarkus.ts.http.minimum.reactive;

public class Operator {
private String name;

public Operator() {
this.name = null;
}

public Operator(String name) {
this.name = name;
}

public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package io.quarkus.ts.http.minimum.reactive;

import jakarta.interceptor.Interceptors;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;

import io.smallrye.mutiny.Uni;

/**
* The OperatorResource.
*/
@Path("/operator")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Interceptors({ JakartaRestInterceptor.class })
public class OperatorResource {

@POST
public Uni<Response> postOperator(Operator operator) {
return Uni.createFrom().item(Response.status(Response.Status.OK)
.entity("Hello " + operator.getName()).build());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

package io.quarkus.ts.http.minimum.reactive;

import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;

import org.junit.jupiter.api.Test;

import io.quarkus.test.junit.QuarkusIntegrationTest;
import io.restassured.http.ContentType;

@QuarkusIntegrationTest
public class OperatorResourceIT {

@Test
void executePostOperator() {
given()
.when()
.contentType(ContentType.JSON)
.body(new Operator("operator"))
.post("/operator")
.then()
.statusCode(200)
.body(is("Hello operator"));
}
}

0 comments on commit 7026230

Please sign in to comment.