Skip to content

Commit

Permalink
Merge branch 'master' into feature-user-related-info
Browse files Browse the repository at this point in the history
  • Loading branch information
aheritier committed Sep 23, 2018
2 parents 5f263bb + 3378232 commit b4d71f0
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
5 changes: 5 additions & 0 deletions src/main/java/org/zendesk/client/v2/Zendesk.java
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,11 @@ JSON, json(Collections.singletonMap("ticket", ticket))),
handle(Ticket.class, "ticket")));
}

public ListenableFuture<JobStatus<Ticket>> updateTicketsAsync(List<Ticket> tickets) {
return submit(req("PUT", cnst("/tickets/update_many.json"), JSON, json(
Collections.singletonMap("tickets", tickets))), handleJobStatus(Ticket.class));
}

public void markTicketAsSpam(Ticket ticket) {
checkHasId(ticket);
markTicketAsSpam(ticket.getId());
Expand Down
43 changes: 42 additions & 1 deletion src/test/java/org/zendesk/client/v2/RealSmokeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.zendesk.client.v2.model.Identity;
import org.zendesk.client.v2.model.JobStatus;
import org.zendesk.client.v2.model.Organization;
import org.zendesk.client.v2.model.Priority;
import org.zendesk.client.v2.model.Request;
import org.zendesk.client.v2.model.Status;
import org.zendesk.client.v2.model.SuspendedTicket;
Expand All @@ -41,7 +42,6 @@
import java.util.Properties;
import java.util.UUID;

import static junit.framework.TestCase.assertEquals;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.junit.Assume.assumeThat;
Expand Down Expand Up @@ -397,6 +397,47 @@ public void createSolveTickets() throws Exception {
} while (ticket.getId() < firstId + 5L); // seed enough data for the paging tests
}

@Test
public void testUpdateTickets() throws Exception {
createClientWithTokenOrPassword();
Ticket t = new Ticket(
new Ticket.Requester(config.getProperty("requester.name"), config.getProperty("requester.email")),
"This is a test " + UUID.randomUUID().toString(), new Comment("Please ignore this ticket"));
Ticket ticket1 = instance.createTicket(t);
Ticket t2 = new Ticket(
new Ticket.Requester(config.getProperty("requester.name"), config.getProperty("requester.email")),
"This is a test " + UUID.randomUUID().toString(), new Comment("Please ignore this ticket"));
Ticket ticket2 = instance.createTicket(t2);
ticket1.setPriority(Priority.HIGH);
ticket2.setPriority(Priority.LOW);
ticket1.setStatus(Status.SOLVED);
ticket2.setStatus(Status.SOLVED);

JobStatus<Ticket> jobstatus = instance.updateTicketsAsync(Arrays.asList(ticket1, ticket2)).toCompletableFuture().join();
assertThat(jobstatus.getStatus(), is(JobStatus.JobStatusEnum.queued));
//TODO: uncomment the rest of this test once issue #98 is resolved: https://github.com/cloudbees/zendesk-java-client/issues/98
// Instant startUpdateAt = Instant.now();
// while (instance.getJobStatus(jobstatus).getStatus() != JobStatus.JobStatusEnum.completed
// && startUpdateAt.plusSeconds(10).isAfter(Instant.now())) {
// Thread.sleep(100);
// }
// JobStatus<Ticket> completedJobStatus = instance.getJobStatus(jobstatus);
// assertThat(completedJobStatus.getStatus(), is(JobStatus.JobStatusEnum.completed));
// assertNotNull(jobstatus.getResults());
// assertThat(jobstatus.getResults().size(), is(2));
// jobstatus.getResults().forEach(ticket -> {
// if (ticket.getId().equals(ticket1.getId())) {
// assertThat(ticket.getPriority(), is(Priority.HIGH));
// assertThat(ticket.getStatus(), is(Status.SOLVED));
// } else if (ticket.getId().equals(ticket2.getId())) {
// assertThat(ticket.getPriority(), is(Priority.LOW));
// assertThat(ticket.getStatus(), is(Status.SOLVED));
// } else {
// fail("Received a different ticket back in response: " + ticket.getId());
// }
// });
}

@Test
public void lookupUserByEmail() throws Exception {
createClientWithTokenOrPassword();
Expand Down

0 comments on commit b4d71f0

Please sign in to comment.