Skip to content

Commit 99d96e7

Browse files
author
braintelligencePL
committed
refactor completed
1 parent 2a88dfb commit 99d96e7

File tree

11 files changed

+95
-58
lines changed

11 files changed

+95
-58
lines changed

src/main/kotlin/pl/braintelligence/projectmanager/core/projects/ports/incoming/ProjectQueryPort.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ interface ProjectQueryPort {
66

77
fun getProject(id: String): Project
88

9+
fun getProjects(): List<Project>
910
}
Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,8 @@
11
package pl.braintelligence.projectmanager.base
22

3-
import pl.braintelligence.projectmanager.core.projects.domain.ProjectFactory
4-
import pl.braintelligence.projectmanager.core.projects.domain.configuration.InMemoryProjectRepository
5-
import pl.braintelligence.projectmanager.core.projects.domain.configuration.ProjectConfiguration
6-
import pl.braintelligence.projectmanager.core.projects.ports.incoming.ProjectCreatorPort
7-
import pl.braintelligence.projectmanager.core.projects.ports.incoming.ProjectQueryPort
8-
import pl.braintelligence.projectmanager.core.team.domain.configuration.TeamConfiguration
9-
import pl.braintelligence.projectmanager.core.team.ports.incoming.TeamManager
3+
104
import spock.lang.Specification
115

126
class BaseUnitTest extends Specification implements BaseDtoObjects {
137

14-
// teams
15-
protected TeamManager teamService = new TeamConfiguration().teamManager()
16-
17-
// projects
18-
protected InMemoryProjectRepository inMemoryProjectRepository = new InMemoryProjectRepository()
19-
20-
protected ProjectCreatorPort projectCreator =
21-
new ProjectConfiguration()
22-
.buildProjectCreator(Mock(ProjectFactory), inMemoryProjectRepository)
23-
24-
protected ProjectQueryPort projectQuery =
25-
new ProjectConfiguration()
26-
.buildProjectQuery(inMemoryProjectRepository)
27-
288
}

src/test/groovy/pl/braintelligence/projectmanager/project/ProjectAcceptanceTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package pl.braintelligence.projectmanager.project
22

3-
import org.springframework.core.ParameterizedTypeReference
3+
44
import org.springframework.http.HttpStatus
55
import pl.braintelligence.projectmanager.base.BaseIntegrationTest
66
import pl.braintelligence.projectmanager.core.projects.domain.Project
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package pl.braintelligence.projectmanager.project.base
2+
3+
import pl.braintelligence.projectmanager.base.BaseUnitTest
4+
import pl.braintelligence.projectmanager.core.projects.domain.Project
5+
import pl.braintelligence.projectmanager.core.projects.domain.ProjectFactory
6+
import pl.braintelligence.projectmanager.core.projects.domain.Status
7+
import pl.braintelligence.projectmanager.core.projects.domain.configuration.InMemoryProjectRepository
8+
import pl.braintelligence.projectmanager.core.projects.domain.configuration.ProjectConfiguration
9+
import pl.braintelligence.projectmanager.core.projects.ports.incoming.ProjectCreatorPort
10+
import pl.braintelligence.projectmanager.core.projects.ports.incoming.ProjectQueryPort
11+
12+
class BaseProjectUnitTest extends BaseUnitTest {
13+
14+
protected InMemoryProjectRepository inMemoryProjectRepository = new InMemoryProjectRepository()
15+
16+
protected ProjectCreatorPort projectCreator =
17+
new ProjectConfiguration()
18+
.buildProjectCreator(Mock(ProjectFactory), inMemoryProjectRepository)
19+
20+
protected ProjectQueryPort projectQuery =
21+
new ProjectConfiguration()
22+
.buildProjectQuery(inMemoryProjectRepository)
23+
24+
protected void verifyProjectDraft(Project project) {
25+
assert with(project) {
26+
id != null
27+
name == newProjectDraftDto.projectName
28+
status == Status.TO_DO
29+
teamAssigned == ""
30+
features == []
31+
}
32+
}
33+
34+
protected void verifyProjectWithFeatures(Project project) {
35+
assert with(project) {
36+
id != null
37+
name == newProjectWithFeaturesDto.projectName
38+
status == Status.TO_DO
39+
teamAssigned.isBlank()
40+
with(features[0]) {
41+
name == newProjectWithFeaturesDto.features[0].name
42+
status == newProjectWithFeaturesDto.features[0].status
43+
priorityLevel == newProjectWithFeaturesDto.features[0].priorityLevel
44+
}
45+
}
46+
}
47+
}
Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,23 @@
11
package pl.braintelligence.projectmanager.project.domain
22

