ofuks commented on a change in pull request #879: URL: https://github.com/apache/incubator-dlab/pull/879#discussion_r480204268
########## File path: services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ProjectResourceTest.java ########## @@ -50,81 +58,126 @@ public class ProjectResourceTest extends TestBase { - private ProjectService projectService = mock(ProjectService.class); - private AccessKeyService keyService = mock(AccessKeyService.class); - - @Rule - public final ResourceTestRule resources = getResourceTestRuleInstance( - new ProjectResource(projectService, keyService)); - - @Before - public void setup() throws AuthenticationException { - authSetup(); - } - - @Test - public void stopProject() { - final Response response = resources.getJerseyTest() - .target("project/stop") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json(getProjectActionDTO())); - - assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); - verify(projectService).stopWithResources(any(UserInfo.class), anyList(), anyString()); - verifyNoMoreInteractions(projectService); - } - - @Test - public void startProject() { - final Response response = resources.getJerseyTest() - .target("project/start") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json(getProjectActionDTO())); - - assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); - verify(projectService).start(any(UserInfo.class), anyList(), anyString()); - verifyNoMoreInteractions(projectService); - } - - @Test - public void generate() { - when(keyService.generateKeys(any(UserInfo.class))).thenReturn(new KeysDTO("somePublicKey", "somePrivateKey", - "user")); - - final Response response = resources.getJerseyTest() - .target("/project/keys") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json("")); - - assertEquals(HttpStatus.SC_OK, response.getStatus()); - assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE)); - - verify(keyService).generateKeys(getUserInfo()); - verifyNoMoreInteractions(keyService); - } - - @Test - public void generateKeysWithException() { - doThrow(new DlabException("Can not generate private/public key pair due to")) - .when(keyService).generateKeys(any(UserInfo.class)); - - final Response response = resources.getJerseyTest() - .target("/project/keys") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json("")); - - assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); - assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE)); - - verify(keyService).generateKeys(getUserInfo()); - verifyNoMoreInteractions(keyService); - } - - private ProjectActionFormDTO getProjectActionDTO() { - return new ProjectActionFormDTO("DLAB", Collections.singletonList("https://localhost:8083/")); - } + private ProjectService projectService = mock(ProjectService.class); + private AccessKeyService keyService = mock(AccessKeyService.class); + private String PROJECT_NAME = "DLAB"; Review comment: Make the ** PROJECT_NAME** field **private static final** and move the field to appropriate place according to the java convention format ########## File path: services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ProjectResourceTest.java ########## @@ -50,81 +58,126 @@ public class ProjectResourceTest extends TestBase { - private ProjectService projectService = mock(ProjectService.class); - private AccessKeyService keyService = mock(AccessKeyService.class); - - @Rule - public final ResourceTestRule resources = getResourceTestRuleInstance( - new ProjectResource(projectService, keyService)); - - @Before - public void setup() throws AuthenticationException { - authSetup(); - } - - @Test - public void stopProject() { - final Response response = resources.getJerseyTest() - .target("project/stop") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json(getProjectActionDTO())); - - assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); - verify(projectService).stopWithResources(any(UserInfo.class), anyList(), anyString()); - verifyNoMoreInteractions(projectService); - } - - @Test - public void startProject() { - final Response response = resources.getJerseyTest() - .target("project/start") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json(getProjectActionDTO())); - - assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); - verify(projectService).start(any(UserInfo.class), anyList(), anyString()); - verifyNoMoreInteractions(projectService); - } - - @Test - public void generate() { - when(keyService.generateKeys(any(UserInfo.class))).thenReturn(new KeysDTO("somePublicKey", "somePrivateKey", - "user")); - - final Response response = resources.getJerseyTest() - .target("/project/keys") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json("")); - - assertEquals(HttpStatus.SC_OK, response.getStatus()); - assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE)); - - verify(keyService).generateKeys(getUserInfo()); - verifyNoMoreInteractions(keyService); - } - - @Test - public void generateKeysWithException() { - doThrow(new DlabException("Can not generate private/public key pair due to")) - .when(keyService).generateKeys(any(UserInfo.class)); - - final Response response = resources.getJerseyTest() - .target("/project/keys") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json("")); - - assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); - assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE)); - - verify(keyService).generateKeys(getUserInfo()); - verifyNoMoreInteractions(keyService); - } - - private ProjectActionFormDTO getProjectActionDTO() { - return new ProjectActionFormDTO("DLAB", Collections.singletonList("https://localhost:8083/")); - } + private ProjectService projectService = mock(ProjectService.class); + private AccessKeyService keyService = mock(AccessKeyService.class); + private String PROJECT_NAME = "DLAB"; + + @Rule + public final ResourceTestRule resources = getResourceTestRuleInstance( + new ProjectResource(projectService, keyService)); + + @Before + public void setup() throws AuthenticationException { + authSetup(); + } + + @Test + public void createProject() { + CreateProjectDTO createProjectDTO = returnCreateProjectDTO(); + final Response response = resources.getJerseyTest() + .target("project") + .request() + .header("Authorization", "Bearer " + TOKEN) + .post(Entity.json(createProjectDTO)); + + assertEquals(HttpStatus.SC_OK, response.getStatus()); + verify(projectService).create(getUserInfo(), returnProjectDTO(createProjectDTO), createProjectDTO.getName()); + verifyNoMoreInteractions(projectService); + } + + @Test + public void createExistingProject() { + CreateProjectDTO createProjectDTO = returnCreateProjectDTO(); + doThrow(new ResourceConflictException("Project with passed name already exist in system")) + .when(projectService).create(getUserInfo(), returnProjectDTO(createProjectDTO), createProjectDTO.getName()); Review comment: Here you should specify **any()** methods(any(), anyString(), any(Class.class)) ########## File path: services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ProjectResourceTest.java ########## @@ -50,81 +58,126 @@ public class ProjectResourceTest extends TestBase { - private ProjectService projectService = mock(ProjectService.class); - private AccessKeyService keyService = mock(AccessKeyService.class); - - @Rule - public final ResourceTestRule resources = getResourceTestRuleInstance( - new ProjectResource(projectService, keyService)); - - @Before - public void setup() throws AuthenticationException { - authSetup(); - } - - @Test - public void stopProject() { - final Response response = resources.getJerseyTest() - .target("project/stop") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json(getProjectActionDTO())); - - assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); - verify(projectService).stopWithResources(any(UserInfo.class), anyList(), anyString()); - verifyNoMoreInteractions(projectService); - } - - @Test - public void startProject() { - final Response response = resources.getJerseyTest() - .target("project/start") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json(getProjectActionDTO())); - - assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); - verify(projectService).start(any(UserInfo.class), anyList(), anyString()); - verifyNoMoreInteractions(projectService); - } - - @Test - public void generate() { - when(keyService.generateKeys(any(UserInfo.class))).thenReturn(new KeysDTO("somePublicKey", "somePrivateKey", - "user")); - - final Response response = resources.getJerseyTest() - .target("/project/keys") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json("")); - - assertEquals(HttpStatus.SC_OK, response.getStatus()); - assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE)); - - verify(keyService).generateKeys(getUserInfo()); - verifyNoMoreInteractions(keyService); - } - - @Test - public void generateKeysWithException() { - doThrow(new DlabException("Can not generate private/public key pair due to")) - .when(keyService).generateKeys(any(UserInfo.class)); - - final Response response = resources.getJerseyTest() - .target("/project/keys") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json("")); - - assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); - assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE)); - - verify(keyService).generateKeys(getUserInfo()); - verifyNoMoreInteractions(keyService); - } - - private ProjectActionFormDTO getProjectActionDTO() { - return new ProjectActionFormDTO("DLAB", Collections.singletonList("https://localhost:8083/")); - } + private ProjectService projectService = mock(ProjectService.class); + private AccessKeyService keyService = mock(AccessKeyService.class); + private String PROJECT_NAME = "DLAB"; + + @Rule + public final ResourceTestRule resources = getResourceTestRuleInstance( + new ProjectResource(projectService, keyService)); + + @Before + public void setup() throws AuthenticationException { + authSetup(); + } + + @Test + public void createProject() { + CreateProjectDTO createProjectDTO = returnCreateProjectDTO(); + final Response response = resources.getJerseyTest() + .target("project") + .request() + .header("Authorization", "Bearer " + TOKEN) + .post(Entity.json(createProjectDTO)); + + assertEquals(HttpStatus.SC_OK, response.getStatus()); + verify(projectService).create(getUserInfo(), returnProjectDTO(createProjectDTO), createProjectDTO.getName()); + verifyNoMoreInteractions(projectService); + } + + @Test + public void createExistingProject() { + CreateProjectDTO createProjectDTO = returnCreateProjectDTO(); + doThrow(new ResourceConflictException("Project with passed name already exist in system")) + .when(projectService).create(getUserInfo(), returnProjectDTO(createProjectDTO), createProjectDTO.getName()); + final Response response = resources.getJerseyTest() + .target("project") + .request() + .header("Authorization", "Bearer " + TOKEN) + .post(Entity.json(createProjectDTO)); + + assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); + verify(projectService).create(getUserInfo(), returnProjectDTO(createProjectDTO), createProjectDTO.getName()); + verifyNoMoreInteractions(projectService); + } + + @Test + public void stopProject() { + final Response response = resources.getJerseyTest() + .target("project/stop") + .request() + .header("Authorization", "Bearer " + TOKEN) + .post(Entity.json(getProjectActionDTO())); + + assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); + verify(projectService).stopWithResources(any(UserInfo.class), anyList(), anyString()); + verifyNoMoreInteractions(projectService); + } + + @Test + public void startProject() { + final Response response = resources.getJerseyTest() + .target("project/start") + .request() + .header("Authorization", "Bearer " + TOKEN) + .post(Entity.json(getProjectActionDTO())); + + assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); + verify(projectService).start(any(UserInfo.class), anyList(), anyString()); + verifyNoMoreInteractions(projectService); + } + + @Test + public void generate() { + when(keyService.generateKeys(any(UserInfo.class))).thenReturn(new KeysDTO("somePublicKey", "somePrivateKey", + "user")); Review comment: Inline this ########## File path: services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ProjectResourceTest.java ########## @@ -50,81 +58,126 @@ public class ProjectResourceTest extends TestBase { - private ProjectService projectService = mock(ProjectService.class); - private AccessKeyService keyService = mock(AccessKeyService.class); - - @Rule - public final ResourceTestRule resources = getResourceTestRuleInstance( - new ProjectResource(projectService, keyService)); - - @Before - public void setup() throws AuthenticationException { - authSetup(); - } - - @Test - public void stopProject() { - final Response response = resources.getJerseyTest() - .target("project/stop") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json(getProjectActionDTO())); - - assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); - verify(projectService).stopWithResources(any(UserInfo.class), anyList(), anyString()); - verifyNoMoreInteractions(projectService); - } - - @Test - public void startProject() { - final Response response = resources.getJerseyTest() - .target("project/start") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json(getProjectActionDTO())); - - assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus()); - verify(projectService).start(any(UserInfo.class), anyList(), anyString()); - verifyNoMoreInteractions(projectService); - } - - @Test - public void generate() { - when(keyService.generateKeys(any(UserInfo.class))).thenReturn(new KeysDTO("somePublicKey", "somePrivateKey", - "user")); - - final Response response = resources.getJerseyTest() - .target("/project/keys") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json("")); - - assertEquals(HttpStatus.SC_OK, response.getStatus()); - assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE)); - - verify(keyService).generateKeys(getUserInfo()); - verifyNoMoreInteractions(keyService); - } - - @Test - public void generateKeysWithException() { - doThrow(new DlabException("Can not generate private/public key pair due to")) - .when(keyService).generateKeys(any(UserInfo.class)); - - final Response response = resources.getJerseyTest() - .target("/project/keys") - .request() - .header("Authorization", "Bearer " + TOKEN) - .post(Entity.json("")); - - assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); - assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE)); - - verify(keyService).generateKeys(getUserInfo()); - verifyNoMoreInteractions(keyService); - } - - private ProjectActionFormDTO getProjectActionDTO() { - return new ProjectActionFormDTO("DLAB", Collections.singletonList("https://localhost:8083/")); - } + private ProjectService projectService = mock(ProjectService.class); + private AccessKeyService keyService = mock(AccessKeyService.class); + private String PROJECT_NAME = "DLAB"; Review comment: Also, we can use **@Mock** annotation instead of calling method **mock()** ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@dlab.apache.org For additional commands, e-mail: dev-h...@dlab.apache.org