Simplify link building

This commit is contained in:
René Pfeuffer
2018-05-31 08:56:05 +02:00
parent 252c309a05
commit 25e25a3a94
5 changed files with 129 additions and 142 deletions

View File

@@ -12,7 +12,7 @@ import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class LinkMapBuilderTest {
public class LinkBuilderTest {
@Path("base")
public static class Main {
@@ -41,52 +41,60 @@ public class LinkMapBuilderTest {
@Test
public void shouldBuildSimplePath() {
LinkMapBuilder builder = new LinkMapBuilder(uriInfo, Main.class);
builder
.add("link")
.method("sub")
.parameters("param_x");
LinkBuilder builder = new LinkBuilder(uriInfo, Main.class);
URI actual = builder.getLinkMap().get("link").getHref();
URI actual = builder
.method("sub")
.parameters("param_x")
.create()
.getHref();
assertEquals("http://example.com/base/main/param_x", actual.toString());
}
@Test
public void shouldBuildPathOverSubResources() {
LinkMapBuilder builder = new LinkMapBuilder(uriInfo, Main.class, Sub.class);
builder
.add("link")
LinkBuilder builder = new LinkBuilder(uriInfo, Main.class, Sub.class);
URI actual = builder
.method("sub")
.parameters("param_x")
.method("x")
.parameters("param_y", "param_z");
URI actual = builder.getLinkMap().get("link").getHref();
.parameters("param_y", "param_z")
.create()
.getHref();
assertEquals("http://example.com/base/main/param_x/sub/param_y/param_z", actual.toString());
}
@Test
public void shouldBuildPathWithoutParameters() {
LinkMapBuilder builder = new LinkMapBuilder(uriInfo, NoParam.class);
builder
.add("link")
.method("get")
.parameters();
LinkBuilder builder = new LinkBuilder(uriInfo, NoParam.class);
URI actual = builder.getLinkMap().get("link").getHref();
URI actual = builder
.method("get")
.parameters()
.create()
.getHref();
assertEquals("http://example.com/base", actual.toString());
}
@Test(expected = IllegalStateException.class)
public void shouldFailForTooManyMethods() {
LinkMapBuilder builder = new LinkMapBuilder(uriInfo, Main.class);
LinkBuilder builder = new LinkBuilder(uriInfo, Main.class);
builder
.add("link")
.method("sub")
.parameters("param_x")
.method("x");
}
@Test(expected = IllegalStateException.class)
public void shouldFailForTooFewMethods() {
LinkBuilder builder = new LinkBuilder(uriInfo, Main.class, Sub.class);
builder
.method("sub")
.parameters("param_x")
.create();
}
@Before
public void setBaseUri() throws URISyntaxException {
when(uriInfo.getBaseUri()).thenReturn(new URI("http://example.com/"));