@Test(expectedExceptions = IllegalArgumentException.class) public void expansionShouldFailWithIllegalArgumentExceptionForUnknownVarType() { // given final URI varType = create("http://example.org/vars/bar"); final TemplatedLink templatedLink = templatedLink( create("http://example.org/rel/foo"), "http://example.org/foo/{bar}", asList(hrefVar("bar", varType)), null); // when templatedLink.expandToUri(create("http://example.org/vars/foo"), "42"); // then an exception is thrown. }
@Test public void shouldExpandUriForExistingVarType() { // given final URI varType = create("http://example.org/vars/bar"); final TemplatedLink templatedLink = templatedLink( create("http://example.org/rel/foo"), "http://example.org/foo/{bar}", asList(hrefVar("bar", varType)), null); // when final URI uri = templatedLink.expandToUri(varType, "42"); // then assertEquals(uri, create("http://example.org/foo/42")); }
@Test public void expansionShouldTreatMissingVarTypeAsEmptyValue() { // given final URI fooVarType = create("http://example.org/vars/foo"); final URI barVarType = create("http://example.org/vars/bar"); final TemplatedLink templatedLink = templatedLink( create("http://example.org/rel/foo"), "http://example.org/{foo}/{bar}", asList(hrefVar("foo", fooVarType), hrefVar("bar", barVarType)), null); // when final URI uri = templatedLink.expandToUri(create("http://example.org/vars/foo"), "42"); // then assertEquals(uri, create("http://example.org/42/")); }
@Test public void shouldExpandUriWithRequestParams() { // given final URI fooVarType = create("http://example.org/vars/foo"); final URI barVarType = create("http://example.org/vars/bar"); final TemplatedLink templatedLink = templatedLink( create("http://example.org/rel/foo"), "http://example.org{?foo,bar}", asList(hrefVar("foo", fooVarType), hrefVar("bar", barVarType)), null); // when final URI uri = templatedLink.expandToUri(fooVarType, "42", barVarType, 4711); // then assertEquals(uri, create("http://example.org?foo=42&bar=4711")); }