Eclipseplugins
ConfigurePdsProjectTest.java
1 package com.proalpha.pds.projconf;
2 
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertTrue;
5 import static org.junit.Assert.fail;
6 
7 import java.io.IOException;
8 import java.util.Arrays;
9 import java.util.HashSet;
10 import java.util.List;
11 import java.util.Set;
12 
13 import org.eclipse.core.resources.IProject;
14 import org.eclipse.core.resources.ResourcesPlugin;
15 import org.eclipse.core.runtime.CoreException;
16 import org.eclipse.core.runtime.NullProgressMonitor;
17 import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
18 import org.eclipse.mylyn.commons.net.AuthenticationType;
19 import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
20 import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
21 import org.eclipse.mylyn.tasks.core.TaskRepository;
22 import org.eclipse.mylyn.tasks.ui.TasksUi;
23 import org.junit.After;
24 import org.junit.Before;
25 import org.junit.Test;
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28 
29 import com.atlassian.connector.eclipse.internal.jira.core.JiraCorePlugin;
30 import com.proalpha.pds.projconf.configure.ConfigurePdsProject;
31 import com.proalpha.pds.projconf.importwizards.ReadDemasFile;
32 
34 
35  private static final Logger logger = LoggerFactory.getLogger(ConfigurePdsProjectTest.class);
36 
37  private static final String RES_DIR = System.getProperty("user.dir") + "\\test\\resources";
38  private ConfigurePdsProject testProject;
39  private ReadDemasFile propertiesFile;
40 
41  @Before
42  public void setUp() {
43 
44  propertiesFile = new ReadDemasFile(RES_DIR + "\\PDSconfig.properties");
45  testProject = new ConfigurePdsProject(propertiesFile);
46  }
47 
48  @After
49  public void tearDown() {
50  testProject = null;
51  }
52 
53  @Test
54  public void test() {
55  try {
56  testProject.installPaProject(new NullProgressMonitor());
57  } catch (Exception e) {
58  logger.error(e.getMessage(), e);
59  fail(e.toString());
60  }
61 
62  List<IProject> projects = Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects());
63 
64  for (IProject p : projects) {
65  System.out.println(p.getName());
66  if (p.getName().equals("proalpha-de-72b00-dev")) {
67  assertEquals("proalpha-de-72b00-dev", p.getName());
68  return;
69  }
70  }
71  }
72 
73  @Test
74  public void checkRepositoryUrlIsSet() throws CoreException, IOException {
75  testProject.configureMylyn("https://jira.proalpha.com", "proAlpha", propertiesFile.getJiraProject(),
76  "Mir zugewiesene Vorgänge");
77 
78  @SuppressWarnings("restriction")
79  Set<TaskRepository> repositories = TasksUi.getRepositoryManager()
80  .getRepositories(JiraCorePlugin.CONNECTOR_KIND);
81 
82  Set<String> repositoryUrlSet = new HashSet<String>();
83 
84  for (TaskRepository taskRepository : repositories) {
85  repositoryUrlSet.add(taskRepository.getRepositoryUrl());
86  }
87 
88  String expected = "https://jira.proalpha.com";
89  assertTrue(repositoryUrlSet.contains(expected));
90  }
91 
92  @Test
93  public void checkRepositoryLabelIsSet() throws CoreException, IOException {
94  testProject.configureMylyn(propertiesFile.getJiraUrl(), "proAlpha", "proALPHA JIRA",
95  "Mir zugewiesene Vorgänge");
96 
97  @SuppressWarnings("restriction")
98  Set<TaskRepository> repositories = TasksUi.getRepositoryManager()
99  .getRepositories(JiraCorePlugin.CONNECTOR_KIND);
100 
101  Set<String> repositoryLabelSet = new HashSet<String>();
102 
103  for (TaskRepository taskRepository : repositories) {
104  repositoryLabelSet.add(taskRepository.getRepositoryLabel());
105  }
106 
107  String expected = "proALPHA JIRA";
108  assertTrue(repositoryLabelSet.contains(expected));
109  }
110 
111  @Test
112  public void checkRepositoryCategoryIsSet() {
113  testProject.configureMylyn(propertiesFile.getJiraUrl(), "proAlpha", propertiesFile.getJiraProject(),
114  "Mir zugewiesene Vorgänge");
115 
116  @SuppressWarnings("restriction")
117  Set<TaskRepository> repositories = TasksUi.getRepositoryManager()
118  .getRepositories(JiraCorePlugin.CONNECTOR_KIND);
119 
120  Set<String> repositoryCategorySet = new HashSet<String>();
121 
122  for (TaskRepository taskRepository : repositories) {
123  repositoryCategorySet.add(taskRepository.getCategory());
124  }
125 
126  String expected = "proAlpha";
127  assertTrue(repositoryCategorySet.contains(expected));
128  }
129 
130  @Test
131  public void checkRepositoryCredentialsAreSet() {
132  testProject.configureMylyn(propertiesFile.getJiraUrl(), "proAlpha", propertiesFile.getJiraProject(),
133  "Mir zugewiesene Vorgänge");
134 
135  @SuppressWarnings("restriction")
136  Set<TaskRepository> repositories = TasksUi.getRepositoryManager()
137  .getRepositories(JiraCorePlugin.CONNECTOR_KIND);
138 
139  Set<AuthenticationCredentials> credentialsSet = new HashSet<AuthenticationCredentials>();
140 
141  for (TaskRepository taskRepository : repositories) {
142  credentialsSet.add(taskRepository.getCredentials(AuthenticationType.REPOSITORY));
143  }
144 
145  String expectedUsername = "";
146  String expectedPassword = "";
147 
148  if (credentialsSet.size() != 1) {
149  fail("There must be only one authentication credentials set!");
150  }
151 
152  for (AuthenticationCredentials authenticationCredentials : credentialsSet) {
153  assertEquals(expectedUsername, authenticationCredentials.getUserName());
154  assertEquals(expectedPassword, authenticationCredentials.getPassword());
155  }
156 
157  }
158 
159  @SuppressWarnings("restriction")
160  @Test
161  public void checkRepositoryIsAdded() {
162  String repositoryUrl = "https://jira.proalpha.com";
163  String category = "proAlpha";
164  String repositorySummary = "Mir zugewiesene Vorgänge";
165  testProject.configureMylyn(repositoryUrl, category, propertiesFile.getJiraProject(),
166  repositorySummary);
167 
168  TaskRepository expected = new TaskRepository(JiraCorePlugin.CONNECTOR_KIND, repositoryUrl);
169  expected.setCategory(category);
170  expected.setRepositoryLabel(propertiesFile.getJiraProject());
171  expected.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("", ""), true);
172 
173  TasksUi.getRepositoryManager().addRepository(expected);
174 
175  Set<TaskRepository> repositories = TasksUi.getRepositoryManager()
176  .getRepositories(JiraCorePlugin.CONNECTOR_KIND);
177 
178  for (TaskRepository actual : repositories) {
179  assertEquals(expected, actual);
180  }
181  }
182 
183  @Test
184  public void checkRepositoryIsAddedOnlyOnce() {
185  String category = "proAlpha";
186  String repositorySummary = "Mir zugewiesene Vorgänge";
187  testProject.configureMylyn(propertiesFile.getJiraUrl(), category, propertiesFile.getJiraProject(),
188  repositorySummary);
189 
190  @SuppressWarnings("restriction")
191  TaskRepository expected = new TaskRepository(JiraCorePlugin.CONNECTOR_KIND, propertiesFile.getJiraUrl());
192  expected.setCategory(category);
193  expected.setRepositoryLabel(propertiesFile.getJiraProject());
194  expected.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("", ""), true);
195 
196  TasksUi.getRepositoryManager().addRepository(expected);
197  TasksUi.getRepositoryManager().addRepository(expected);
198 
199  List<TaskRepository> repositories = TasksUi.getRepositoryManager().getAllRepositories();
200 
201  int repositoryCounter = 0;
202 
203  for (TaskRepository actual : repositories) {
204  if (actual.getUrl() == propertiesFile.getJiraUrl()) {
205  repositoryCounter++;
206  }
207  }
208 
209  int expectedRepositoryCounter = 1;
210 
211  assertEquals(expectedRepositoryCounter, repositoryCounter);
212  }
213 
214  @SuppressWarnings("restriction")
215  @Test
216  public void checkRepositoryQueryAddedMoreThenOnceThrowsException() {
217  String category = "proAlpha";
218  String repositorySummary = "Mir zugewiesene Vorgänge";
219  testProject.configureMylyn(propertiesFile.getJiraUrl(), category, propertiesFile.getJiraProject(),
220  repositorySummary);
221 
222  TaskRepository repository = new TaskRepository(JiraCorePlugin.CONNECTOR_KIND, propertiesFile.getJiraUrl());
223  repository.setCategory(category);
224  repository.setRepositoryLabel(propertiesFile.getJiraProject());
225  repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("", ""), true);
226  TasksUi.getRepositoryManager().addRepository(repository);
227 
228  RepositoryQuery repQuery = (RepositoryQuery) TasksUi.getRepositoryModel().createRepositoryQuery(repository);
229  repQuery.setSummary(repositorySummary);
230  TasksUiPlugin.getTaskList().addQuery(repQuery);
231 
232  try {
233  TasksUiPlugin.getTaskList().addQuery(repQuery);
234  } catch (Exception actual) {
235  assertTrue(actual instanceof IllegalArgumentException);
236  }
237  }
238 
239  @SuppressWarnings("restriction")
240  @Test
241  public void checkRepositoryQuerySummaryIsSet() {
242  String category = "proAlpha";
243  String expected = "Mir zugewiesene Vorgänge";
244  testProject.configureMylyn(propertiesFile.getJiraUrl(), category, propertiesFile.getJiraProject(),
245  expected);
246 
247  TaskRepository repository = new TaskRepository(JiraCorePlugin.CONNECTOR_KIND, propertiesFile.getJiraUrl());
248  repository.setCategory(category);
249  repository.setRepositoryLabel(propertiesFile.getJiraProject());
250  repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("", ""), true);
251  TasksUi.getRepositoryManager().addRepository(repository);
252 
253  RepositoryQuery repQuery = (RepositoryQuery) TasksUi.getRepositoryModel().createRepositoryQuery(repository);
254  repQuery.setSummary(expected);
255  TasksUiPlugin.getTaskList().addQuery(repQuery);
256 
257  Set<RepositoryQuery> repQueries = TasksUiPlugin.getTaskList().getRepositoryQueries(propertiesFile.getJiraUrl());
258 
259  for (RepositoryQuery repositoryQuery : repQueries) {
260  assertEquals(expected, repositoryQuery.getSummary());
261  }
262  }
263 
264 }