package com.lesstif.jira.services; import java.io.File; import java.io.IOException; import java.util.List; import java.util.Map; import org.apache.commons.configuration.ConfigurationException; import org.junit.BeforeClass; import org.junit.FixMethodOrder; import org.junit.runners.MethodSorters; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.lesstif.jira.JsonPrettyString; import com.lesstif.jira.issue.Attachment; import com.lesstif.jira.issue.Issue; import com.lesstif.jira.issue.IssueFields; import com.lesstif.jira.issue.IssueSearchResult; import com.lesstif.jira.issue.IssueType; import com.lesstif.jira.issue.Priority; import com.lesstif.jira.util.HttpConnectionUtil; import static org.junit.Assert.*; @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class IssueTest { private Logger logger = LoggerFactory.getLogger(getClass()); static String PROJECT_KEY = null; static String ISSUE_KEY = null; static String REPORTER = null; static String ASSIGNEE = null; @BeforeClass public static void beforeClass() { HttpConnectionUtil.disableSslVerification(); PROJECT_KEY = System.getProperty("jira.test.project", "TEST"); ISSUE_KEY = System.getProperty("jira.test.issue", "TEST-108"); ASSIGNEE = System.getProperty("jira.test.assignee", "lesstif"); REPORTER = System.getProperty("jira.test.reporter", "gitlab"); } @Test public void aCreateIssue() throws IOException, ConfigurationException { Issue issue = new Issue(); IssueFields fields = new IssueFields(); fields.setProjectKey(PROJECT_KEY) .setSummary("something's wrong") .setIssueTypeName(IssueType.ISSUE_TYPE_TASK) .setDescription("Full description for issue") .setAssigneeName(ASSIGNEE); // Change Reporter need admin role fields.setReporterName(REPORTER) .setPriorityName(Priority.PRIORITY_CRITICAL) .setLabels(new String[]{"bugfix","blitz_test"}) .setComponentsByStringArray(new String[]{"Component-1", "Component-2"}) .addAttachment("readme.md") .addAttachment("bug-description.pdf") .addAttachment("screen_capture.png"); issue.setFields(fields); logger.info(issue.toPrettyJsonString()); IssueService issueService = new IssueService(); Issue genIssue = issueService.createIssue(issue); ISSUE_KEY = genIssue.getKey(); //Print Generated issue logger.info(genIssue.toPrettyJsonString()); } @Test public void bgetIssue() throws IOException, ConfigurationException { IssueService issueService = new IssueService(); Issue issue = issueService.getIssue(ISSUE_KEY); logger.debug(issue.toPrettyJsonString()); // attachment info List<Attachment> attachs = issue.getFields().getAttachment(); for ( Attachment a : attachs) { logger.debug("Attachment:" + a.toPrettyJsonString()); } IssueFields fields = issue.getFields(); // Project key logger.debug("Project Key:" + fields.getProject().getKey()); //issue type logger.debug("IssueType:" + fields.getIssuetype().toPrettyJsonString()); // issue description logger.debug("Issue Description:" + fields.getDescription()); } @Test public void cUploadAttachments() throws IOException, ConfigurationException { Issue issue = new Issue(); issue.setKey(ISSUE_KEY); issue.addAttachment(new File("attachment.png")); issue.addAttachment("test.pdf"); IssueService issueService = new IssueService(); issueService.postAttachment(issue); } @Test public void dgetAllIssueType() throws IOException, ConfigurationException { IssueService issueService = new IssueService(); List<IssueType> issueTypes = issueService.getAllIssueTypes(); for(IssueType i : issueTypes) { logger.info(i.toPrettyJsonString()); } } @Test public void egetAllPriorities() throws IOException, ConfigurationException { IssueService issueService = new IssueService(); List<Priority> priority = issueService.getAllPriorities(); for(Priority p : priority) { logger.info(p.toPrettyJsonString()); } } @Test public void fGetCustomeFields() throws IOException, ConfigurationException { IssueService issueService = new IssueService(); Issue issue = issueService.getIssue(ISSUE_KEY); Map<String, Object> fields = issue.getFields().getCustomfield(); logger.info("JSON : " + JsonPrettyString.mapToPrettyJsonString(fields)); for( String key : fields.keySet() ){ logger.info("Field Name: " + key + ",value:" + fields.get(key)); } } @Test public void getIssuesFromQuery() throws IOException, ConfigurationException { IssueService issueService = new IssueService(); final String query = "status=open and assignee = currentUser()"; final IssueSearchResult issues = issueService.getIssuesFromQuery(query); assertTrue("Should be at least 1 open issue", !issues.getIssues().isEmpty()); } }