use of org.molgenis.questionnaires.meta.Questionnaire in project molgenis by molgenis.
the class QuestionnaireServiceImpl method createQuestionnaireResponse.
/**
* Create a {@link QuestionnaireResponse} based on an {@link EntityType}
* Will set status to {@link QuestionnaireStatus}.OPEN if there is a data entry for the current user.
*
* @param entityType A Questionnaire EntityType
* @return A {@link QuestionnaireResponse}
*/
private QuestionnaireResponse createQuestionnaireResponse(EntityType entityType) {
String entityTypeId = entityType.getId();
QuestionnaireStatus status = NOT_STARTED;
Questionnaire questionnaireEntity = findQuestionnaireEntity(entityTypeId);
if (questionnaireEntity != null) {
status = questionnaireEntity.getStatus();
}
return QuestionnaireResponse.create(entityTypeId, entityType.getLabel(), entityType.getDescription(), status);
}
use of org.molgenis.questionnaires.meta.Questionnaire in project molgenis by molgenis.
the class QuestionnaireServiceImpl method startQuestionnaire.
@Override
public void startQuestionnaire(String id) {
Questionnaire questionnaire = findQuestionnaireEntity(id);
if (questionnaire == null) {
EntityType questionnaireEntityType = dataService.getEntityType(id);
questionnaire = questionnaireFactory.create(entityManager.create(questionnaireEntityType, POPULATE));
questionnaire.setOwner(getCurrentUsername());
questionnaire.setStatus(OPEN);
dataService.add(id, questionnaire);
}
}
use of org.molgenis.questionnaires.meta.Questionnaire in project molgenis by molgenis.
the class QuestionnaireServiceTest method testGetQuestionnaires.
@Test
public void testGetQuestionnaires() {
// =========== Setup ===========
EntityType entityType = mock(EntityType.class);
when(entityType.getId()).thenReturn(QUESTIONNAIRE_ID);
when(entityType.getLabel()).thenReturn("label");
when(entityType.getDescription()).thenReturn("description");
Query<EntityType> typedQuery = mock(Query.class);
Query<EntityType> query = mock(Query.class);
when(typedQuery.eq(EntityTypeMetadata.EXTENDS, QUESTIONNAIRE)).thenReturn(query);
when(dataService.query(ENTITY_TYPE_META_DATA, EntityType.class)).thenReturn(typedQuery);
when(query.findAll()).thenReturn(Stream.of(entityType));
when(userPermissionEvaluator.hasPermission(new EntityTypeIdentity(QUESTIONNAIRE_ID), WRITE)).thenReturn(true);
Entity entity = mock(Entity.class);
when(dataService.findOne(QUESTIONNAIRE_ID, EQ(OWNER_USERNAME, null))).thenReturn(entity);
Questionnaire questionnaire = mock(Questionnaire.class);
when(questionnaire.getStatus()).thenReturn(OPEN);
when(questionnaireFactory.create(entity)).thenReturn(questionnaire);
// =========== Test ===========
List<QuestionnaireResponse> actual = questionnaireService.getQuestionnaires();
QuestionnaireResponse questionnaireResponse = QuestionnaireResponse.create(QUESTIONNAIRE_ID, "label", "description", OPEN);
List<QuestionnaireResponse> expected = newArrayList(questionnaireResponse);
assertEquals(actual, expected);
}
use of org.molgenis.questionnaires.meta.Questionnaire in project molgenis by molgenis.
the class QuestionnaireServiceTest method testStartQuestionnaire.
@Test
public void testStartQuestionnaire() {
// =========== Setup ===========
Entity entity = null;
when(dataService.findOne(QUESTIONNAIRE_ID, EQ(OWNER_USERNAME, null))).thenReturn(entity);
when(questionnaireFactory.create(entity)).thenReturn(null);
EntityType entityType = mock(EntityType.class);
when(dataService.getEntityType(QUESTIONNAIRE_ID)).thenReturn(entityType);
Entity questionnaireEntity = mock(Entity.class);
when(entityManager.create(entityType, POPULATE)).thenReturn(questionnaireEntity);
Questionnaire questionnaire = mock(Questionnaire.class);
when(questionnaireFactory.create(questionnaireEntity)).thenReturn(questionnaire);
// =========== Test ===========
questionnaireService.startQuestionnaire(QUESTIONNAIRE_ID);
verify(dataService).add(QUESTIONNAIRE_ID, questionnaire);
}
use of org.molgenis.questionnaires.meta.Questionnaire in project molgenis by molgenis.
the class QuestionnaireServiceTest method testStartQuestionnaireAlreadyOpen.
@Test
public void testStartQuestionnaireAlreadyOpen() {
// =========== Setup ===========
Entity entity = mock(Entity.class);
when(dataService.findOne(QUESTIONNAIRE_ID, EQ(OWNER_USERNAME, null))).thenReturn(entity);
Questionnaire questionnaire = mock(Questionnaire.class);
when(questionnaireFactory.create(entity)).thenReturn(questionnaire);
// =========== Test ===========
questionnaireService.startQuestionnaire(QUESTIONNAIRE_ID);
verify(dataService, times(0)).add(QUESTIONNAIRE_ID, questionnaire);
}
Aggregations