Search in sources :

Example 56 with QuestionDetail

use of org.mifos.platform.questionnaire.service.QuestionDetail in project head by mifos.

the class QuestionnaireMapperTest method shouldMapQuestionToQuestionDetail.

@Test
public void shouldMapQuestionToQuestionDetail() {
    QuestionEntity question = getQuestion(TITLE, AnswerType.FREETEXT);
    question.setQuestionState(QuestionState.INACTIVE);
    QuestionDetail questionDetail = questionnaireMapper.mapToQuestionDetail(question);
    assertQuestionDetail(questionDetail, TITLE, QuestionType.FREETEXT);
    assertThat(questionDetail.isActive(), is(false));
    question = getQuestion(TITLE, AnswerType.MULTISELECT, asList(new QuestionChoiceEntity("choice1"), new QuestionChoiceEntity("choice2")));
    question.setQuestionState(QuestionState.ACTIVE);
    questionDetail = questionnaireMapper.mapToQuestionDetail(question);
    assertQuestionDetail(questionDetail, TITLE, QuestionType.MULTI_SELECT, asList("choice1", "choice2"));
    assertThat(questionDetail.isActive(), is(true));
    question = getQuestion(TITLE, AnswerType.NUMBER);
    question.setNumericMin(10);
    question.setNumericMax(100);
    questionDetail = questionnaireMapper.mapToQuestionDetail(question);
    assertQuestionDetail(questionDetail, TITLE, QuestionType.NUMERIC);
    assertThat(questionDetail.getNumericMin(), is(10));
    assertThat(questionDetail.getNumericMax(), is(100));
    assertThat(questionDetail.isActive(), is(true));
}
Also used : QuestionChoiceEntity(org.mifos.platform.questionnaire.domain.QuestionChoiceEntity) QuestionEntity(org.mifos.platform.questionnaire.domain.QuestionEntity) QuestionDetail(org.mifos.platform.questionnaire.service.QuestionDetail) SectionQuestionDetail(org.mifos.platform.questionnaire.service.SectionQuestionDetail) Test(org.junit.Test)

Example 57 with QuestionDetail

use of org.mifos.platform.questionnaire.service.QuestionDetail in project head by mifos.

the class QuestionnaireMapperTest method shouldMapSingleSelectQuestionDetailToQuestion.

@Test
public void shouldMapSingleSelectQuestionDetailToQuestion() {
    ChoiceDto choice1 = new ChoiceDto("choice1");
    ChoiceDto choice2 = new ChoiceDto("choice2");
    QuestionDetail questionDefinition = new QuestionDetail(TITLE, QuestionType.SINGLE_SELECT);
    questionDefinition.setAnswerChoices(asList(choice1, choice2));
    QuestionEntity question = questionnaireMapper.mapToQuestion(questionDefinition);
    assertThat(question.getAnswerTypeAsEnum(), is(AnswerType.SINGLESELECT));
    assertThat(question.getQuestionText(), is(TITLE));
    assertThat(question.getChoices(), new QuestionChoicesMatcher(asList(new QuestionChoiceEntity(choice1.getValue()), new QuestionChoiceEntity(choice2.getValue()))));
}
Also used : QuestionChoiceEntity(org.mifos.platform.questionnaire.domain.QuestionChoiceEntity) QuestionEntity(org.mifos.platform.questionnaire.domain.QuestionEntity) ChoiceDto(org.mifos.platform.questionnaire.service.dtos.ChoiceDto) QuestionDetail(org.mifos.platform.questionnaire.service.QuestionDetail) SectionQuestionDetail(org.mifos.platform.questionnaire.service.SectionQuestionDetail) QuestionChoicesMatcher(org.mifos.platform.questionnaire.matchers.QuestionChoicesMatcher) Test(org.junit.Test)

Example 58 with QuestionDetail

use of org.mifos.platform.questionnaire.service.QuestionDetail in project head by mifos.

the class QuestionnaireMapperTest method shouldMapMultiSelectQuestionDetailToQuestion.

