diff options
author | Kevin Sawicki | 2011-09-08 18:04:20 +0000 |
---|---|---|
committer | Kevin Sawicki | 2011-09-08 18:04:20 +0000 |
commit | 85c5496800bcfd3bda20f4b2727ad2af3d28cce1 (patch) | |
tree | f1948ec71b7fe18b1f7dafe7db2ee2af43a7f1c7 /org.eclipse.egit.github.core.tests | |
parent | 8a7b634cd68da00df271b561ff6503d608d75c02 (diff) | |
download | egit-github-85c5496800bcfd3bda20f4b2727ad2af3d28cce1.tar.gz egit-github-85c5496800bcfd3bda20f4b2727ad2af3d28cce1.tar.xz egit-github-85c5496800bcfd3bda20f4b2727ad2af3d28cce1.zip |
Add service support for issue events API
Change-Id: I373f013d575da87c73a59d3d7deef406f85f4c4e
Signed-off-by: Kevin Sawicki <kevin@github.com>
Diffstat (limited to 'org.eclipse.egit.github.core.tests')
4 files changed, 194 insertions, 12 deletions
diff --git a/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/AllHeadlessTests.java b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/AllHeadlessTests.java index dd66df79..fe9b68f5 100644 --- a/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/AllHeadlessTests.java +++ b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/AllHeadlessTests.java @@ -29,14 +29,14 @@ import org.junit.runners.Suite.SuiteClasses; EncodingUtilsTest.class, FieldErrorTest.class, GistChangeStatusTest.class, GistFileTest.class, GistRevisionTest.class, GistServiceTest.class, GistTest.class, GitHubClientTest.class, - IdTest.class, IssueServiceTest.class, IssueTest.class, KeyTest.class, - LabelComparatorTest.class, LabelServiceTest.class, LabelTest.class, - LanguageTest.class, MergeStatusTest.class, - MilestoneComparatorTest.class, MilestoneServiceTest.class, - MilestoneTest.class, OrganizationServiceTest.class, - PagedRequestTest.class, PullRequestMarkerTest.class, - PullRequestServiceTest.class, PullRequestTest.class, - ReferenceTest.class, RepositoryCommitTest.class, + IdTest.class, IssueEventTest.class, IssueServiceTest.class, + IssueTest.class, KeyTest.class, LabelComparatorTest.class, + LabelServiceTest.class, LabelTest.class, LanguageTest.class, + MergeStatusTest.class, MilestoneComparatorTest.class, + MilestoneServiceTest.class, MilestoneTest.class, + OrganizationServiceTest.class, PagedRequestTest.class, + PullRequestMarkerTest.class, PullRequestServiceTest.class, + PullRequestTest.class, ReferenceTest.class, RepositoryCommitTest.class, RepositoryIdTest.class, RepositoryTest.class, RequestErrorTest.class, SearchRepositoryTest.class, ShaResourceTest.class, TagTest.class, TeamServiceTest.class, TeamTest.class, TreeEntryTest.class, diff --git a/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/IssueEventTest.java b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/IssueEventTest.java new file mode 100644 index 00000000..058cb63d --- /dev/null +++ b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/IssueEventTest.java @@ -0,0 +1,73 @@ +/****************************************************************************** + * Copyright (c) 2011 GitHub Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Kevin Sawicki (GitHub Inc.) - initial API and implementation + *****************************************************************************/ +package org.eclipse.egit.github.core.tests; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; + +import java.util.Date; + +import org.eclipse.egit.github.core.Issue; +import org.eclipse.egit.github.core.IssueEvent; +import org.eclipse.egit.github.core.User; +import org.junit.Test; + +/** + * Unit tests of {@link IssueEvent} + */ +public class IssueEventTest { + + /** + * Test default state of issue event + */ + @Test + public void defaultState() { + IssueEvent event = new IssueEvent(); + assertNull(event.getActor()); + assertNull(event.getCommitId()); + assertNull(event.getCreatedAt()); + assertNull(event.getEvent()); + assertEquals(0, event.getId()); + assertNull(event.getUrl()); + assertNull(event.getIssue()); + } + + /** + * Test updating issue event fields + */ + @Test + public void updateFields() { + IssueEvent event = new IssueEvent(); + User actor = new User().setName("Act Tor"); + assertEquals(actor, event.setActor(actor).getActor()); + assertEquals("a12b", event.setCommitId("a12b").getCommitId()); + assertEquals(new Date(60000), event.setCreatedAt(new Date(60000)) + .getCreatedAt()); + assertEquals(4356, event.setId(4356).getId()); + assertEquals("commit", event.setEvent("commit").getEvent()); + assertEquals("url://a", event.setUrl("url://a").getUrl()); + Issue issue = new Issue().setNumber(30); + assertEquals(issue, event.setIssue(issue).getIssue()); + } + + /** + * Test non-mutable created at date + */ + @Test + public void nonMutableCreatedAt() { + IssueEvent event = new IssueEvent(); + Date date = new Date(1000); + event.setCreatedAt(date); + date.setTime(0); + assertFalse(date.equals(event.getCreatedAt())); + } +} diff --git a/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/IssueServiceTest.java b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/IssueServiceTest.java index 36ec4284..e1ef9063 100644 --- a/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/IssueServiceTest.java +++ b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/IssueServiceTest.java @@ -24,6 +24,7 @@ import java.util.Map; import org.eclipse.egit.github.core.Comment; import org.eclipse.egit.github.core.Issue; +import org.eclipse.egit.github.core.IssueEvent; import org.eclipse.egit.github.core.client.GitHubClient; import org.eclipse.egit.github.core.client.GitHubRequest; import org.eclipse.egit.github.core.client.GitHubResponse; @@ -585,4 +586,46 @@ public class IssueServiceTest { assertNotNull(issues); assertTrue(issues.isEmpty()); } + + /** + * Page all issue events for repository + * + * @throws IOException + */ + @Test + public void pageEvents() throws IOException { + PageIterator<IssueEvent> iter = issueService.pageEvents("user", "repo"); + assertNotNull(iter); + assertTrue(iter.hasNext()); + assertEquals(Utils.page("/repos/user/repo/issues/events"), iter + .getRequest().generateUri()); + } + + /** + * Page issue events for repository + * + * @throws IOException + */ + @Test + public void pageIssueEvents() throws IOException { + PageIterator<IssueEvent> iter = issueService.pageIssueEvents("user", + "repo", 16); + assertNotNull(iter); + assertTrue(iter.hasNext()); + assertEquals(Utils.page("/repos/user/repo/issues/16/events"), iter + .getRequest().generateUri()); + } + + /** + * Get issue event + * + * @throws IOException + */ + @Test + public void getIssueEvent() throws IOException { + issueService.getIssueEvent("user", "repo", 4399); + GitHubRequest request = new GitHubRequest(); + request.setUri("/repos/user/repo/issues/events/4399"); + verify(gitHubClient).get(request); + } } diff --git a/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/live/IssueTest.java b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/live/IssueTest.java index 05de354c..9d6fd115 100644 --- a/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/live/IssueTest.java +++ b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/live/IssueTest.java @@ -23,6 +23,7 @@ import java.util.List; import java.util.Map; import org.eclipse.egit.github.core.Issue; +import org.eclipse.egit.github.core.IssueEvent; import org.eclipse.egit.github.core.client.PageIterator; import org.eclipse.egit.github.core.service.IssueService; import org.junit.Test; @@ -34,7 +35,7 @@ public class IssueTest extends LiveTest { /** * Test fetching an issue - * + * * @throws IOException */ @Test @@ -53,8 +54,73 @@ public class IssueTest extends LiveTest { } /** + * Test issue events + * + * @throws IOException + */ + @Test + public void getIssueEvents() throws IOException { + IssueService service = new IssueService(client); + PageIterator<IssueEvent> iter = service.pageIssueEvents("schacon", + "showoff", 1); + assertNotNull(iter); + assertTrue(iter.hasNext()); + for (Collection<IssueEvent> page : iter) { + assertNotNull(page); + assertFalse(page.isEmpty()); + for (IssueEvent event : page) { + assertNotNull(event); + assertTrue(event.getId() > 0); + assertNotNull(event.getActor()); + if (event.getIssue() != null) + assertTrue(event.getIssue().getNumber() > 0); + assertNotNull(event.getCreatedAt()); + assertNotNull(event.getEvent()); + assertNotNull(event.getUrl()); + IssueEvent fetched = service.getIssueEvent("schacon", + "showoff", event.getId()); + assertNotNull(fetched); + assertEquals(event.getId(), fetched.getId()); + assertNotNull(fetched.getActor()); + assertEquals(event.getActor().getLogin(), fetched.getActor() + .getLogin()); + if (event.getCommitId() != null) + assertEquals(event.getCommitId(), fetched.getCommitId()); + assertEquals(event.getCreatedAt(), fetched.getCreatedAt()); + assertEquals(event.getEvent(), fetched.getEvent()); + assertEquals(event.getUrl(), fetched.getUrl()); + } + } + } + + /** + * Get single page of repository issue events + * + * @throws IOException + */ + @Test + public void pageAllIssueEvents() throws IOException { + IssueService service = new IssueService(client); + PageIterator<IssueEvent> iter = service.pageEvents("schacon", + "showoff", 10); + assertNotNull(iter); + assertTrue(iter.hasNext()); + Collection<IssueEvent> firstPage = iter.next(); + assertNotNull(firstPage); + assertFalse(firstPage.isEmpty()); + for (IssueEvent event : firstPage) { + assertNotNull(event); + assertTrue(event.getId() > 0); + assertNotNull(event.getActor()); + assertNotNull(event.getCreatedAt()); + assertNotNull(event.getEvent()); + assertNotNull(event.getUrl()); + } + } + + /** * Test fetching multiple issues - * + * * @throws IOException */ @Test @@ -70,7 +136,7 @@ public class IssueTest extends LiveTest { /** * Test paging of requests - * + * * @throws Exception */ @Test @@ -106,7 +172,7 @@ public class IssueTest extends LiveTest { /** * Testing page current user's issues - * + * * @throws Exception */ @Test |