Search in sources :

Example 21 with WorkspaceAccessLevel

use of org.pmiops.workbench.model.WorkspaceAccessLevel in project workbench by all-of-us.

the class CohortAnnotationDefinitionControllerTest method deleteCohortAnnotationDefinition_BadWorkspace.

@Test
public void deleteCohortAnnotationDefinition_BadWorkspace() throws Exception {
    String namespace = "aou-test";
    String name = "test";
    long cohortId = 1;
    long annotationDefinitionId = 1;
    long workspaceId = 1;
    long badWorkspaceId = 0;
    Cohort cohort = createCohort(workspaceId);
    Workspace workspace = createWorkspace(namespace, name, badWorkspaceId);
    WorkspaceAccessLevel owner = WorkspaceAccessLevel.OWNER;
    when(workspaceService.enforceWorkspaceAccessLevel(namespace, name, WorkspaceAccessLevel.WRITER)).thenReturn(owner);
    when(cohortDao.findOne(cohortId)).thenReturn(cohort);
    when(workspaceService.getRequired(namespace, name)).thenReturn(workspace);
    try {
        cohortAnnotationDefinitionController.deleteCohortAnnotationDefinition(namespace, name, cohortId, annotationDefinitionId);
        fail("Should have thrown a NotFoundException!");
    } catch (NotFoundException e) {
        assertEquals("Not Found: No workspace matching workspaceNamespace: " + namespace + ", workspaceId: " + name, e.getMessage());
    }
    verify(cohortDao, times(1)).findOne(cohortId);
    verify(workspaceService, times(1)).getRequired(namespace, name);
    verify(workspaceService).enforceWorkspaceAccessLevel(namespace, name, WorkspaceAccessLevel.WRITER);
    verifyNoMoreMockInteractions();
}
Also used : Cohort(org.pmiops.workbench.db.model.Cohort) NotFoundException(org.pmiops.workbench.exceptions.NotFoundException) WorkspaceAccessLevel(org.pmiops.workbench.model.WorkspaceAccessLevel) Workspace(org.pmiops.workbench.db.model.Workspace) Test(org.junit.Test)

Example 22 with WorkspaceAccessLevel

use of org.pmiops.workbench.model.WorkspaceAccessLevel in project workbench by all-of-us.

the class CohortAnnotationDefinitionControllerTest method updateCohortAnnotationDefinition_BadCohortId.

@Test
public void updateCohortAnnotationDefinition_BadCohortId() throws Exception {
    String namespace = "aou-test";
    String name = "test";
    long cohortId = 1;
    long annotationDefinitionId = 1;
    ModifyCohortAnnotationDefinitionRequest request = new ModifyCohortAnnotationDefinitionRequest();
    WorkspaceAccessLevel owner = WorkspaceAccessLevel.OWNER;
    when(workspaceService.enforceWorkspaceAccessLevel(namespace, name, WorkspaceAccessLevel.WRITER)).thenReturn(owner);
    when(cohortDao.findOne(cohortId)).thenReturn(null);
    try {
        cohortAnnotationDefinitionController.updateCohortAnnotationDefinition(namespace, name, cohortId, annotationDefinitionId, request);
        fail("Should have thrown a NotFoundException!");
    } catch (NotFoundException e) {
        assertEquals("Not Found: No Cohort exists for cohortId: " + cohortId, e.getMessage());
    }
    verify(cohortDao, times(1)).findOne(cohortId);
    verify(workspaceService).enforceWorkspaceAccessLevel(namespace, name, WorkspaceAccessLevel.WRITER);
    verifyNoMoreMockInteractions();
}
Also used : ModifyCohortAnnotationDefinitionRequest(org.pmiops.workbench.model.ModifyCohortAnnotationDefinitionRequest) NotFoundException(org.pmiops.workbench.exceptions.NotFoundException) WorkspaceAccessLevel(org.pmiops.workbench.model.WorkspaceAccessLevel) Test(org.junit.Test)

Example 23 with WorkspaceAccessLevel

use of org.pmiops.workbench.model.WorkspaceAccessLevel in project workbench by all-of-us.

the class CohortAnnotationDefinitionControllerTest method getCohortAnnotationDefinitions.

