#147 - Add means to create a ticket for each project.

We now have a command to create a ticket per module iteration using the summary as argument.

tracker create tickets <module iteration> -text "summary"
This commit is contained in:
Mark Paluch
2020-06-10 15:33:12 +02:00
parent e7699fd273
commit 2c55e91562
10 changed files with 129 additions and 55 deletions

View File

@@ -33,7 +33,8 @@ class CommitUnitTests {
@Test
void shouldRenderCommitMessage() {
assertThat(new Commit(new Ticket("1234", "Hello", Mockito.mock(TicketStatus.class)), "Summary", Optional.empty()))
assertThat(
new Commit(new Ticket("1234", "Hello", null, Mockito.mock(TicketStatus.class)), "Summary", Optional.empty()))
.hasToString("1234 - Summary.");
}
@@ -41,7 +42,8 @@ class CommitUnitTests {
void shouldRenderCommitMessageWithDetail() {
assertThat(
new Commit(new Ticket("1234", "Hello", Mockito.mock(TicketStatus.class)), "Summary", Optional.of("detail")))
new Commit(new Ticket("1234", "Hello", null, Mockito.mock(TicketStatus.class)), "Summary",
Optional.of("detail")))
.hasToString("1234 - Summary.\n" + "\n" + "detail");
}
}

View File

