You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2020/09/07 13:44:24 UTC

[incubator-dlab] branch develop updated: [DLAB ] Project resource UT (#893)

This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/develop by this push:
     new 68c7bbb  [DLAB ] Project resource UT (#893)
68c7bbb is described below

commit 68c7bbb6aec2ae42255a611a5a65ceb3351a82a1
Author: Pavel Papou <pp...@gmail.com>
AuthorDate: Mon Sep 7 09:44:15 2020 -0400

    [DLAB ] Project resource UT (#893)
    
    [DLAB ] Project resource UT
---
 .../backendapi/resources/ProjectResourceTest.java  | 131 +++++++++++++++++++--
 1 file changed, 120 insertions(+), 11 deletions(-)

diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ProjectResourceTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ProjectResourceTest.java
index d581fa5..67475d6 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ProjectResourceTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ProjectResourceTest.java
@@ -24,6 +24,8 @@ import com.epam.dlab.backendapi.domain.BudgetDTO;
 import com.epam.dlab.backendapi.domain.CreateProjectDTO;
 import com.epam.dlab.backendapi.domain.ProjectDTO;
 import com.epam.dlab.backendapi.domain.ProjectEndpointDTO;
+import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
+import com.epam.dlab.backendapi.domain.UpdateProjectBudgetDTO;
 import com.epam.dlab.backendapi.resources.dto.KeysDTO;
 import com.epam.dlab.backendapi.resources.dto.ProjectActionFormDTO;
 import com.epam.dlab.backendapi.service.AccessKeyService;
@@ -55,6 +57,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.doNothing;
 
 public class ProjectResourceTest extends TestBase {
 
@@ -82,7 +85,7 @@ public class ProjectResourceTest extends TestBase {
                 .post(Entity.json(createProjectDTO));
 
         assertEquals(HttpStatus.SC_OK, response.getStatus());
-        verify(projectService).create(getUserInfo(), returnProjectDTO(createProjectDTO), createProjectDTO.getName());
+        verify(projectService).create(getUserInfo(), prepareProjectDTO(createProjectDTO), createProjectDTO.getName());
         verifyNoMoreInteractions(projectService);
     }
 
@@ -98,33 +101,128 @@ public class ProjectResourceTest extends TestBase {
                 .post(Entity.json(createProjectDTO));
 
         assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus());
-        verify(projectService).create(getUserInfo(), returnProjectDTO(createProjectDTO), createProjectDTO.getName());
+        verify(projectService).create(getUserInfo(), prepareProjectDTO(createProjectDTO), createProjectDTO.getName());
         verifyNoMoreInteractions(projectService);
     }
 
     @Test
-    public void stopProject() {
+    public void startProject() {
         final Response response = resources.getJerseyTest()
-                .target("project/stop")
+                .target("project/start")
                 .request()
                 .header("Authorization", "Bearer " + TOKEN)
                 .post(Entity.json(getProjectActionDTO()));
 
         assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus());
-        verify(projectService).stopWithResources(any(UserInfo.class), anyList(), anyString());
+        verify(projectService).start(getUserInfo(), Collections.singletonList("https://localhost:8083/"), PROJECT_NAME);
         verifyNoMoreInteractions(projectService);
     }
 
     @Test
-    public void startProject() {
+    public void stopProject() {
         final Response response = resources.getJerseyTest()
-                .target("project/start")
+                .target("project/stop")
                 .request()
                 .header("Authorization", "Bearer " + TOKEN)
                 .post(Entity.json(getProjectActionDTO()));
 
         assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus());
-        verify(projectService).start(any(UserInfo.class), anyList(), anyString());
+        verify(projectService).stopWithResources(getUserInfo(), Collections.singletonList("https://localhost:8083/"), PROJECT_NAME);
+        verifyNoMoreInteractions(projectService);
+    }
+
+
+    @Test
+    public void getProject() {
+        when(projectService.get(anyString())).thenReturn(ProjectDTO.builder().name(PROJECT_NAME).build());
+
+        final Response response = resources.getJerseyTest()
+                .target("project/" + PROJECT_NAME)
+                .request()
+                .header("Authorization", "Bearer " + TOKEN)
+                .get();
+
+        assertEquals(HttpStatus.SC_OK, response.getStatus());
+        assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
+        verify(projectService).get(PROJECT_NAME);
+        verifyNoMoreInteractions(projectService);
+    }
+
+    @Test
+    public void getProjects() {
+        when(projectService.getProjects(any(UserInfo.class))).thenReturn(Collections.singletonList(ProjectDTO.builder().name(PROJECT_NAME).build()));
+
+        final Response response = resources.getJerseyTest()
+                .target("project")
+                .request()
+                .header("Authorization", "Bearer " + TOKEN)
+                .get();
+
+        assertEquals(HttpStatus.SC_OK, response.getStatus());
+        assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
+        verify(projectService).getProjects(getUserInfo());
+        verifyNoMoreInteractions(projectService);
+    }
+
+    @Test
+    public void getUserProjects() {
+        when(projectService.getUserProjects(getUserInfo(), false)).thenReturn(Collections.singletonList(ProjectDTO.builder().name(PROJECT_NAME).build()));
+
+        final Response response = resources.getJerseyTest()
+                .target("project/me")
+                .request()
+                .header("Authorization", "Bearer " + TOKEN)
+                .get();
+
+        assertEquals(HttpStatus.SC_OK, response.getStatus());
+        assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
+        verify(projectService).getUserProjects(getUserInfo(), Boolean.FALSE);
+        verifyNoMoreInteractions(projectService);
+    }
+
+    @Test
+    public void updateProject() {
+        doNothing().when(projectService).update(any(UserInfo.class), any(UpdateProjectDTO.class), anyString());
+
+        final Response response = resources.getJerseyTest()
+                .target("project")
+                .request()
+                .header("Authorization", "Bearer " + TOKEN)
+                .put(Entity.json(prepareUpdateProjectDTO()));
+
+        assertEquals(HttpStatus.SC_OK, response.getStatus());
+        verify(projectService).update(getUserInfo(), prepareUpdateProjectDTO(), PROJECT_NAME);
+        verifyNoMoreInteractions(projectService);
+    }
+
+    @Test
+    public void removeProjectEndpoint() {
+        doNothing().when(projectService).terminateEndpoint(any(UserInfo.class), anyList(), anyString());
+
+        final Response response = resources.getJerseyTest()
+                .target("project/terminate")
+                .request()
+                .header("Authorization", "Bearer " + TOKEN)
+                .post(Entity.json(prepareProjectActionFormDTO()));
+
+        assertEquals(HttpStatus.SC_OK, response.getStatus());
+        verify(projectService).terminateEndpoint(getUserInfo(), prepareProjectActionFormDTO().getEndpoints(), prepareProjectActionFormDTO().getProjectName());
+        verifyNoMoreInteractions(projectService);
+    }
+
+    @Test
+    public void updateBudget() {
+        doNothing().when(projectService).updateBudget(any(UserInfo.class), anyList());
+
+        final Response response = resources.getJerseyTest()
+                .target("project/budget")
+                .request()
+                .header("Authorization", "Bearer " + TOKEN)
+                .put(Entity.json((prepareUpdateProjectBudgetDTOs())));
+
+        assertEquals(HttpStatus.SC_OK, response.getStatus());
+
+        verify(projectService).updateBudget(getUserInfo(), prepareUpdateProjectBudgetDTOs());
         verifyNoMoreInteractions(projectService);
     }
 
@@ -160,8 +258,7 @@ public class ProjectResourceTest extends TestBase {
 
     @Test
     public void generate() {
-        when(keyService.generateKeys(any(UserInfo.class))).thenReturn(new KeysDTO("somePublicKey", "somePrivateKey",
-                "user"));
+        when(keyService.generateKeys(any(UserInfo.class))).thenReturn(new KeysDTO("somePublicKey", "somePrivateKey", "user"));
 
         final Response response = resources.getJerseyTest()
                 .target("/project/keys")
@@ -198,7 +295,7 @@ public class ProjectResourceTest extends TestBase {
         return new CreateProjectDTO(PROJECT_NAME, Collections.emptySet(), Collections.emptySet(), "ssh-testKey", "testTag");
     }
 
-    private ProjectDTO returnProjectDTO(CreateProjectDTO createProjectDTO) {
+    private ProjectDTO prepareProjectDTO(CreateProjectDTO createProjectDTO) {
         List<ProjectEndpointDTO> projectEndpointDTOS = createProjectDTO.getEndpoints()
                 .stream()
                 .map(e -> new ProjectEndpointDTO(e, UserInstanceStatus.CREATING, null))
@@ -211,4 +308,16 @@ public class ProjectResourceTest extends TestBase {
     private ProjectActionFormDTO getProjectActionDTO() {
         return new ProjectActionFormDTO(PROJECT_NAME, Collections.singletonList("https://localhost:8083/"));
     }
+
+    private UpdateProjectDTO prepareUpdateProjectDTO() {
+        return new UpdateProjectDTO(PROJECT_NAME, Collections.emptySet(), Collections.emptySet(), Boolean.TRUE);
+    }
+
+    private ProjectActionFormDTO prepareProjectActionFormDTO(){
+        return new ProjectActionFormDTO(PROJECT_NAME, Collections.singletonList("https://localhost:8083/"));
+    }
+
+    private List<UpdateProjectBudgetDTO> prepareUpdateProjectBudgetDTOs() {
+        return Collections.singletonList(new UpdateProjectBudgetDTO(PROJECT_NAME, 123, Boolean.FALSE));
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org