if (!actionDescriptors.isEmpty()) { if (affordance.getUriTemplateComponents() .hasVariables()) { jgen.writeStringField(JsonLdKeywords.AT_TYPE, "hydra:Collection"); PartialUriTemplateComponents templateComponents = collectionAffordance.getUriTemplateComponents(); if (!collectionAffordance.isBaseUriTemplated() && !collectionAffordance.hasUnsatisfiedRequiredVariables()) {
String href; if (affordance.isTemplated()) { href = affordance.getUriTemplateComponents() .getBaseUri(); } else {
String href; if (affordance.isTemplated()) { href = affordance.getUriTemplateComponents() .getBaseUri(); } else {
@Test public void testLinkToMethodInvocationNamedRequestParam() throws Exception { final Affordance affordance = factory.linkTo(AffordanceBuilder.methodOn(EventControllerSample.class) .simpleQueryEvent(null, null)) .rel("foo") .build(); // href strips optional variables assertEquals("http://example.com/events/simplequery{?q}", affordance.getHref()); // full uritemplate assertEquals("http://example.com/events/simplequery{?q,offset}", affordance.getUriTemplateComponents().toString()); assertEquals("foo", affordance.getRel()); }
@Test public void testLinkToMethodInvocationNamedRequestParamWithValue() throws Exception { final Affordance affordance = factory.linkTo(AffordanceBuilder.methodOn(EventControllerSample.class) .simpleQueryEvent("foo", null)) .rel("foo") .build(); // href strips optional variables assertEquals("http://example.com/events/simplequery?q=foo", affordance.getHref()); // full uritemplate assertEquals("http://example.com/events/simplequery?q=foo{&offset}", affordance.getUriTemplateComponents().toString()); assertEquals("foo", affordance.getRel()); }
@Test public void testLinkToMethodInvocationNamedRequestParamWithAllValues() throws Exception { final Affordance affordance = factory.linkTo(AffordanceBuilder.methodOn(EventControllerSample.class) .simpleQueryEvent("foo", 2L)) .rel("foo") .build(); // href must not strip variables with values assertEquals("http://example.com/events/simplequery?q=foo&offset=2", affordance.getHref()); // full uritemplate with all values assertEquals("http://example.com/events/simplequery?q=foo&offset=2", affordance.getUriTemplateComponents().toString()); assertEquals("foo", affordance.getRel()); }