diff options
author | Sam Davis | 2015-03-11 22:00:47 +0000 |
---|---|---|
committer | Sam Davis | 2015-03-12 23:27:35 +0000 |
commit | 871ffa8f7db07ac0fcd4d49e621a219b3bc03177 (patch) | |
tree | e73166fdea7979c7e9f99e654b91bc0a2fbbd6e2 /org.eclipse.mylyn.gerrit.core.tests | |
parent | 842ca35b0b3d9b09d8d3f4f7e712b2eab46c7018 (diff) | |
download | org.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.java | 92 |
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")); + } + } |