Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java')
-rw-r--r--org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java92
1 files changed, 85 insertions, 7 deletions
diff --git a/org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java b/org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java
index 01a1c15fb..53fecc5ee 100644
--- a/org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java
+++ b/org.eclipse.mylyn.gerrit.tests/src/org/eclipse/mylyn/internal/gerrit/core/remote/GerritReviewRemoteFactoryTest.java
@@ -36,11 +36,13 @@ import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jgit.api.CommitCommand;
import org.eclipse.mylyn.gerrit.tests.core.client.rest.ChangeInfoTest;
+import org.eclipse.mylyn.gerrit.tests.support.GerritFixture;
import org.eclipse.mylyn.gerrit.tests.support.GerritProject.CommitResult;
import org.eclipse.mylyn.internal.gerrit.core.client.GerritChange;
import org.eclipse.mylyn.internal.gerrit.core.client.GerritException;
import org.eclipse.mylyn.internal.gerrit.core.client.GerritVersion;
import org.eclipse.mylyn.internal.gerrit.core.client.compat.ChangeDetailX;
+import org.eclipse.mylyn.internal.gerrit.core.client.rest.ApprovalUtil;
import org.eclipse.mylyn.internal.gerrit.core.client.rest.ChangeInfo;
import org.eclipse.mylyn.reviews.core.model.IApprovalType;
import org.eclipse.mylyn.reviews.core.model.IChange;
@@ -55,12 +57,16 @@ import org.eclipse.mylyn.reviews.core.model.RequirementStatus;
import org.eclipse.mylyn.reviews.core.model.ReviewStatus;
import org.eclipse.mylyn.reviews.core.spi.remote.emf.RemoteEmfConsumer;
import org.junit.Test;
+import org.osgi.framework.Version;
+import com.google.gerrit.common.data.ApprovalDetail;
import com.google.gerrit.common.data.ChangeDetail;
import com.google.gerrit.common.data.ReviewerResult;
+import com.google.gerrit.reviewdb.ApprovalCategory;
import com.google.gerrit.reviewdb.ApprovalCategoryValue;
import com.google.gerrit.reviewdb.Change.Status;
import com.google.gerrit.reviewdb.ChangeMessage;
+import com.google.gerrit.reviewdb.PatchSetApproval;
/**
* @author Miles Parker
@@ -278,8 +284,8 @@ public class GerritReviewRemoteFactoryTest extends GerritRemoteTest {
try {
reviewHarness.client.addReviewers(reviewHarness.shortId, null, new NullProgressMonitor());
fail("Expected to fail when trying to add null reviewers");
- } catch (GerritException e) {
- assertThat(e.getMessage(), is("Internal Server Error"));
+ } catch (IllegalArgumentException e) {
+ assertThat(e.getMessage(), is("reviewers cannot be null"));
}
}
@@ -287,42 +293,114 @@ public class GerritReviewRemoteFactoryTest extends GerritRemoteTest {
public void testAddEmptyReviewers() throws Exception {
ReviewerResult reviewerResult = reviewHarness.client.addReviewers(reviewHarness.shortId,
Collections.<String> emptyList(), new NullProgressMonitor());
+ reviewHarness.consumer.retrieve(false);
+ reviewHarness.listener.waitForResponse(2, 2);
+
+ assertThat(reviewerResult, notNullValue());
assertThat(reviewerResult.getErrors().isEmpty(), is(true));
+ assertThat(reviewerResult.getChange().getApprovals().isEmpty(), is(true));
+ assertThat(getReview().getReviewerApprovals().isEmpty(), is(true));
}
@Test
public void testAddInvalidReviewers() throws Exception {
List<String> reviewers = Arrays.asList(new String[] { "foo" });
+
ReviewerResult reviewerResult = reviewHarness.client.addReviewers(reviewHarness.shortId, reviewers,
new NullProgressMonitor());
+ reviewHarness.consumer.retrieve(false);
+ reviewHarness.listener.waitForResponse(2, 2);
+
+ assertThat(reviewerResult, notNullValue());
assertThat(reviewerResult.getErrors().size(), is(1));
assertThat(reviewerResult.getErrors().get(0).getName(), is("foo"));
+ assertThat(reviewerResult.getErrors().get(0).getType(), nullValue());
+ assertThat(reviewerResult.getChange().getApprovals().isEmpty(), is(true));
+ assertThat(getReview().getReviewerApprovals().isEmpty(), is(true));
}
@Test
public void testAddSomeInvalidReviewers() throws Exception {
List<String> reviewers = Arrays.asList(new String[] { "tests", "foo" });
+
ReviewerResult reviewerResult = reviewHarness.client.addReviewers(reviewHarness.shortId, reviewers,
new NullProgressMonitor());
- assertThat(reviewerResult.getErrors().isEmpty(), is(false));
- assertThat(reviewerResult.getErrors().size(), is(1));
- assertThat(reviewerResult.getErrors().get(0).getName(), is("foo"));
+ reviewHarness.consumer.retrieve(false);
+ reviewHarness.listener.waitForResponse(2, 2);
+
+ assertReviewerResult(reviewerResult, "foo");
}
@Test
public void testAddReviewers() throws Exception {
+ assertThat(getReview().getReviewerApprovals().isEmpty(), is(true));
List<String> reviewers = Arrays.asList(new String[] { "tests" });
+
ReviewerResult reviewerResult = reviewHarness.client.addReviewers(reviewHarness.shortId, reviewers,
new NullProgressMonitor());
- assertThat(reviewerResult.getErrors().isEmpty(), is(true));
+ reviewHarness.consumer.retrieve(false);
+ reviewHarness.listener.waitForResponse(2, 2);
+
+ assertReviewerResult(reviewerResult, null);
}
@Test
public void testAddReviewersByEmail() throws Exception {
List<String> reviewers = Arrays.asList(new String[] { "tests@mylyn.eclipse.org" });
+
ReviewerResult reviewerResult = reviewHarness.client.addReviewers(reviewHarness.shortId, reviewers,
new NullProgressMonitor());
- assertThat(reviewerResult.getErrors().isEmpty(), is(true));
+ reviewHarness.consumer.retrieve(false);
+ reviewHarness.listener.waitForResponse(2, 2);
+
+ assertReviewerResult(reviewerResult, null);
+ }
+
+ private void assertReviewerResult(ReviewerResult reviewerResult, String nameInErrors) {
+ assertThat(reviewerResult, notNullValue());
+
+ assertThat(reviewerResult.getErrors().isEmpty(), is(nameInErrors == null));
+ if (nameInErrors != null) {
+ assertThat(reviewerResult.getErrors().size(), is(1));
+ assertThat(reviewerResult.getErrors().get(0).getName(), is(nameInErrors));
+ assertThat(reviewerResult.getErrors().get(0).getType(), nullValue());
+ }
+
+ List<ApprovalDetail> approvals = reviewerResult.getChange().getApprovals();
+ assertThat(approvals.isEmpty(), is(false));
+ assertThat(approvals.size(), is(1));
+ assertThat(approvals.get(0).getAccount().get(), is(1000001));
+
+ Map<ApprovalCategory.Id, PatchSetApproval> approvalMap = approvals.get(0).getApprovalMap();
+ assertThat(approvalMap, notNullValue());
+ assertThat(approvalMap.isEmpty(), is(false));
+ assertThat(approvalMap.size(), is(1));
+
+ PatchSetApproval crvw = approvalMap.get(ApprovalUtil.CRVW.getCategory().getId());
+ assertThat(crvw, notNullValue());
+ assertThat(crvw.getAccountId().get(), is(1000001));
+ assertThat(crvw.getValue(), is((short) 0));
+ assertThat(crvw.getGranted(), notNullValue());
+ assertThat(crvw.getPatchSetId(), notNullValue());
+ assertThat(crvw.getPatchSetId().get(), is(1));
+ assertThat(crvw.getPatchSetId().getParentKey().get(), is(Integer.parseInt(getReview().getId())));
+
+ // TODO: empty map vs map with null key
+ if (GerritVersion.isVersion26OrLater(getCurrentVersion())) {
+ assertThat(getReview().getReviewerApprovals().isEmpty(), is(true));
+ } else {
+ assertThat(getReview().getReviewerApprovals().isEmpty(), is(false));
+ assertThat(getReview().getReviewerApprovals().size(), is(1));
+ assertThat(getReview().getReviewerApprovals().get(0), nullValue());
+ }
+ }
+
+ private static Version getCurrentVersion() {
+ String version = GerritFixture.current().getSimpleInfo();
+ if (version.indexOf('/') != -1) {
+ version = version.substring(0, version.indexOf('/'));
+ }
+ return GerritVersion.parseGerritVersion(version);
}
@Test

Back to the top