Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Davis2015-03-11 22:00:47 +0000
committerSam Davis2015-03-12 23:27:35 +0000
commit871ffa8f7db07ac0fcd4d49e621a219b3bc03177 (patch)
treee73166fdea7979c7e9f99e654b91bc0a2fbbd6e2 /org.eclipse.mylyn.gerrit.core.tests
parent842ca35b0b3d9b09d8d3f4f7e712b2eab46c7018 (diff)
downloadorg.eclipse.mylyn.reviews-871ffa8f7db07ac0fcd4d49e621a219b3bc03177.tar.gz
org.eclipse.mylyn.reviews-871ffa8f7db07ac0fcd4d49e621a219b3bc03177.tar.xz
org.eclipse.mylyn.reviews-871ffa8f7db07ac0fcd4d49e621a219b3bc03177.zip
446091: make task list assigned to me filter work for Gerritv2.6.0R_3_15_0e_4_4_m_3_15_x
Change-Id: I7c5431cb46c493c6d189310e91a6f83e91139161 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=446091
Diffstat (limited to 'org.eclipse.mylyn.gerrit.core.tests')
-rw-r--r--org.eclipse.mylyn.gerrit.core.tests/src/org/eclipse/mylyn/internal/gerrit/core/GerritTaskDataHandlerTest.java92
1 files changed, 92 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.gerrit.core.tests/src/org/eclipse/mylyn/internal/gerrit/core/GerritTaskDataHandlerTest.java b/org.eclipse.mylyn.gerrit.core.tests/src/org/eclipse/mylyn/internal/gerrit/core/GerritTaskDataHandlerTest.java
index 13a2d3e17..f341e0a7c 100644
--- a/org.eclipse.mylyn.gerrit.core.tests/src/org/eclipse/mylyn/internal/gerrit/core/GerritTaskDataHandlerTest.java
+++ b/org.eclipse.mylyn.gerrit.core.tests/src/org/eclipse/mylyn/internal/gerrit/core/GerritTaskDataHandlerTest.java
@@ -14,10 +14,31 @@ package org.eclipse.mylyn.internal.gerrit.core;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.sql.Timestamp;
+import java.util.Collections;
+
+import org.eclipse.mylyn.internal.gerrit.core.client.GerritChange;
+import org.eclipse.mylyn.internal.gerrit.core.client.GerritConfiguration;
+import org.eclipse.mylyn.internal.gerrit.core.client.compat.GerritConfigX;
+import org.eclipse.mylyn.internal.gerrit.core.client.data.GerritPerson;
+import org.eclipse.mylyn.internal.gerrit.core.client.data.GerritQueryResult;
import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
import org.eclipse.mylyn.tasks.core.data.TaskData;
import org.junit.Test;
+import org.mockito.Mockito;
+
+import com.google.gerrit.common.data.AccountInfo;
+import com.google.gerrit.reviewdb.Account;
+import com.google.gerrit.reviewdb.Account.Id;
+import com.google.gerrit.reviewdb.Branch.NameKey;
+import com.google.gerrit.reviewdb.Change;
+import com.google.gerrit.reviewdb.Change.Key;
+import com.google.gerrit.reviewdb.Project;
/**
* @author Steffen Pingel
@@ -43,4 +64,75 @@ public class GerritTaskDataHandlerTest {
.getAttribute(GerritTaskSchema.getDefault().UPLOADED.getKey()));
}
+ @Test
+ public void testUpdatePartialTaskData() {
+ GerritConnector connector = mock(GerritConnector.class, Mockito.RETURNS_DEEP_STUBS);
+ GerritConfiguration config = createMockConfig();
+ when(connector.getConfiguration(any(TaskRepository.class))).thenReturn(config);
+ GerritTaskDataHandler handler = new GerritTaskDataHandler(connector);
+ TaskRepository repository = new TaskRepository(GerritConnector.CONNECTOR_KIND, "http://repository"); //$NON-NLS-1$
+ TaskData data = handler.createTaskData(repository, "1", null); //$NON-NLS-1$
+ handler.updatePartialTaskData(repository, data, createMockQueryResult("Joel K. User"));
+ assertAssignee(data, "joel.user@mylyn.org", "Joel K. User");
+
+ handler.updatePartialTaskData(repository, data, createMockQueryResult("Jacob F. User"));
+ assertAssignee(data, "Jacob F. User", "Jacob F. User");
+
+ handler.updatePartialTaskData(repository, data, createMockQueryResult(null));
+ assertAssignee(data, "Anonymous", "Anonymous");
+ }
+
+ @Test
+ public void testUpdateTaskData() {
+ GerritTaskDataHandler handler = new GerritTaskDataHandler(new GerritConnector());
+ TaskRepository repository = new TaskRepository(GerritConnector.CONNECTOR_KIND, "http://repository"); //$NON-NLS-1$
+ TaskData data = handler.createTaskData(repository, "1", null); //$NON-NLS-1$
+ handler.updateTaskData(repository, data, createMockGerritChange(), false, null);
+ assertAssignee(data, "joel.user@mylyn.org", "Joel K. User");
+ }
+
+ private void assertAssignee(TaskData data, String id, String name) {
+ TaskAttribute assigneeAttribute = data.getRoot().getAttribute(TaskAttribute.USER_ASSIGNED);
+ assertEquals(id, assigneeAttribute.getValue());
+ assertEquals(name, data.getAttributeMapper().getValueLabel(assigneeAttribute));
+ }
+
+ private GerritConfiguration createMockConfig() {
+ Account account = new Account(new Id(1));
+ account.setFullName("Joel K. User");
+ account.setPreferredEmail("joel.user@mylyn.org");
+ GerritConfiguration value = new GerritConfiguration(new GerritConfigX(), Collections.<Project> emptyList(),
+ account);
+ return value;
+ }
+
+ private GerritQueryResult createMockQueryResult(String userName) {
+ GerritQueryResult queryResult = mock(GerritQueryResult.class, Mockito.RETURNS_SMART_NULLS);
+ when(queryResult.getReviewLabel()).thenReturn(null);
+ when(queryResult.getUpdated()).thenReturn(new Timestamp(1));
+ if (userName == null) {
+ when(queryResult.getOwner()).thenReturn(null);
+ } else {
+ GerritPerson person = mock(GerritPerson.class);
+ when(person.getName()).thenReturn(userName);
+ when(queryResult.getOwner()).thenReturn(person);
+ }
+ return queryResult;
+ }
+
+ private GerritChange createMockGerritChange() {
+ AccountInfo accountInfo = mock(AccountInfo.class);
+ when(accountInfo.getFullName()).thenReturn("Joel K. User");
+ when(accountInfo.getPreferredEmail()).thenReturn("joel.user@mylyn.org");
+ GerritChange change = mock(GerritChange.class, Mockito.RETURNS_DEEP_STUBS);
+ when(change.getChangeDetail().getAccounts().get(any(Id.class))).thenReturn(accountInfo);
+ when(change.getChangeDetail().getChange()).thenReturn(mockChange());
+ return change;
+ }
+
+ private Change mockChange() {
+ return new Change(new Key("1"), new Change.Id(1), new Id(1), new NameKey(new Project.NameKey("parent"),
+ "branch"));
+ }
+
}

Back to the top