@Test
public void shouldMapMultiSelectQuestionDetailToQuestion() {
    ChoiceDto choice1 = new ChoiceDto("choice1");
    ChoiceDto choice2 = new ChoiceDto("choice2");
    QuestionDetail questionDefinition = new QuestionDetail(TITLE, QuestionType.MULTI_SELECT);
    questionDefinition.setAnswerChoices(asList(choice1, choice2));
    QuestionEntity question = questionnaireMapper.mapToQuestion(questionDefinition);
    assertThat(question.getAnswerTypeAsEnum(), is(AnswerType.MULTISELECT));
    assertThat(question.getQuestionText(), is(TITLE));
    assertThat(question.getChoices(), new QuestionChoicesMatcher(asList(new QuestionChoiceEntity(choice1.getValue()), new QuestionChoiceEntity(choice2.getValue()))));
    assertThat(question.getQuestionStateAsEnum(), is(QuestionState.ACTIVE));
}
Also used : QuestionChoiceEntity(org.mifos.platform.questionnaire.domain.QuestionChoiceEntity) QuestionEntity(org.mifos.platform.questionnaire.domain.QuestionEntity) ChoiceDto(org.mifos.platform.questionnaire.service.dtos.ChoiceDto) QuestionDetail(org.mifos.platform.questionnaire.service.QuestionDetail) SectionQuestionDetail(org.mifos.platform.questionnaire.service.SectionQuestionDetail) QuestionChoicesMatcher(org.mifos.platform.questionnaire.matchers.QuestionChoicesMatcher) Test(org.junit.Test)

Example 59 with QuestionDetail

use of org.mifos.platform.questionnaire.service.QuestionDetail in project head by mifos.

the class QuestionnaireMapperTest method shouldMapSmartSelectQuestionDetailToQuestion.

@Test
public void shouldMapSmartSelectQuestionDetailToQuestion() {
    ChoiceDto choice1 = new ChoiceDto("choice1");
    choice1.setTags(asList("Tag1", "Tag2"));
    ChoiceDto choice2 = new ChoiceDto("choice2");
    choice2.setTags(asList("Tag3"));
    QuestionDetail questionDefinition = new QuestionDetail(TITLE, QuestionType.SMART_SELECT);
    questionDefinition.setActive(true);
    questionDefinition.setAnswerChoices(asList(choice1, choice2));
    QuestionEntity question = questionnaireMapper.mapToQuestion(questionDefinition);
    assertThat(question.getAnswerTypeAsEnum(), is(AnswerType.SMARTSELECT));
    assertThat(question.getQuestionText(), is(TITLE));
    assertThat(question.getChoices(), new QuestionChoicesMatcher(asList(getChoiceEntity("choice1", "Tag1", "Tag2"), getChoiceEntity("choice2", "Tag3"))));
    assertThat(question.getQuestionStateAsEnum(), is(QuestionState.ACTIVE));
}
Also used : QuestionEntity(org.mifos.platform.questionnaire.domain.QuestionEntity) ChoiceDto(org.mifos.platform.questionnaire.service.dtos.ChoiceDto) QuestionDetail(org.mifos.platform.questionnaire.service.QuestionDetail) SectionQuestionDetail(org.mifos.platform.questionnaire.service.SectionQuestionDetail) QuestionChoicesMatcher(org.mifos.platform.questionnaire.matchers.QuestionChoicesMatcher) Test(org.junit.Test)

Example 60 with QuestionDetail

use of org.mifos.platform.questionnaire.service.QuestionDetail in project head by mifos.

the class QuestionnaireMapperTest method shouldMapToQuestionGroupInstances.

