From 5236a54c24ef411da6e8234f0496a8e1880b9348 Mon Sep 17 00:00:00 2001 From: ChristopherDancy Date: Sat, 15 Jul 2017 13:49:52 -0400 Subject: [PATCH] ADDED: TasksApi gained endpoint 'get' --- .../rest/domain/comment/TaskAnchor.java | 1 + .../bitbucket/rest/features/TasksApi.java | 11 +++++ .../rest/features/TasksApiLiveTest.java | 17 ++++++++ .../rest/features/TasksApiMockTest.java | 40 +++++++++++++++++++ 4 files changed, 69 insertions(+) diff --git a/src/main/java/com/cdancy/bitbucket/rest/domain/comment/TaskAnchor.java b/src/main/java/com/cdancy/bitbucket/rest/domain/comment/TaskAnchor.java index cdfdbd66..7aa9d168 100644 --- a/src/main/java/com/cdancy/bitbucket/rest/domain/comment/TaskAnchor.java +++ b/src/main/java/com/cdancy/bitbucket/rest/domain/comment/TaskAnchor.java @@ -42,6 +42,7 @@ public abstract class TaskAnchor { public abstract long updatedDate(); + @Nullable public abstract PermittedOperations permittedOperations(); @Nullable diff --git a/src/main/java/com/cdancy/bitbucket/rest/features/TasksApi.java b/src/main/java/com/cdancy/bitbucket/rest/features/TasksApi.java index d48ce9c9..2851a26e 100644 --- a/src/main/java/com/cdancy/bitbucket/rest/features/TasksApi.java +++ b/src/main/java/com/cdancy/bitbucket/rest/features/TasksApi.java @@ -29,8 +29,10 @@ import javax.inject.Named; import javax.ws.rs.Consumes; +import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; +import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @@ -46,4 +48,13 @@ public interface TasksApi { @Fallback(BitbucketFallbacks.TaskOnError.class) @POST Task create(@BinderParam(BindToJsonPayload.class) CreateTask createTask); + + + @Named("tasks:get") + @Documentation({"https://developer.atlassian.com/static/rest/bitbucket-server/latest/bitbucket-rest.html#idm45701777641664"}) + @Consumes(MediaType.APPLICATION_JSON) + @Path("/{taskId}") + @Fallback(BitbucketFallbacks.TaskOnError.class) + @GET + Task get(@PathParam("taskId") int taskId); } diff --git a/src/test/java/com/cdancy/bitbucket/rest/features/TasksApiLiveTest.java b/src/test/java/com/cdancy/bitbucket/rest/features/TasksApiLiveTest.java index 1de9c0f9..8b39433f 100644 --- a/src/test/java/com/cdancy/bitbucket/rest/features/TasksApiLiveTest.java +++ b/src/test/java/com/cdancy/bitbucket/rest/features/TasksApiLiveTest.java @@ -46,6 +46,7 @@ public class TasksApiLiveTest extends BaseBitbucketApiLiveTest { private final String commentText = randomString(); private final String taskComment = randomString(); private int commentId = -1; + private int taskId = -1; @BeforeClass public void init() { @@ -93,6 +94,7 @@ public void testCreateTask() { assertThat(createdTask).isNotNull(); assertThat(createdTask.errors().isEmpty()).isTrue(); assertThat(createTask.text()).isEqualTo(taskComment); + this.taskId = createdTask.id(); } @Test @@ -103,6 +105,21 @@ public void testCreateTaskOnError() { assertThat(createdTask.errors().isEmpty()).isFalse(); } + @Test (dependsOnMethods = "testCreateTask") + public void testGetTask() { + final Task getTask = api().get(this.taskId); + assertThat(getTask).isNotNull(); + assertThat(getTask.errors().isEmpty()).isTrue(); + assertThat(getTask.text()).isEqualTo(taskComment); + } + + @Test + public void testGetTaskOnError() { + final Task getTask = api().get(99999); + assertThat(getTask).isNotNull(); + assertThat(getTask.errors().isEmpty()).isFalse(); + } + @AfterClass public void fin() { terminateGeneratedTestContents(generatedTestContents); diff --git a/src/test/java/com/cdancy/bitbucket/rest/features/TasksApiMockTest.java b/src/test/java/com/cdancy/bitbucket/rest/features/TasksApiMockTest.java index d6eb67e4..7895bf3a 100644 --- a/src/test/java/com/cdancy/bitbucket/rest/features/TasksApiMockTest.java +++ b/src/test/java/com/cdancy/bitbucket/rest/features/TasksApiMockTest.java @@ -74,4 +74,44 @@ public void testCreateTaskOnErrors() throws Exception { server.shutdown(); } } + + public void testGetTask() throws Exception { + MockWebServer server = mockEtcdJavaWebServer(); + + server.enqueue(new MockResponse().setBody(payloadFromResource("/task.json")).setResponseCode(200)); + BitbucketApi baseApi = api(server.getUrl("/")); + TasksApi api = baseApi.tasksApi(); + try { + + final int taskId = 99; + final Task task = api.get(taskId); + assertThat(task).isNotNull(); + assertThat(task.errors().isEmpty()).isTrue(); + assertThat(task.id()).isEqualTo(taskId); + assertSent(server, "GET", "/rest/api/1.0/tasks/" + taskId); + } finally { + baseApi.close(); + server.shutdown(); + } + } + + public void testGetTaskOnErrors() throws Exception { + MockWebServer server = mockEtcdJavaWebServer(); + + server.enqueue(new MockResponse().setBody(payloadFromResource("/errors.json")).setResponseCode(404)); + BitbucketApi baseApi = api(server.getUrl("/")); + TasksApi api = baseApi.tasksApi(); + try { + + final int taskId = 99; + final Task task = api.get(taskId); + assertThat(task).isNotNull(); + assertThat(task.errors().isEmpty()).isFalse(); + assertThat(task.anchor()).isNull(); + assertSent(server, "GET", "/rest/api/1.0/tasks/" + taskId); + } finally { + baseApi.close(); + server.shutdown(); + } + } }