Search in sources :

Example 51 with Link

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

the class JAXRSClientIT method unmarshallTest.

/*
     * @testName: unmarshallTest
     * 
     * @assertion_ids: JAXRS:JAVADOC:815; JAXRS:JAVADOC:816; JAXRS:JAVADOC:818;
     * 
     * @test_Strategy: Test whether a class with Link can be unmarshalled fine
     */
@Test
public void unmarshallTest() throws Fault {
    Link link = RuntimeDelegate.getInstance().createLinkBuilder().uri(url).title(title).rel(rel).type(media).param(param_names[0], param_vals[0]).param(param_names[1], param_vals[1]).build();
    Model model = new Model(link);
    ByteArrayOutputStream ostream = new ByteArrayOutputStream(1000);
    JAXBContext jc = null;
    Marshaller marshaller = null;
    byte[] array = null;
    Unmarshaller unmarshaller = null;
    ByteArrayInputStream istream = null;
    Model unmarshalledModel = null;
    try {
        jc = JAXBContext.newInstance(Model.class);
        marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.marshal(model, ostream);
        array = ostream.toByteArray();
        istream = new ByteArrayInputStream(array);
        jc = JAXBContext.newInstance(Model.class);
        unmarshaller = jc.createUnmarshaller();
        unmarshalledModel = (Model) unmarshaller.unmarshal(istream);
        link = unmarshalledModel.getLink();
        assertContains(link.toString(), url, "unmarshalled link", link, "does not contain expected url", url);
        assertContains(link.getRel(), rel, "unmarshalled link", link, "does not contain expected relation", rel);
        assertContains(link.getTitle(), title, "unmarshalled link", link, "does not contain expected title", title);
        assertContains(link.getType(), media, "unmarshalled link", link, "does not contain expected media type", media);
        assertTrue(link.getParams().size() > 2, "unmarshalled link " + link + " does not contain expected parameters");
        assertContains(link.getParams().get(param_names[0]), param_vals[0], "unmarshalled link", link, "does not contain expected parameter", param_names[0], "=", param_vals[0]);
        assertContains(link.getParams().get(param_names[1]), param_vals[1], "unmarshalled link", link, "does not contain expected parameter", param_names[1], "=", param_vals[1]);
        logMsg("unmarshalled Link contains expected url, title, media type, and parameters", link);
    } catch (JAXBException e) {
        throw new Fault(e);
    }
}
Also used : Marshaller(jakarta.xml.bind.Marshaller) ByteArrayInputStream(java.io.ByteArrayInputStream) JAXBException(jakarta.xml.bind.JAXBException) JAXBContext(jakarta.xml.bind.JAXBContext) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Unmarshaller(jakarta.xml.bind.Unmarshaller) Link(jakarta.ws.rs.core.Link) Test(org.junit.jupiter.api.Test)

Example 52 with Link

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

the class BuilderClientIT method linkStringStringTest.

/*
   * @testName: linkStringStringTest
   * 
   * @assertion_ids: JAXRS:JAVADOC:881;
   * 
   * @test_Strategy: Add a link header.
   */
@Test
public void linkStringStringTest() throws Fault {
    String rel = "REL";
    Response response = Response.ok().link(URL, rel).build();
    Link link = response.getLink(rel);
    assertTrue(link != null, "link is null");
    assertTrue(link.toString().contains(URL), "link" + link + "does not contain expected" + URL);
    logMsg("Found expected link", link);
}
Also used : Response(jakarta.ws.rs.core.Response) Link(jakarta.ws.rs.core.Link) Test(org.junit.jupiter.api.Test)

Example 53 with Link

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

the class JAXRSClientIT method uriUriTest.

/*
     * @testName: uriUriTest
     * 
     * @assertion_ids: JAXRS:JAVADOC:812; JAXRS:JAVADOC:1053;
     * 
     * @test_Strategy: Set underlying URI template for the link being constructed.
     * 
     * jakarta.ws.rs.ext.RuntimeDelegate.createLinkBuilder
     */