@Test
public void getCohortAnnotationDefinitions() throws Exception {
    String namespace = "aou-test";
    String name = "test";
    long cohortId = 1;
    long workspaceId = 1;
    Cohort cohort = createCohort(workspaceId);
    Workspace workspace = createWorkspace(namespace, name, workspaceId);
    WorkspaceAccessLevel owner = WorkspaceAccessLevel.OWNER;
    when(cohortDao.findOne(cohortId)).thenReturn(cohort);
    when(workspaceService.getRequired(namespace, name)).thenReturn(workspace);
    when(cohortAnnotationDefinitionDao.findByCohortId(cohortId)).thenReturn(new ArrayList<>());
    when(workspaceService.enforceWorkspaceAccessLevel(namespace, name, WorkspaceAccessLevel.READER)).thenReturn(owner);
    cohortAnnotationDefinitionController.getCohortAnnotationDefinitions(namespace, name, cohortId);
    verify(cohortDao, times(1)).findOne(cohortId);
    verify(workspaceService, times(1)).getRequired(namespace, name);
    verify(cohortAnnotationDefinitionDao, times(1)).findByCohortId(cohortId);
    verify(workspaceService).enforceWorkspaceAccessLevel(namespace, name, WorkspaceAccessLevel.READER);
    verifyNoMoreMockInteractions();
}
Also used : Cohort(org.pmiops.workbench.db.model.Cohort) WorkspaceAccessLevel(org.pmiops.workbench.model.WorkspaceAccessLevel) Workspace(org.pmiops.workbench.db.model.Workspace) Test(org.junit.Test)

Example 24 with WorkspaceAccessLevel

use of org.pmiops.workbench.model.WorkspaceAccessLevel in project workbench by all-of-us.

the class WorkspaceServiceImpl method getWorkspaceAccessLevel.

@Override
public WorkspaceAccessLevel getWorkspaceAccessLevel(String workspaceNamespace, String workspaceId) {
    String userAccess;
    try {
        userAccess = fireCloudService.getWorkspace(workspaceNamespace, workspaceId).getAccessLevel();
    } catch (org.pmiops.workbench.firecloud.ApiException e) {
        if (e.getCode() == 404) {
            throw new NotFoundException(String.format("Workspace %s/%s not found", workspaceNamespace, workspaceId));
        } else {
            throw new ServerErrorException(e.getResponseBody());
        }
    }
    if (userAccess.equals(PROJECT_OWNER_ACCESS_LEVEL)) {
        return WorkspaceAccessLevel.OWNER;
    }
    WorkspaceAccessLevel result = WorkspaceAccessLevel.fromValue(userAccess);
    if (result == null) {
        throw new ServerErrorException("Unrecognized access level: " + userAccess);
    }
    return result;
}
Also used : NotFoundException(org.pmiops.workbench.exceptions.NotFoundException) ApiException(org.pmiops.workbench.firecloud.ApiException) ServerErrorException(org.pmiops.workbench.exceptions.ServerErrorException) WorkspaceAccessLevel(org.pmiops.workbench.model.WorkspaceAccessLevel)

Aggregations

WorkspaceAccessLevel (org.pmiops.workbench.model.WorkspaceAccessLevel)24 Test (org.junit.Test)23 Workspace (org.pmiops.workbench.db.model.Workspace)17 NotFoundException (org.pmiops.workbench.exceptions.NotFoundException)16 Cohort (org.pmiops.workbench.db.model.Cohort)15 CohortAnnotationDefinition (org.pmiops.workbench.model.CohortAnnotationDefinition)6 ModifyCohortAnnotationDefinitionRequest (org.pmiops.workbench.model.ModifyCohortAnnotationDefinitionRequest)5 ConflictException (org.pmiops.workbench.exceptions.ConflictException)2 ServerErrorException (org.pmiops.workbench.exceptions.ServerErrorException)1 ApiException (org.pmiops.workbench.firecloud.ApiException)1 Cohort (org.pmiops.workbench.model.Cohort)1 EmptyResponse (org.pmiops.workbench.model.EmptyResponse)1 MaterializeCohortRequest (org.pmiops.workbench.model.MaterializeCohortRequest)1 DataJpaTest (org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest)1