Search in sources :

Example 41 with Link

use of jakarta.ws.rs.core.Link in project jaxrs-api by eclipse-ee4j.

the class JAXRSClientIT method fromLinkTest.

/*
     * @testName: fromLinkTest
     * 
     * @assertion_ids: JAXRS:JAVADOC:783;
     * 
     * @test_Strategy: Throws: java.lang.IllegalArgumentException - if path is null.
     */
@Test
public void fromLinkTest() throws Fault {
    Link link = RuntimeDelegate.getInstance().createLinkBuilder().baseUri(url()).rel("relation relation2").title("titleX").param("param1", "value1").param("param2", "value2").type(MediaType.APPLICATION_OCTET_STREAM).build();
    Link fromLink = Link.fromLink(link).build();
    assertEquals(link, fromLink, "fromLink(link)=", fromLink, "differes from original Link", link);
    logMsg("fromLink() is equal to original link", link, "as expected");
}
Also used : Link(jakarta.ws.rs.core.Link) Test(org.junit.jupiter.api.Test)

Example 42 with Link

use of jakarta.ws.rs.core.Link in project jaxrs-api by eclipse-ee4j.

the class JAXRSClientIT method getRelsTest.

/*
     * @testName: getRelsTest
     * 
     * @assertion_ids: JAXRS:JAVADOC:956;
     * 
     * @test_Strategy: Returns the value associated with the link "rel" param as a
     * list of strings or the empty list if "rel" is not defined.
     */
@Test
public void getRelsTest() throws Fault {
    String[] rels = { "RELREL", "REL", "relrelrel", "RELRELREL" };
    Builder builder = Link.fromUri(uri("get"));
    for (int i = 0; i != rels.length; i++) builder = builder.rel(rels[i]);
    Link link = builder.build();
    assertNotNull(link.getRels(), "#getRels is null");
    assertEqualsInt(link.getRels().size(), 4, "Unexpected #getRels size", link.getRels().size(), "Should be 4");
    String list = ";" + JaxrsUtil.iterableToString(";", link.getRels()) + ";";
    for (int i = 0; i != rels.length; i++) assertContains(list, ";" + rels[i] + ";", "Relation", rels[i], "has not been found in #getRels", list);
    logMsg("#getRel() return expected rels", list);
}
Also used : Builder(jakarta.ws.rs.core.Link.Builder) UriBuilder(jakarta.ws.rs.core.UriBuilder) ClientBuilder(jakarta.ws.rs.client.ClientBuilder) Link(jakarta.ws.rs.core.Link) Test(org.junit.jupiter.api.Test)

Example 43 with Link

use of jakarta.ws.rs.core.Link in project jaxrs-api by eclipse-ee4j.

the class JAXRSClientIT method getTypeIsNullTest.

/*
     * @testName: getTypeIsNullTest
     * 
     * @assertion_ids: JAXRS:JAVADOC:795;
     * 
     * @test_Strategy: Returns the value associated with the link "type" param, or
     * null if this param is not specified.
     */
@Test
public void getTypeIsNullTest() throws Fault {
    Link link = linkFromResource("get");
    String type = link.getType();
    assertTrue(type == null, "#getType is unexpected " + type);
    logMsg("#getType( returns null as expected");
}
Also used : Link(jakarta.ws.rs.core.Link) Test(org.junit.jupiter.api.Test)

Example 44 with Link

use of jakarta.ws.rs.core.Link in project jaxrs-api by eclipse-ee4j.

the class JAXRSClientIT method getUriTest.

/*
     * @testName: getUriTest
     * 
     * @assertion_ids: JAXRS:JAVADOC:796;
     * 
     * @test_Strategy: Returns the underlying URI associated with this link.
     */
@Test
public void getUriTest() throws Fault {
    URI uri = uri("get");
    Builder builder = Link.fromUri(uri);
    Link link = builder.build();
    URI uriFromLink = link.getUri();
    assertTrue(uri.equals(uriFromLink), "#getUri() " + uriFromLink + " differes from original uri " + uri);
    logMsg("Original URI", uri, "equals obtained", uriFromLink);
}
Also used : Builder(jakarta.ws.rs.core.Link.Builder) UriBuilder(jakarta.ws.rs.core.UriBuilder) ClientBuilder(jakarta.ws.rs.client.ClientBuilder) URI(java.net.URI) Link(jakarta.ws.rs.core.Link) Test(org.junit.jupiter.api.Test)