@@ -181,6 +181,8 @@ class JiraConnectorIntegrationTests extends AbstractIntegrationTests {
mockGetProjectComponentsWith("projectComponents.json", moduleIteration.getProjectKey());
mockSearchWith("emptyTickets.json");
prepareCreateIssueAndReturn("issueCreated.json");
mockService.stubFor(get(urlPathMatching("/rest/api/2/issue/DATAREDIS-42")).//
willReturn(json("existingTicket.json")));
jira.createReleaseTicket(moduleIteration);
@@ -200,6 +202,8 @@ class JiraConnectorIntegrationTests extends AbstractIntegrationTests {
mockGetProjectComponentsWith("emptyProjectComponents.json", moduleIteration.getProjectKey());
mockSearchWith("emptyTickets.json");
prepareCreateIssueAndReturn("issueCreated.json");
mockService.stubFor(get(urlPathMatching("/rest/api/2/issue/DATAREDIS-42")).//
willReturn(json("existingTicket.json")));
jira.createReleaseTicket(moduleIteration);
@@ -218,7 +222,7 @@ class JiraConnectorIntegrationTests extends AbstractIntegrationTests {
mockGetProjectVersionsWith("emptyReleaseVersions.json", moduleIteration.getProjectKey());
assertThatIllegalStateException().isThrownBy(() -> jira.createReleaseTicket(moduleIteration))
.withMessageContaining("No release version for Spring Data REST found containing 2.5 RC1 (Hopper)!");
.withMessageContaining("No release version for Spring Data REST 2.5 RC1 (Hopper) found");
}
@Test // #5
@@ -247,7 +251,7 @@ class JiraConnectorIntegrationTests extends AbstractIntegrationTests {
mockService.stubFor(put(urlPathMatching("/rest/api/2/issue/DATAREDIS-302")).//
willReturn(aResponse().withStatus(204)));
jira.assignTicketToMe(new Ticket("DATAREDIS-302", "", null));
jira.assignTicketToMe(new Ticket("DATAREDIS-302", "", null, null));
verify(putRequestedFor(urlPathMatching("/rest/api/2/issue/DATAREDIS-302")).withRequestBody(equalToJson(
"{\"update\":{\"assignee\":[ {\"set\":{\"name\":\"dummy\"}} ] }, \"transition\":{}, \"fields\":{}}")));
@@ -267,7 +271,7 @@ class JiraConnectorIntegrationTests extends AbstractIntegrationTests {
mockService.stubFor(post(urlPathMatching("/rest/api/2/issue/DATACASS-302")).//
willReturn(aResponse().withStatus(204)));
jira.assignTicketToMe(new Ticket("DATACASS-302", "", null));
jira.assignTicketToMe(new Ticket("DATACASS-302", "", null, null));
verify(0, postRequestedFor(urlPathMatching("/rest/api/2/issue/DATACASS-302")));
}

View File

@@ -37,7 +37,7 @@ class TicketsUnitTests {
@Test
void hasReleaseTicketShouldReturnTrue() {
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", JiraTicketStatus.of(false, "", ""));
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", null, JiraTicketStatus.of(false, "", ""));
Tickets tickets = new Tickets(Collections.singletonList(ticket));
boolean result = tickets.hasReleaseTicket(ReleaseTrains.HOPPER.getModuleIteration(Projects.JPA, Iteration.GA));
@@ -47,7 +47,7 @@ class TicketsUnitTests {
@Test
void hasReleaseTickeForTicketWithoutTrainNameShouldReturnFalse() {
Ticket ticket = new Ticket("1234", "Release 1.10 GA", JiraTicketStatus.of(false, "", ""));
Ticket ticket = new Ticket("1234", "Release 1.10 GA", null, JiraTicketStatus.of(false, "", ""));
Tickets tickets = new Tickets(Collections.singletonList(ticket));
boolean result = tickets.hasReleaseTicket(ReleaseTrains.HOPPER.getModuleIteration(Projects.JPA, Iteration.GA));
@@ -57,7 +57,7 @@ class TicketsUnitTests {
@Test
void getReleaseTicketReturnsReleaseTicket() {
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", JiraTicketStatus.of(false, "", ""));
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", null, JiraTicketStatus.of(false, "", ""));
Tickets tickets = new Tickets(Collections.singletonList(ticket));
Ticket releaseTicket = tickets
@@ -69,20 +69,23 @@ class TicketsUnitTests {
void getReleaseTicketReturnsCalverReleaseTicket() {
Tickets tickets = new Tickets(
Collections.singletonList(new Ticket("1234", "Release 2.4 GA (2020.0.0)", JiraTicketStatus.of(false, "", ""))));
Collections
.singletonList(new Ticket("1234", "Release 2.4 GA (2020.0.0)", null, JiraTicketStatus.of(false, "", ""))));
Ticket releaseTicket = tickets
.getReleaseTicket(ReleaseTrains.OCKHAM.getModuleIteration(Projects.JPA, Iteration.GA));
assertThat(releaseTicket).isNotNull();
tickets = new Tickets(
Collections.singletonList(new Ticket("1234", "Release 2.4 M1 (2020.0.0)", JiraTicketStatus.of(false, "", ""))));
Collections
.singletonList(new Ticket("1234", "Release 2.4 M1 (2020.0.0)", null, JiraTicketStatus.of(false, "", ""))));
releaseTicket = tickets.getReleaseTicket(ReleaseTrains.OCKHAM.getModuleIteration(Projects.JPA, Iteration.M1));
assertThat(releaseTicket).isNotNull();
tickets = new Tickets(
Collections.singletonList(new Ticket("1234", "Release 2.4.1 (2020.0.1)", JiraTicketStatus.of(false, "", ""))));
Collections
.singletonList(new Ticket("1234", "Release 2.4.1 (2020.0.1)", null, JiraTicketStatus.of(false, "", ""))));
releaseTicket = tickets.getReleaseTicket(ReleaseTrains.OCKHAM.getModuleIteration(Projects.JPA, Iteration.SR1));
assertThat(releaseTicket).isNotNull();
@@ -91,7 +94,7 @@ class TicketsUnitTests {
@Test
void getReleaseTicketThrowsExceptionWithoutAReleaseTicket() {
Ticket ticket = new Ticket("1234", "Release 1.10 GA", JiraTicketStatus.of(false, "", ""));
Ticket ticket = new Ticket("1234", "Release 1.10 GA", null, JiraTicketStatus.of(false, "", ""));
Tickets tickets = new Tickets(Collections.singletonList(ticket));
assertThatIllegalArgumentException().isThrownBy(
@@ -101,7 +104,7 @@ class TicketsUnitTests {
@Test
void getResolvedReleaseTicket() {
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", JiraTicketStatus.of(true, "", ""));
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", null, JiraTicketStatus.of(true, "", ""));
Tickets tickets = new Tickets(Collections.singletonList(ticket));
Ticket releaseTicket = tickets
@@ -112,7 +115,7 @@ class TicketsUnitTests {
@Test
void getReleaseTicketsReturnsReleaseTickets() {
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", JiraTicketStatus.of(false, "", ""));
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", null, JiraTicketStatus.of(false, "", ""));
Tickets tickets = new Tickets(Collections.singletonList(ticket));
Tickets result = tickets