3-
import pl.braintelligence.projectmanager.base.BaseUnitTest
4-
import pl.braintelligence.projectmanager.core.projects.domain.Status
53

6-
class ProjectCreationTest extends BaseUnitTest {
4+
import pl.braintelligence.projectmanager.project.base.BaseProjectUnitTest
5+
6+
class ProjectCreationTest extends BaseProjectUnitTest {
77

88
def "Should create a project draft and browse for it"() {
99
when:
1010
def project = projectCreator.createProjectDraft(newProjectDraftDto)
1111

1212
then:
13-
project != null
13+
verifyProjectDraft(project)
1414
}
1515

16-
def "Should create project with features"() {
16+
def "Should create project with features and browse it"() {
1717
when:
1818
def project = projectCreator.createProjectWithFeatures(newProjectWithFeaturesDto)
1919

2020
then:
21-
project != null
22-
}
23-
24-
def "Should browse for project with features (defaults)"() {
25-
given:
26-
def project = projectCreator.createProjectWithFeatures(newProjectWithFeaturesDto)
27-
28-
when:
29-
def response = projectQuery.getProject(project.id)
30-
31-
then:
32-
with(response) {
33-
id != null
34-
name == newProjectWithFeaturesDto.projectName
35-
status == Status.TO_DO
36-
teamAssigned.isBlank()
37-
with(features[0]) {
38-
name == newProjectWithFeaturesDto.features[0].name
39-
status == newProjectWithFeaturesDto.features[0].status
40-
priorityLevel == newProjectWithFeaturesDto.features[0].priorityLevel
41-
}
42-
}
21+
verifyProjectWithFeatures(project)
4322
}
4423
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package pl.braintelligence.projectmanager.project.domain
2+
3+
import pl.braintelligence.projectmanager.project.base.BaseProjectUnitTest
4+
5+
class ProjectQueryTest extends BaseProjectUnitTest {
6+
7+
def "Should browse for project"() {
8+
given:
9+
def project = projectCreator.createProjectWithFeatures(newProjectWithFeaturesDto)
10+
11+
when:
12+
def response = projectQuery.getProject(project.id)
13+
14+
then:
15+
verifyProjectWithFeatures(response)
16+
}
17+
18+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package pl.braintelligence.projectmanager.team.base
2+
3+
import pl.braintelligence.projectmanager.base.BaseUnitTest
4+
import pl.braintelligence.projectmanager.core.team.domain.configuration.TeamConfiguration
5+
import pl.braintelligence.projectmanager.core.team.ports.incoming.TeamManager
6+
7+
class BaseTeamUnitTest extends BaseUnitTest {
8+
9+
protected TeamManager teamService = new TeamConfiguration().teamManager()
10+
11+
}

src/test/groovy/pl/braintelligence/projectmanager/team/domain/AddingTeamMembersToTeamTest.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package pl.braintelligence.projectmanager.team.domain
22

33

4-
import pl.braintelligence.projectmanager.base.BaseUnitTest
4+
import pl.braintelligence.projectmanager.team.base.BaseTeamUnitTest
55

6-
class AddingTeamMembersToTeamTest extends BaseUnitTest {
6+
class AddingTeamMembersToTeamTest extends BaseTeamUnitTest {
77

88
def "Should add member to a team"() {
99
given: "new team is created"

src/test/groovy/pl/braintelligence/projectmanager/team/domain/TeamCreationTest.groovy

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package pl.braintelligence.projectmanager.team.domain
22

3+
import pl.braintelligence.projectmanager.team.base.BaseTeamUnitTest
34

4-
import pl.braintelligence.projectmanager.base.BaseUnitTest
5-
6-
class TeamCreationTest extends BaseUnitTest {
5+
class TeamCreationTest extends BaseTeamUnitTest {
76

87
def "Should create a team (with default values)"() {
98
given:

src/test/groovy/pl/braintelligence/projectmanager/team/domain/TeamMembersValidationTest.groovy

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package pl.braintelligence.projectmanager.team.domain
22

3-
import pl.braintelligence.projectmanager.base.BaseUnitTest
3+
44
import pl.braintelligence.projectmanager.core.team.domain.InvalidTeamMemberException
55
import pl.braintelligence.projectmanager.infrastructure.adapter.incoming.rest.dto.TeamMember
6+
import pl.braintelligence.projectmanager.team.base.BaseTeamUnitTest
67
import spock.lang.Unroll
78

8-
class TeamMembersValidationTest extends BaseUnitTest {
9+
class TeamMembersValidationTest extends BaseTeamUnitTest {
910

1011
def "Should add member to a team"() {
1112
given: "team is created"

0 commit comments

Comments
 (0)