From af4e7f0a6561414f7c23a296e045fe962291f3a4 Mon Sep 17 00:00:00 2001 From: Bernard Labno Date: Mon, 12 May 2014 14:16:59 +0200 Subject: [PATCH] Rename YoutractAPITest to YoutrackAPIIT --- src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPIIT.java | 243 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPITest.java | 243 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2 files changed, 243 insertions(+), 243 deletions(-) create mode 100644 src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPIIT.java delete mode 100644 src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPITest.java diff --git a/src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPIIT.java b/src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPIIT.java new file mode 100644 index 0000000..88eebb3 --- /dev/null +++ b/src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPIIT.java @@ -0,0 +1,243 @@ +package pl.itcrowd.youtrack.api.rest; + +import junit.framework.Assert; +import org.apache.commons.io.input.ReaderInputStream; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.HttpStatus; +import org.apache.http.StatusLine; +import org.apache.http.auth.AuthenticationException; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpUriRequest; +import org.junit.Test; +import pl.itcrowd.youtrack.api.Command; +import pl.itcrowd.youtrack.api.Filter; +import pl.itcrowd.youtrack.api.IssueWrapper; +import pl.itcrowd.youtrack.api.YoutrackAPI; +import pl.itcrowd.youtrack.api.defaults.Fields; +import pl.itcrowd.youtrack.api.defaults.StateValues; +import pl.itcrowd.youtrack.api.exceptions.NoResultFoundException; +import pl.itcrowd.youtrack.api.exceptions.YoutrackErrorException; + +import javax.xml.bind.JAXBException; +import java.io.IOException; +import java.io.StringReader; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +/** + * This test requires Youtrack instance with "Test(TST)" project to be running and expects following JVM params: + * youtrackLocation, youtrackUsername and youtrackPassword. + * There should be no assigner "wacek" for project TST. + * There should be following assigners for TST project: bernard,root. + * Ticket TST-2 should be deleted. + */ +public class YoutrackAPIIT { + + @Test + public void command() throws IOException, JAXBException + { + final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); + final String issueId = "TST-1"; + IssueWrapper issue; + try { + api.command(issueId, Command.assigneeCommand("wacek").toString()); + Assert.fail("Command should fail"); + } catch (YoutrackErrorException e) { +// There is no such assignee + Assert.assertEquals(HttpStatus.SC_BAD_REQUEST, e.getStatusCode()); + } + api.command(issueId, Command.assigneeCommand("bernard").assignee("root")); + issue = api.getIssue(issueId); + Assert.assertNotNull(issue); + Assert.assertEquals("root", issue.getFieldValue(Fields.assignee)); + + api.command(issueId, Command.assigneeCommand("bernard")); + issue = api.getIssue(issueId); + Assert.assertNotNull(issue); + Assert.assertEquals("bernard", issue.getFieldValue(Fields.assignee)); + + api.command(issueId, Command.stateCommand(StateValues.InProgress)); + issue = api.getIssue(issueId); + Assert.assertNotNull(issue); + Assert.assertEquals("In Progress", issue.getFieldValue(Fields.state)); + + api.command(issueId, Command.stateCommand(StateValues.InProgress).assignee("root")); + issue = api.getIssue(issueId); + Assert.assertNotNull(issue); + Assert.assertEquals("In Progress", issue.getFieldValue(Fields.state)); + Assert.assertEquals("root", issue.getFieldValue(Fields.assignee)); + + api.command(issueId, Command.assigneeCommand("bernard").state(StateValues.New)); + issue = api.getIssue(issueId); + Assert.assertNotNull(issue); + Assert.assertEquals("New", issue.getFieldValue(Fields.state)); + Assert.assertEquals("bernard", issue.getFieldValue(Fields.assignee)); + } + + @Test + public void commandAllStates() throws IOException, JAXBException + { + final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); + final String issueId = "TST-1"; + IssueWrapper issue; + final StateValues[] stateValueses = StateValues.values(); + for (StateValues state : stateValueses) { + if (state.getCommandValue() != null && !StateValues.Duplicate.equals(state)) { + api.command(issueId, Command.stateCommand(state)); + issue = api.getIssue(issueId); + Assert.assertNotNull(issue); + Assert.assertEquals(state.getCommandValue(), issue.getFieldValue(Fields.state)); + } + } + } + + @Test + public void createIssue() throws IOException, AuthenticationException, JAXBException + { + YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); + final String issueId = api.createIssue("TST", "Test summary", "Test description"); + Assert.assertNotNull(issueId); + Assert.assertTrue(issueId.startsWith("TST")); + } + + @Test + public void getAssignees() throws IOException, AuthenticationException, JAXBException + { + YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); + final AssigneeList assigneeList = api.getAssignees("TST"); + Assert.assertNotNull(assigneeList); + Assert.assertEquals(2, assigneeList.getAssignees().getAssignees().size()); + } + + @Test + public void getBundle() throws Exception + { +// Given + final HttpResponse httpResponse = mock(HttpResponse.class); + final HttpEntity httpEntity = mock(HttpEntity.class); + final String response = "Show-stopperCriticalMajorNormalMinor"; + when(httpEntity.getContent()).thenReturn(new ReaderInputStream(new StringReader(response))); + when(httpEntity.getContentLength()).thenReturn((long) response.getBytes().length); + when(httpResponse.getEntity()).thenReturn(httpEntity); + final StatusLine statusLine = mock(StatusLine.class); + when(statusLine.getStatusCode()).thenReturn(200); + when(httpResponse.getStatusLine()).thenReturn(statusLine); + final HttpClient httpClient = mock(HttpClient.class); + when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(httpResponse); + final YoutrackAPI youtrackAPI = new YoutrackAPI("zonk", httpClient); + +// When + final Enumeration priorities = youtrackAPI.getBundle("Priorities"); + +// Then + assertNotNull(priorities); + assertEquals("Priorities", priorities.getName()); + assertNotNull(priorities.getValues()); + assertEquals(5, priorities.getValues().size()); + assertEquals("Show-stopper", priorities.getValues().get(0).getValue()); + assertEquals(new Long(20), priorities.getValues().get(0).getColorIndex()); + assertEquals("Critical", priorities.getValues().get(1).getValue()); + assertEquals(new Long(19), priorities.getValues().get(1).getColorIndex()); + assertEquals("Major", priorities.getValues().get(2).getValue()); + assertEquals(new Long(18), priorities.getValues().get(2).getColorIndex()); + assertEquals("Normal", priorities.getValues().get(3).getValue()); + assertEquals(new Long(17), priorities.getValues().get(3).getColorIndex()); + assertEquals("Minor", priorities.getValues().get(4).getValue()); + assertEquals(new Long(16), priorities.getValues().get(4).getColorIndex()); + } + + @Test + public void getIndividualAssignees() throws IOException, JAXBException + { + final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); + final List assignees = api.getIndividualAssignees("TST"); + Assert.assertNotNull(assignees); + Assert.assertEquals(2, assignees.size()); + for (User user : assignees) { + Assert.assertTrue("bernard".equals(user.getLogin()) || "root".equals(user.getLogin())); + } + } + + @Test + public void getIssue() throws IOException, AuthenticationException, JAXBException + { + YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); + final IssueWrapper issue = api.getIssue("TST-1"); + Assert.assertNotNull(issue); + Assert.assertEquals("1", issue.getFieldValue(Fields.numberInProject)); + + try { + api.getIssue("TST-2"); + Assert.fail("YoutrackErrorException expected"); + } catch (NoResultFoundException e) { + Assert.assertEquals("Issue not found.", e.getMessage()); + } + try { + api.getIssue("TSTX-1"); + Assert.fail("YoutrackErrorException expected"); + } catch (NoResultFoundException e) { + Assert.assertEquals("Issue not found.", e.getMessage()); + } + } + + @Test(expected = YoutrackErrorException.class) + public void loginFailure() throws IOException, JAXBException + { + final String username = "someFakeLogin"; + final String password = "someFakePassword"; + try { + new YoutrackAPI(getServiceLocation(), username, password); + } catch (YoutrackErrorException e) { + Assert.assertEquals("Incorrect login or password.", e.getMessage()); + Assert.assertEquals(HttpStatus.SC_FORBIDDEN, e.getStatusCode()); + throw e; + } + } + + @Test + public void loginSuccess() throws IOException, AuthenticationException, JAXBException + { + final String username = getUsername(); + final String password = getPassword(); + new YoutrackAPI(getServiceLocation(), username, password); + YoutrackAPI api = new YoutrackAPI(getServiceLocation()); + api.login(username, password); + } + + @Test + public void searchIssuesByProject() throws IOException, AuthenticationException, JAXBException + { + YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); + List issues = api.searchIssuesByProject("TST", null); + Assert.assertTrue(!issues.isEmpty()); + for (IssueWrapper issue : issues) { + String summary = issue.getFieldValue(Fields.summary); + Assert.assertNotNull(summary); + Assert.assertTrue(!"".equals(summary.trim())); + } + api.createIssue("TST", "searchIssuesByProject " + System.currentTimeMillis(), "searchIssuesByProject"); + issues = api.searchIssuesByProject("TST", Filter.stateFilter(StateValues.Unresolved)); + Assert.assertTrue(!issues.isEmpty()); + } + + private String getPassword() + { + return System.getProperty("youtrackPassword"); + } + + private String getServiceLocation() + { + return System.getProperty("youtrackLocation"); + } + + private String getUsername() + { + return System.getProperty("youtrackUsername"); + } +} diff --git a/src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPITest.java b/src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPITest.java deleted file mode 100644 index d6edd58..0000000 --- a/src/test/java/pl/itcrowd/youtrack/api/rest/YoutrackAPITest.java +++ /dev/null @@ -1,243 +0,0 @@ -package pl.itcrowd.youtrack.api.rest; - -import junit.framework.Assert; -import org.apache.commons.io.input.ReaderInputStream; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.HttpStatus; -import org.apache.http.StatusLine; -import org.apache.http.auth.AuthenticationException; -import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpUriRequest; -import org.junit.Test; -import pl.itcrowd.youtrack.api.Command; -import pl.itcrowd.youtrack.api.Filter; -import pl.itcrowd.youtrack.api.IssueWrapper; -import pl.itcrowd.youtrack.api.YoutrackAPI; -import pl.itcrowd.youtrack.api.defaults.Fields; -import pl.itcrowd.youtrack.api.defaults.StateValues; -import pl.itcrowd.youtrack.api.exceptions.NoResultFoundException; -import pl.itcrowd.youtrack.api.exceptions.YoutrackErrorException; - -import javax.xml.bind.JAXBException; -import java.io.IOException; -import java.io.StringReader; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -/** - * This test requires Youtrack instance with "Test(TST)" project to be running and expects following JVM params: - * youtrackLocation, youtrackUsername and youtrackPassword. - * There should be no assigner "wacek" for project TST. - * There should be following assigners for TST project: bernard,root. - * Ticket TST-2 should be deleted. - */ -public class YoutrackAPITest { - - @Test - public void command() throws IOException, JAXBException - { - final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); - final String issueId = "TST-1"; - IssueWrapper issue; - try { - api.command(issueId, Command.assigneeCommand("wacek").toString()); - Assert.fail("Command should fail"); - } catch (YoutrackErrorException e) { -// There is no such assignee - Assert.assertEquals(HttpStatus.SC_BAD_REQUEST, e.getStatusCode()); - } - api.command(issueId, Command.assigneeCommand("bernard").assignee("root")); - issue = api.getIssue(issueId); - Assert.assertNotNull(issue); - Assert.assertEquals("root", issue.getFieldValue(Fields.assignee)); - - api.command(issueId, Command.assigneeCommand("bernard")); - issue = api.getIssue(issueId); - Assert.assertNotNull(issue); - Assert.assertEquals("bernard", issue.getFieldValue(Fields.assignee)); - - api.command(issueId, Command.stateCommand(StateValues.InProgress)); - issue = api.getIssue(issueId); - Assert.assertNotNull(issue); - Assert.assertEquals("In Progress", issue.getFieldValue(Fields.state)); - - api.command(issueId, Command.stateCommand(StateValues.InProgress).assignee("root")); - issue = api.getIssue(issueId); - Assert.assertNotNull(issue); - Assert.assertEquals("In Progress", issue.getFieldValue(Fields.state)); - Assert.assertEquals("root", issue.getFieldValue(Fields.assignee)); - - api.command(issueId, Command.assigneeCommand("bernard").state(StateValues.New)); - issue = api.getIssue(issueId); - Assert.assertNotNull(issue); - Assert.assertEquals("New", issue.getFieldValue(Fields.state)); - Assert.assertEquals("bernard", issue.getFieldValue(Fields.assignee)); - } - - @Test - public void commandAllStates() throws IOException, JAXBException - { - final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); - final String issueId = "TST-1"; - IssueWrapper issue; - final StateValues[] stateValueses = StateValues.values(); - for (StateValues state : stateValueses) { - if (state.getCommandValue() != null && !StateValues.Duplicate.equals(state)) { - api.command(issueId, Command.stateCommand(state)); - issue = api.getIssue(issueId); - Assert.assertNotNull(issue); - Assert.assertEquals(state.getCommandValue(), issue.getFieldValue(Fields.state)); - } - } - } - - @Test - public void createIssue() throws IOException, AuthenticationException, JAXBException - { - YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); - final String issueId = api.createIssue("TST", "Test summary", "Test description"); - Assert.assertNotNull(issueId); - Assert.assertTrue(issueId.startsWith("TST")); - } - - @Test - public void getAssignees() throws IOException, AuthenticationException, JAXBException - { - YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); - final AssigneeList assigneeList = api.getAssignees("TST"); - Assert.assertNotNull(assigneeList); - Assert.assertEquals(2, assigneeList.getAssignees().getAssignees().size()); - } - - @Test - public void getBundle() throws Exception - { -// Given - final HttpResponse httpResponse = mock(HttpResponse.class); - final HttpEntity httpEntity = mock(HttpEntity.class); - final String response = "Show-stopperCriticalMajorNormalMinor"; - when(httpEntity.getContent()).thenReturn(new ReaderInputStream(new StringReader(response))); - when(httpEntity.getContentLength()).thenReturn((long) response.getBytes().length); - when(httpResponse.getEntity()).thenReturn(httpEntity); - final StatusLine statusLine = mock(StatusLine.class); - when(statusLine.getStatusCode()).thenReturn(200); - when(httpResponse.getStatusLine()).thenReturn(statusLine); - final HttpClient httpClient = mock(HttpClient.class); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(httpResponse); - final YoutrackAPI youtrackAPI = new YoutrackAPI("zonk", httpClient); - -// When - final Enumeration priorities = youtrackAPI.getBundle("Priorities"); - -// Then - assertNotNull(priorities); - assertEquals("Priorities", priorities.getName()); - assertNotNull(priorities.getValues()); - assertEquals(5, priorities.getValues().size()); - assertEquals("Show-stopper", priorities.getValues().get(0).getValue()); - assertEquals(new Long(20), priorities.getValues().get(0).getColorIndex()); - assertEquals("Critical", priorities.getValues().get(1).getValue()); - assertEquals(new Long(19), priorities.getValues().get(1).getColorIndex()); - assertEquals("Major", priorities.getValues().get(2).getValue()); - assertEquals(new Long(18), priorities.getValues().get(2).getColorIndex()); - assertEquals("Normal", priorities.getValues().get(3).getValue()); - assertEquals(new Long(17), priorities.getValues().get(3).getColorIndex()); - assertEquals("Minor", priorities.getValues().get(4).getValue()); - assertEquals(new Long(16), priorities.getValues().get(4).getColorIndex()); - } - - @Test - public void getIndividualAssignees() throws IOException, JAXBException - { - final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); - final List assignees = api.getIndividualAssignees("TST"); - Assert.assertNotNull(assignees); - Assert.assertEquals(2, assignees.size()); - for (User user : assignees) { - Assert.assertTrue("bernard".equals(user.getLogin()) || "root".equals(user.getLogin())); - } - } - - @Test - public void getIssue() throws IOException, AuthenticationException, JAXBException - { - YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); - final IssueWrapper issue = api.getIssue("TST-1"); - Assert.assertNotNull(issue); - Assert.assertEquals("1", issue.getFieldValue(Fields.numberInProject)); - - try { - api.getIssue("TST-2"); - Assert.fail("YoutrackErrorException expected"); - } catch (NoResultFoundException e) { - Assert.assertEquals("Issue not found.", e.getMessage()); - } - try { - api.getIssue("TSTX-1"); - Assert.fail("YoutrackErrorException expected"); - } catch (NoResultFoundException e) { - Assert.assertEquals("Issue not found.", e.getMessage()); - } - } - - @Test(expected = YoutrackErrorException.class) - public void loginFailure() throws IOException, JAXBException - { - final String username = "someFakeLogin"; - final String password = "someFakePassword"; - try { - new YoutrackAPI(getServiceLocation(), username, password); - } catch (YoutrackErrorException e) { - Assert.assertEquals("Incorrect login or password.", e.getMessage()); - Assert.assertEquals(HttpStatus.SC_FORBIDDEN, e.getStatusCode()); - throw e; - } - } - - @Test - public void loginSuccess() throws IOException, AuthenticationException, JAXBException - { - final String username = getUsername(); - final String password = getPassword(); - new YoutrackAPI(getServiceLocation(), username, password); - YoutrackAPI api = new YoutrackAPI(getServiceLocation()); - api.login(username, password); - } - - @Test - public void searchIssuesByProject() throws IOException, AuthenticationException, JAXBException - { - YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); - List issues = api.searchIssuesByProject("TST", null); - Assert.assertTrue(!issues.isEmpty()); - for (IssueWrapper issue : issues) { - String summary = issue.getFieldValue(Fields.summary); - Assert.assertNotNull(summary); - Assert.assertTrue(!"".equals(summary.trim())); - } - api.createIssue("TST", "searchIssuesByProject " + System.currentTimeMillis(), "searchIssuesByProject"); - issues = api.searchIssuesByProject("TST", Filter.stateFilter(StateValues.Unresolved)); - Assert.assertTrue(!issues.isEmpty()); - } - - private String getPassword() - { - return System.getProperty("youtrackPassword"); - } - - private String getServiceLocation() - { - return System.getProperty("youtrackLocation"); - } - - private String getUsername() - { - return System.getProperty("youtrackUsername"); - } -} -- libgit2 0.24.0