11package org .opendevstack .apiservice .project .facade .impl ;
22
3- import static org .junit .jupiter .api .Assertions .assertEquals ;
4- import static org .junit .jupiter .api .Assertions .assertThrows ;
5- import static org .mockito .Mockito .verify ;
6- import static org .mockito .Mockito .when ;
7-
8- import java .util .List ;
9- import java .util .UUID ;
103import org .junit .jupiter .api .AfterEach ;
114import org .junit .jupiter .api .BeforeEach ;
125import org .junit .jupiter .api .Test ;
158import org .opendevstack .apiservice .persistence .entity .ClientAppEntity ;
169import org .opendevstack .apiservice .persistence .entity .ClientAppProjectFlavorEntity ;
1710import org .opendevstack .apiservice .project .exception .ErrorKey ;
18- import org .opendevstack .apiservice .project .exception .ProjectKeyGenerationException ;
11+ import org .opendevstack .apiservice .project .exception .ProjectCreationException ;
1912import org .opendevstack .apiservice .project .exception .ProjectValidationException ;
2013import org .opendevstack .apiservice .project .model .CreateProjectRequest ;
21- import org .opendevstack .apiservice .serviceproject .model .ProjectResponse ;
22- import org .opendevstack .apiservice .serviceproject .model .Status ;
14+ import org .opendevstack .apiservice .serviceproject .exception .ProjectExistenceServiceException ;
2315import org .opendevstack .apiservice .serviceproject .service .GenerateProjectKeyService ;
24- import org .opendevstack .apiservice .serviceproject .service .ProjectService ;
16+ import org .opendevstack .apiservice .serviceproject .service .ProjectExistenceService ;
17+
18+ import java .util .List ;
19+ import java .util .UUID ;
20+
21+ import static org .junit .jupiter .api .Assertions .assertEquals ;
22+ import static org .junit .jupiter .api .Assertions .assertThrows ;
23+ import static org .mockito .Mockito .verify ;
24+ import static org .mockito .Mockito .when ;
2525
2626class ProjectCreationCommandBuilderTest {
2727
2828 private static final UUID CLIENT_ID = UUID .fromString ("00000000-0000-0000-0000-000000000001" );
2929
30- @ Mock
31- private ProjectService projectService ;
32-
3330 @ Mock
3431 private GenerateProjectKeyService generateProjectKeyService ;
32+
33+ @ Mock
34+ private ProjectExistenceService projectExistenceService ;
3535
3636 private ProjectCreationCommandBuilder sut ;
3737
@@ -40,7 +40,7 @@ class ProjectCreationCommandBuilderTest {
4040 @ BeforeEach
4141 void set_up () {
4242 mocks = MockitoAnnotations .openMocks (this );
43- sut = new ProjectCreationCommandBuilder (projectService , generateProjectKeyService );
43+ sut = new ProjectCreationCommandBuilder (generateProjectKeyService , projectExistenceService );
4444 }
4545
4646 @ AfterEach
@@ -49,14 +49,14 @@ void tear_down() throws Exception {
4949 }
5050
5151 @ Test
52- void build_resolves_defaults_from_flavor_when_request_fields_are_missing () {
52+ void build_resolves_defaults_from_flavor_when_request_fields_are_missing () throws ProjectExistenceServiceException {
5353 ClientAppProjectFlavorEntity flavor = build_flavor ("DLSS" , "CI-001" , new String [] {}, "eu" , "owner1" );
5454 ClientAppEntity clientApp = build_client_app (List .of (flavor ));
5555 CreateProjectRequest request = build_request ("DLSS" , null , "KEY01" );
5656 request .setOwner (null );
5757 request .setLocation (null );
5858
59- when (projectService . getProject ("KEY01" )).thenReturn (null );
59+ when (projectExistenceService . isProjectFound ("KEY01" )).thenReturn (false );
6060
6161 ProjectCreationCommand result = sut .build (request , clientApp );
6262
@@ -68,12 +68,12 @@ void build_resolves_defaults_from_flavor_when_request_fields_are_missing() {
6868 }
6969
7070 @ Test
71- void build_resolves_flavor_from_configuration_item_when_flavor_is_not_provided () {
71+ void build_resolves_flavor_from_configuration_item_when_flavor_is_not_provided () throws ProjectExistenceServiceException {
7272 ClientAppProjectFlavorEntity flavor = build_flavor ("DLSS" , "CI-001" , new String [] {}, "eu" , "owner1" );
7373 ClientAppEntity clientApp = build_client_app (List .of (flavor ));
7474 CreateProjectRequest request = build_request (null , "CI-001" , "KEY01" );
7575
76- when (projectService . getProject ("KEY01" )).thenReturn (null );
76+ when (projectExistenceService . isProjectFound ("KEY01" )).thenReturn (false );
7777
7878 ProjectCreationCommand result = sut .build (request , clientApp );
7979
@@ -82,13 +82,13 @@ void build_resolves_flavor_from_configuration_item_when_flavor_is_not_provided()
8282 }
8383
8484 @ Test
85- void build_generates_project_key_when_request_project_key_is_null () throws Exception {
85+ void build_generates_project_key_when_request_project_key_is_null () throws ProjectExistenceServiceException , org . opendevstack . apiservice . serviceproject . exception . ProjectKeyGenerationException {
8686 ClientAppProjectFlavorEntity flavor = build_flavor ("DLSS" , "CI-001" , new String [] {}, "eu" , "owner1" );
8787 ClientAppEntity clientApp = build_client_app (List .of (flavor ));
8888 CreateProjectRequest request = build_request ("DLSS" , null , null );
8989
9090 when (generateProjectKeyService .generateProjectKey ("DLSS%06d" )).thenReturn ("DLSS000001" );
91- when (projectService . getProject ("DLSS000001" )).thenReturn (null );
91+ when (projectExistenceService . isProjectFound ("DLSS000001" )).thenReturn (false );
9292
9393 ProjectCreationCommand result = sut .build (request , clientApp );
9494
@@ -97,19 +97,16 @@ void build_generates_project_key_when_request_project_key_is_null() throws Excep
9797 }
9898
9999 @ Test
100- void build_throws_validation_exception_when_project_key_already_exists () {
100+ void build_throws_validation_exception_when_project_key_already_exists () throws ProjectExistenceServiceException {
101101 ClientAppProjectFlavorEntity flavor = build_flavor ("DLSS" , "CI-001" , new String [] {}, "eu" , "owner1" );
102102 ClientAppEntity clientApp = build_client_app (List .of (flavor ));
103103 CreateProjectRequest request = build_request ("DLSS" , null , "KEY01" );
104104
105- when (projectService .getProject ("KEY01" )).thenReturn (ProjectResponse .builder ()
106- .projectKey ("KEY01" )
107- .status (Status .RUNNING )
108- .build ());
105+ when (projectExistenceService .isProjectFound ("KEY01" )).thenReturn (true );
109106
110107 ProjectValidationException ex = assertThrows (ProjectValidationException .class ,
111108 () -> sut .build (request , clientApp ));
112- assertEquals (ErrorKey .DUPLICATE_RECORD , ex .getErrorKey ());
109+ assertEquals (ErrorKey .PROJECT_ALREADY_EXISTS , ex .getErrorKey ());
113110 }
114111
115112 @ Test
@@ -144,7 +141,7 @@ void build_throws_project_key_generation_exception_when_generation_fails() throw
144141 when (generateProjectKeyService .generateProjectKey ("DLSS%06d" ))
145142 .thenThrow (new org .opendevstack .apiservice .serviceproject .exception .ProjectKeyGenerationException ("fail" ));
146143
147- assertThrows (ProjectKeyGenerationException .class , () -> sut .build (request , clientApp ));
144+ assertThrows (ProjectCreationException .class , () -> sut .build (request , clientApp ));
148145 }
149146
150147 private CreateProjectRequest build_request (String flavor , String configItem , String projectKey ) {
0 commit comments