Example 45 with Link

use of jakarta.ws.rs.core.Link in project jaxrs-api by eclipse-ee4j.

the class JAXRSClientIT method fromResourceMethodLinkUsedInInvocationTest.

/*
     * @testName: fromResourceMethodLinkUsedInInvocationTest
     * 
     * @assertion_ids: JAXRS:JAVADOC:787;
     * 
     * @test_Strategy: Generate a link by introspecting a resource method.
     */
@Test
public void fromResourceMethodLinkUsedInInvocationTest() throws Fault {
    final String linkName = "link";
    Client client = ClientBuilder.newClient();
    client.register(new ClientRequestFilter() {

        @Override
        public void filter(ClientRequestContext ctx) throws IOException {
            String uri = ctx.getUri().toASCIIString();
            Link.Builder builder = Link.fromMethod(Resource.class, "consumesAppJson").rel(linkName);
            Link link = builder.build();
            Response response = Response.ok(uri).links(link).build();
            ctx.abortWith(response);
        }
    });
    // Phase 1, ask for a link;
    WebTarget target = client.target(url() + "resource/get");
    Response response = target.request().get();
    String entity = response.readEntity(String.class);
    assertTrue(response.hasLink(linkName), "No link received");
    assertContains(url() + "resource/get", entity);
    // Phase 2, use the link, check the correctness
    assertTrue(response.hasLink(linkName), "No link received");
    Link link = response.getLink(linkName);
    response = client.invocation(link).post(null);
    entity = response.readEntity(String.class);
    assertTrue(response.hasLink(linkName), "No link received");
    assertContains(url() + "resource/consumesappjson", entity);
    logMsg("Opaque Link has been used in Client.invocation() sucessfully");
}
Also used : ClientRequestFilter(jakarta.ws.rs.client.ClientRequestFilter) ClientRequestContext(jakarta.ws.rs.client.ClientRequestContext) Response(jakarta.ws.rs.core.Response) Builder(jakarta.ws.rs.core.Link.Builder) UriBuilder(jakarta.ws.rs.core.UriBuilder) ClientBuilder(jakarta.ws.rs.client.ClientBuilder) IOException(java.io.IOException) WebTarget(jakarta.ws.rs.client.WebTarget) JAXRSCommonClient(ee.jakarta.tck.ws.rs.common.JAXRSCommonClient) Client(jakarta.ws.rs.client.Client) Link(jakarta.ws.rs.core.Link) Test(org.junit.jupiter.api.Test)

Aggregations

Link (jakarta.ws.rs.core.Link)84 Test (org.junit.jupiter.api.Test)69 Builder (jakarta.ws.rs.core.Link.Builder)37 UriBuilder (jakarta.ws.rs.core.UriBuilder)27 Response (jakarta.ws.rs.core.Response)23 URI (java.net.URI)19 ClientBuilder (jakarta.ws.rs.client.ClientBuilder)14 URISyntaxException (java.net.URISyntaxException)7 Path (jakarta.ws.rs.Path)4 POST (jakarta.ws.rs.POST)3 Client (jakarta.ws.rs.client.Client)3 ClientRequestContext (jakarta.ws.rs.client.ClientRequestContext)3 ClientResponseContext (jakarta.ws.rs.client.ClientResponseContext)3 UriBuilderException (jakarta.ws.rs.core.UriBuilderException)3 GET (jakarta.ws.rs.GET)2 ResponseBuilder (jakarta.ws.rs.core.Response.ResponseBuilder)2 JAXBContext (jakarta.xml.bind.JAXBContext)2 JAXBException (jakarta.xml.bind.JAXBException)2 Marshaller (jakarta.xml.bind.Marshaller)2 ByteArrayInputStream (java.io.ByteArrayInputStream)2