@Test
public void shouldMapToQuestionGroupInstances() {
    QuestionGroup questionGroup1 = new QuestionGroup();
    questionGroup1.setId(10);
    when(questionGroupDao.getDetails(10)).thenReturn(questionGroup1);
    QuestionGroup questionGroup2 = new QuestionGroup();
    questionGroup2.setId(11);
    when(questionGroupDao.getDetails(11)).thenReturn(questionGroup2);
    SectionQuestion sectionQuestion1 = new SectionQuestion();
    sectionQuestion1.setId(14);
    when(sectionQuestionDao.getDetails(14)).thenReturn(sectionQuestion1);
    SectionQuestion sectionQuestion2 = new SectionQuestion();
    sectionQuestion2.setId(15);
    when(sectionQuestionDao.getDetails(15)).thenReturn(sectionQuestion2);
    QuestionGroupInstance questionGroupInstance = new QuestionGroupInstance();
    questionGroupInstance.setVersionNum(3);
    when(questionGroupInstanceDao.retrieveLatestQuestionGroupInstanceByQuestionGroupAndEntity(201, 10)).thenReturn(asList(questionGroupInstance));
    when(questionGroupInstanceDao.retrieveLatestQuestionGroupInstanceByQuestionGroupAndEntity(201, 11)).thenReturn(asList(questionGroupInstance));
    List<QuestionDetail> questionDetails1 = asList(new QuestionDetail(12, "Question 1", QuestionType.FREETEXT, true, true));
    List<SectionDetail> sectionDetails1 = asList(getSectionDetailWithQuestions(14, "Sec1", questionDetails1, "value", null));
    QuestionGroupDetail questionGroupDetail1 = new QuestionGroupDetail(10, "QG1", Arrays.asList(new EventSourceDto("Create", "Client", null)), sectionDetails1, true);
    List<QuestionDetail> questionDetails2 = asList(new QuestionDetail(13, "Question 2", QuestionType.DATE, true, true));
    List<SectionDetail> sectionDetails2 = asList(getSectionDetailWithQuestions(15, "Sec2", questionDetails2, null, null));
    QuestionGroupDetail questionGroupDetail2 = new QuestionGroupDetail(11, "QG2", Arrays.asList(new EventSourceDto("Create", "Client", null)), sectionDetails2, true);
    QuestionDetail questionDetail1 = new QuestionDetail(13, "Question 3", QuestionType.MULTI_SELECT, true, true);
    questionDetail1.setAnswerChoices(asList(getChoiceDto("a1"), getChoiceDto("a2"), getChoiceDto("a3")));
    List<QuestionDetail> questionDetails3 = asList(questionDetail1);
    List<SectionDetail> sectionDetails3 = asList(getSectionDetailWithQuestions(15, "Sec2", questionDetails3, null, asList("a2", "a3")));
    QuestionGroupDetail questionGroupDetail3 = new QuestionGroupDetail(11, "QG2", Arrays.asList(new EventSourceDto("Create", "Client", null)), sectionDetails3, true);
    QuestionDetail questionDetail2 = new QuestionDetail(13, "Question 4", QuestionType.SMART_SELECT, true, true);
    questionDetail2.setAnswerChoices(asList(getChoiceDto("a1", "Tag1", "Tag2"), getChoiceDto("a2", "Tag11", "Tag22"), getChoiceDto("a3", "Tag111", "Tag222")));
    questionDetails3 = asList(questionDetail2);
    sectionDetails3 = asList(getSectionDetailWithQuestions(15, "Sec2", questionDetails3, asList(getSelectionDetail("a1", "Tag2"), getSelectionDetail("a3", "Tag111"))));
    QuestionGroupDetail questionGroupDetail4 = new QuestionGroupDetail(11, "QG2", Arrays.asList(new EventSourceDto("Create", "Client", null)), sectionDetails3, true);
    List<QuestionGroupInstance> questionGroupInstances = questionnaireMapper.mapToQuestionGroupInstances(new QuestionGroupDetails(101, 201, 1, asList(questionGroupDetail1, questionGroupDetail2, questionGroupDetail3, questionGroupDetail4)));
    assertThat(questionGroupInstances, is(notNullValue()));
    assertThat(questionGroupInstances.size(), is(4));
    QuestionGroupInstance questionGroupInstance1 = questionGroupInstances.get(0);
    assertThat(questionGroupInstance1.getQuestionGroup().getId(), is(10));
    assertThat(questionGroupInstance1.getCompletedStatus(), is(1));
    assertThat(questionGroupInstance1.getCreatorId(), is(101));
    assertThat(questionGroupInstance1.getDateConducted(), is(notNullValue()));
    assertThat(questionGroupInstance1.getEntityId(), is(201));
    assertThat(questionGroupInstance1.getVersionNum(), is(4));
    List<QuestionGroupResponse> questionGroupResponses1 = questionGroupInstance1.getQuestionGroupResponses();
    assertThat(questionGroupResponses1, is(notNullValue()));
    assertThat(questionGroupResponses1.size(), is(1));
    QuestionGroupResponse questionGroupResponse = questionGroupResponses1.get(0);
    assertThat(questionGroupResponse.getResponse(), is("value"));
    assertThat(questionGroupResponse.getSectionQuestion().getId(), is(14));
    QuestionGroupInstance questionGroupInstance2 = questionGroupInstances.get(1);
    assertThat(questionGroupInstance2.getQuestionGroup().getId(), is(11));
    assertThat(questionGroupInstance2.getCompletedStatus(), is(1));
    assertThat(questionGroupInstance2.getCreatorId(), is(101));
    assertThat(questionGroupInstance2.getDateConducted(), is(notNullValue()));
    assertThat(questionGroupInstance2.getEntityId(), is(201));
    assertThat(questionGroupInstance2.getVersionNum(), is(4));
    List<QuestionGroupResponse> questionGroupResponses2 = questionGroupInstance2.getQuestionGroupResponses();
    assertThat(questionGroupResponses2, is(notNullValue()));
    assertThat(questionGroupResponses2.size(), is(0));
    QuestionGroupInstance questionGroupInstance3 = questionGroupInstances.get(2);
    assertThat(questionGroupInstance3.getQuestionGroup().getId(), is(11));
    assertThat(questionGroupInstance3.getCompletedStatus(), is(1));
    assertThat(questionGroupInstance3.getCreatorId(), is(101));
    assertThat(questionGroupInstance3.getDateConducted(), is(notNullValue()));
    assertThat(questionGroupInstance3.getEntityId(), is(201));
    assertThat(questionGroupInstance3.getVersionNum(), is(4));
    List<QuestionGroupResponse> questionGroupResponses3 = questionGroupInstance3.getQuestionGroupResponses();
    assertThat(questionGroupInstance3, is(notNullValue()));
    assertThat(questionGroupResponses3.size(), is(2));
    assertThat(questionGroupResponses3.get(0).getResponse(), is("a2"));
    assertThat(questionGroupResponses3.get(1).getResponse(), is("a3"));
    QuestionGroupInstance questionGroupInstance4 = questionGroupInstances.get(3);
    List<QuestionGroupResponse> questionGroupResponses4 = questionGroupInstance4.getQuestionGroupResponses();
    assertThat(questionGroupInstance4, is(notNullValue()));
    assertThat(questionGroupResponses4.size(), is(2));
    assertThat(questionGroupResponses4.get(0).getResponse(), is("a1"));
    assertThat(questionGroupResponses4.get(0).getTag(), is("Tag2"));
    assertThat(questionGroupResponses4.get(1).getResponse(), is("a3"));
    assertThat(questionGroupResponses4.get(1).getTag(), is("Tag111"));
    verify(questionGroupInstanceDao, times(1)).retrieveLatestQuestionGroupInstanceByQuestionGroupAndEntity(201, 10);
    verify(questionGroupInstanceDao, times(3)).retrieveLatestQuestionGroupInstanceByQuestionGroupAndEntity(201, 11);
}
Also used : QuestionGroupDetail(org.mifos.platform.questionnaire.service.QuestionGroupDetail) QuestionGroupInstance(org.mifos.platform.questionnaire.domain.QuestionGroupInstance) QuestionGroupDetails(org.mifos.platform.questionnaire.service.QuestionGroupDetails) SectionDetail(org.mifos.platform.questionnaire.service.SectionDetail) QuestionDetail(org.mifos.platform.questionnaire.service.QuestionDetail) SectionQuestionDetail(org.mifos.platform.questionnaire.service.SectionQuestionDetail) EventSourceDto(org.mifos.platform.questionnaire.service.dtos.EventSourceDto) QuestionGroupResponse(org.mifos.platform.questionnaire.domain.QuestionGroupResponse) SectionQuestion(org.mifos.platform.questionnaire.domain.SectionQuestion) QuestionGroup(org.mifos.platform.questionnaire.domain.QuestionGroup) Test(org.junit.Test)

