use of org.pmiops.workbench.model.CohortAnnotationDefinition in project workbench by all-of-us.
the class CohortAnnotationDefinitionControllerTest method createCohortAnnotationDefinition.
@Test
public void createCohortAnnotationDefinition() throws Exception {
String namespace = "aou-test";
String name = "test";
long cohortId = 1;
long workspaceId = 1;
long annotationDefinitionId = 1;
final String columnName = "testing";
Cohort cohort = createCohort(workspaceId);
Workspace workspace = createWorkspace(namespace, name, workspaceId);
CohortAnnotationDefinition request = createClientCohortAnnotationDefinition(annotationDefinitionId, cohortId, columnName, AnnotationType.STRING);
org.pmiops.workbench.db.model.CohortAnnotationDefinition dbCohortAnnotationDefinition = createDBCohortAnnotationDefinition(cohortId, annotationDefinitionId, request.getAnnotationType(), request.getColumnName());
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);
when(cohortAnnotationDefinitionDao.save(dbCohortAnnotationDefinition)).thenReturn(dbCohortAnnotationDefinition);
when(cohortAnnotationDefinitionDao.findByCohortIdAndColumnName(cohortId, columnName)).thenReturn(null);
CohortAnnotationDefinition expectedResponse = createClientCohortAnnotationDefinition(annotationDefinitionId, cohortId, columnName, AnnotationType.STRING);
CohortAnnotationDefinition response = cohortAnnotationDefinitionController.createCohortAnnotationDefinition(namespace, name, cohortId, request).getBody();
assertEquals(expectedResponse, response);
verify(cohortDao, times(1)).findOne(cohortId);
verify(workspaceService, times(1)).getRequired(namespace, name);
verify(cohortAnnotationDefinitionDao, times(1)).save(dbCohortAnnotationDefinition);
verify(cohortAnnotationDefinitionDao, times(1)).findByCohortIdAndColumnName(cohortId, columnName);
verify(workspaceService).enforceWorkspaceAccessLevel(namespace, name, WorkspaceAccessLevel.WRITER);
verifyNoMoreMockInteractions();
}
use of org.pmiops.workbench.model.CohortAnnotationDefinition in project workbench by all-of-us.
the class CohortAnnotationDefinitionControllerTest method createClientCohortAnnotationDefinition.
private CohortAnnotationDefinition createClientCohortAnnotationDefinition(long annotationDefinitionId, long cohortId, String columnName, AnnotationType annotationType) {
CohortAnnotationDefinition request = new CohortAnnotationDefinition();
request.setCohortAnnotationDefinitionId(annotationDefinitionId);
request.setCohortId(cohortId);
request.setColumnName(columnName);
request.setAnnotationType(AnnotationType.STRING);
request.setEnumValues(new ArrayList<>());
return request;
}
Aggregations