// @Test public void testGetIssueByJql() { RemoteIssue[] issueByJql = lxitJiraService.getIssueByJql("project = DL1003 AND status = Open"); for (RemoteIssue remoteIssue : issueByJql) { LxitJiraService.fixIssue(remoteIssue.getKey()); System.out.println( "LxitJiraIssueServiceTest.testGetIssueByJql() key:" + remoteIssue.getKey()); } }
public static void main(String[] args) { LxitJiraService jirairaService = new LxitJiraService(); RemoteIssue[] issueByJql = jirairaService.getIssueByJql("project = DLSIX AND status = Open"); for (RemoteIssue remoteIssue : issueByJql) { LxitJiraService.fixIssue(remoteIssue.getKey()); System.out.println( "LxitJiraIssueServiceTest.testGetIssueByJql() key:" + remoteIssue.getKey()); } }
@Test public void shouldCollectIssuesByPriority() throws Exception { Filter filter = new Filter(null, 1l, null, null, null, null, null, null, false); JiraSoapService jiraSoapService = mock(JiraSoapService.class); JiraSoapSession soapSession = mock(JiraSoapSession.class); when(soapSession.getJiraSoapService()).thenReturn(jiraSoapService); JiraSoapServiceWrapper wrapper = new JiraSoapServiceWrapper(jiraSoapService, null, settings); when(soapSession.getJiraService(Matchers.<RuleFinder>any(), Matchers.<Settings>any())) .thenReturn(wrapper); RemoteIssue issue1 = new RemoteIssue(); issue1.setPriority("1"); issue1.setId("1"); RemoteIssue issue2 = new RemoteIssue(); issue2.setPriority("1"); issue2.setId("2"); RemoteIssue issue3 = new RemoteIssue(); issue3.setPriority("2"); issue3.setId("3"); when(jiraSoapService.getIssuesFromFilter("token", "1")) .thenReturn(new RemoteIssue[] {issue1, issue2, issue3}); Map<Long, Integer> foundIssues = sensor.collectIssuesByPriority(wrapper, "token", filter); assertThat(foundIssues.size()).isEqualTo(2); assertThat(foundIssues.get(1l)).isEqualTo(2); assertThat(foundIssues.get(2l)).isEqualTo(1); }
private boolean issueIsReleased(final RemoteIssue issue) { final RemoteVersion[] fixVersions = issue.getFixVersions(); for (int i = 0; i < fixVersions.length; i++) { if (isReleasedWithVersionNumber(fixVersions[i])) { return true; } } return false; }
@Test public void shouldInitRemoteIssueWithComponent() throws Exception { // Given that settings.setProperty(JiraConstants.JIRA_ISSUE_COMPONENT_ID, "123"); RemoteIssue expectedIssue = new RemoteIssue(); expectedIssue.setProject("TEST"); expectedIssue.setType("3"); expectedIssue.setPriority("4"); expectedIssue.setSummary("Sonar Issue #ABCD - Avoid cycle between java packages"); expectedIssue.setDescription( "Issue detail:\n{quote}\nThe Cyclomatic Complexity of this method is 14 which is greater than 10 authorized.\n" + "{quote}\n\n\nCheck it on Sonar: http://my.sonar.com/issue/show/ABCD"); expectedIssue.setComponents(new RemoteComponent[] {new RemoteComponent("123", null)}); // Verify RemoteIssue returnedIssue = jiraIssueCreator.initRemoteIssue(sonarIssue, settings, ""); assertThat(returnedIssue).isEqualTo(expectedIssue); }
@Test public void shouldInitRemoteIssueWithoutName() throws Exception { // Given that when(ruleFinder.findByKey(RuleKey.of("squid", "CycleBetweenPackages"))) .thenReturn(org.sonar.api.rules.Rule.create().setName(null)); RemoteIssue expectedIssue = new RemoteIssue(); expectedIssue.setProject("TEST"); expectedIssue.setType("3"); expectedIssue.setPriority("4"); expectedIssue.setSummary("Sonar Issue #ABCD"); expectedIssue.setDescription( "Issue detail:\n{quote}\nThe Cyclomatic Complexity of this method is 14 which is greater than 10 authorized.\n" + "{quote}\n\n\nCheck it on Sonar: http://my.sonar.com/issue/show/ABCD"); // Verify RemoteIssue returnedIssue = jiraIssueCreator.initRemoteIssue(sonarIssue, settings, ""); assertThat(returnedIssue.getSummary()).isEqualTo(expectedIssue.getSummary()); assertThat(returnedIssue.getDescription()).isEqualTo(expectedIssue.getDescription()); assertThat(returnedIssue).isEqualTo(expectedIssue); }
/** {@inheritDoc} */ @Override public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { JIRAClient client = null; // Get the previous JIRA Build Action, if any. Run<?, ?> prevBuild = build.getPreviousBuild(); JIRABuildResultReportAction buildAction = null; if (prevBuild != null) { buildAction = prevBuild.getAction(JIRABuildResultReportAction.class); } try { client = getSite().createClient(); if (build.getResult().isWorseThan(Result.SUCCESS)) { String issueKey = null; if (buildAction != null && StringUtils.isNotBlank(buildAction.raisedIssueKey) && !buildAction.resolved) { // Oke the previous build also failed and has an Issue linked to it. // So relink that issue also to this build issueKey = client.updateIssue(build, buildAction.raisedIssueKey); } else { issueKey = client.createIssue(build, projectKey, issueType, issuePriority, assignToBuildBreaker); } build.addAction(new JIRABuildResultReportAction(build, issueKey, false)); listener.getLogger().println("JBRR: Raised build failure issue: " + issueKey); } else if (autoClose && build.getResult().isBetterOrEqualTo(Result.SUCCESS)) { // Auto close the previously raised issues, if any if (buildAction != null) { RemoteIssue issue = client.getIssue(buildAction); if (issue == null || issue.getKey() == null) { listener .getLogger() .println( "WARN: Failed to automatically close issue: Unable to locate issue " + buildAction.raisedIssueKey + " in JIRA site " + getSite().name); } else if (client.canCloseIssue(issue)) { if (client.closeIssue(issue, build)) { build.addAction(new JIRABuildResultReportAction(build, issue.getKey(), true)); listener .getLogger() .println( "INFO: Closed issue " + issue.getKey() + " using action: " + getSite().getCloseActionName()); } else { listener .getLogger() .println("WARN: Failed to automatically close issue: " + issue.getKey()); } } } } } catch (AxisFault e) { listener.error("JBRR: " + e.getFaultString()); } catch (ServiceException e) { listener.error("JBRR: " + e.getMessage()); } catch (MalformedURLException e) { listener.error("JBRR: Invalid JIRA URL configured"); } finally { if (client != null) { client.logout(); } } return true; }