@Test
public void uriUriTest() throws Fault {
    URI uri = uri("get");
    Link.Builder builder = RuntimeDelegate.getInstance().createLinkBuilder().uri(uri);
    Link link = builder.build();
    assertTrue(link.toString().contains(uri.toASCIIString()), "uri(URI) " + uri + " not used in " + link);
    logMsg("#uri(URI) affected link", link, "as expected");
}
Also used : Builder(jakarta.ws.rs.core.Link.Builder) URI(java.net.URI) Link(jakarta.ws.rs.core.Link) Test(org.junit.jupiter.api.Test)

Example 54 with Link

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

the class JAXRSClientIT method linkStringTest.

/*
     * @testName: linkStringTest
     * 
     * @assertion_ids: JAXRS:JAVADOC:1043; JAXRS:JAVADOC:1053;
     * 
     * @test_Strategy: Initialize builder using another link represented as a
     * string. Uses simple parser to convert string representation into a link.
     */
@Test
public void linkStringTest() throws Fault {
    String title = "Ttttlll";
    String rel = "RlrL";
    String[] params = { "Param1", "parAM2", "paRam3" };
    String[] values = { "vAlUe", "ValuEe", "VVallue" };
    StringBuilder sb = new StringBuilder().append("<").append(url()).append(">;").append("rel=\"").append(rel).append("\";");
    for (int i = 0; i != params.length; i++) sb = sb.append(params[i]).append("=\"").append(values[i]).append("\";");
    sb = sb.append("title=\"").append(title).append("\";");
    sb = sb.append("type=\"").append(MediaType.TEXT_XML).append("\"");
    String originalLink = sb.toString();
    Builder lb = RuntimeDelegate.getInstance().createLinkBuilder();
    lb = lb.link(originalLink);
    Link link = lb.build();
    // rel & title is param of Link
    assertContains(link.getRel(), rel, "link(Link) does not pass relation");
    assertContains(link.getTitle(), title, "link(Link) does noot pass title");
    assertContains(link.getType(), MediaType.TEXT_XML, "link(Link) does not pass type");
    assertParams(link, params, values);
    assertContains(link.toString(), url());
    logMsg("parameters and underlaying URI were copied as expected to a new link", link);
}
Also used : Builder(jakarta.ws.rs.core.Link.Builder) UriBuilder(jakarta.ws.rs.core.UriBuilder) Link(jakarta.ws.rs.core.Link) Test(org.junit.jupiter.api.Test)

Example 55 with Link

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

the class JAXRSClientIT method linkLinkTest.

/*
     * @testName: linkLinkTest
     * 
     * @assertion_ids: JAXRS:JAVADOC:1042; JAXRS:JAVADOC:1053;
     * 
     * @test_Strategy: Initialize builder using another link. Sets underlying URI
     * and copies all parameters.
     * jakarta.ws.rs.ext.RuntimeDelegate.createLinkBuilder
     */
@Test
public void linkLinkTest() throws Fault {
    String title = "Ttttlll";
    String rel = "RlrL";
    String[] params = { "Param1", "parAM2", "paRam3" };
    String[] values = { "vAlUe", "ValuEe", "VVallue" };
    Builder lb = RuntimeDelegate.getInstance().createLinkBuilder();
    lb = lb.baseUri(url()).title(title).rel(rel).type(MediaType.TEXT_XML);
    for (int i = 0; i != params.length; i++) lb = lb.param(params[i], values[i]);
    Link link = lb.build();
    Builder lb2 = RuntimeDelegate.getInstance().createLinkBuilder();
    lb2 = lb2.link(link);
    link = lb2.build();
    // rel & title is param of Link
    assertContains(link.getRel(), rel, "link(Link) does not pass relation");
    assertContains(link.getTitle(), title, "link(Link) does noot pass title");
    assertContains(link.getType(), MediaType.TEXT_XML, "link(Link) does not pass type");
    assertParams(link, params, values);
    assertContains(link.toString(), url());
    logMsg("parameters and underlaying URI were copied as expected to a new link", link);
}
Also used : Builder(jakarta.ws.rs.core.Link.Builder) UriBuilder(jakarta.ws.rs.core.UriBuilder) 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