Aggregations

QuestionDetail (org.mifos.platform.questionnaire.service.QuestionDetail)72 SectionQuestionDetail (org.mifos.platform.questionnaire.service.SectionQuestionDetail)55 Test (org.junit.Test)44 SectionDetail (org.mifos.platform.questionnaire.service.SectionDetail)24 Question (org.mifos.platform.questionnaire.ui.model.Question)16 ChoiceDto (org.mifos.platform.questionnaire.service.dtos.ChoiceDto)13 ArrayList (java.util.ArrayList)11 SystemException (org.mifos.framework.exceptions.SystemException)11 QuestionEntity (org.mifos.platform.questionnaire.domain.QuestionEntity)9 QuestionGroupDetail (org.mifos.platform.questionnaire.service.QuestionGroupDetail)8 ValidationException (org.mifos.platform.validations.ValidationException)5 QuestionForm (org.mifos.platform.questionnaire.ui.model.QuestionForm)4 Matchers.anyString (org.mockito.Matchers.anyString)4 QuestionChoiceEntity (org.mifos.platform.questionnaire.domain.QuestionChoiceEntity)3 SectionQuestion (org.mifos.platform.questionnaire.domain.SectionQuestion)3 BadNumericResponseException (org.mifos.platform.questionnaire.exceptions.BadNumericResponseException)3 QuestionChoicesMatcher (org.mifos.platform.questionnaire.matchers.QuestionChoicesMatcher)3 EventSourceDto (org.mifos.platform.questionnaire.service.dtos.EventSourceDto)3 QuestionGroupForm (org.mifos.platform.questionnaire.ui.model.QuestionGroupForm)3 QuestionGroupDetails (org.mifos.platform.questionnaire.service.QuestionGroupDetails)2