QuestionGroupController extends QuestionnaireController { public List<SectionQuestionDetail> getAllSectionQuestions() { List<SectionQuestionDetail> sectionQuestionDetails = new ArrayList<SectionQuestionDetail>(); List<QuestionDetail> questionDetails = questionnaireServiceFacade.getAllActiveQuestions(); if (questionDetails != null) { for (QuestionDetail questionDetail : questionDetails) { sectionQuestionDetails.add(new SectionQuestionDetail(questionDetail, false)); } } return sectionQuestionDetails; } @SuppressWarnings({"UnusedDeclaration"})  QuestionGroupController();  QuestionGroupController(QuestionnaireServiceFacade questionnaireServiceFacade); @RequestMapping("/viewQuestionGroups.ftl") String getAllQuestionGroups(ModelMap model, HttpServletRequest request); @RequestMapping("/viewQuestionGroupDetail.ftl") String getQuestionGroup(ModelMap model, HttpServletRequest httpServletRequest); @RequestMapping(value="/getHiddenVisibleQuestions.ftl", method=RequestMethod.POST) @ResponseBody Map<String, Map<Integer, Boolean>> getHiddenVisibleQuestions(
            @RequestParam Integer questionId, @RequestParam String response); @RequestMapping(value="/hideAttachedQuestions.ftl", method=RequestMethod.POST) @ResponseBody Map<String, List<String>> hideAttachedQuestions(
            @RequestParam String questionsId, @RequestParam String sectionsId); @SuppressWarnings({"ThrowableInstanceNeverThrown"}) String defineQuestionGroup(QuestionGroupForm questionGroupForm, RequestContext requestContext, boolean createMode); Map<String, String> getAllQgEventSources(); QuestionLinkDetail setQuestionLinkDetail(QuestionGroupForm questionGroupForm, String sourceQuestionId, 
            String affectedQuestionId, String value, String additionalValue, String linkType, String linkTypeDisplay); SectionLinkDetail setSectionLinkDetail(QuestionGroupForm questionGroupForm, String sourceQuestionId, 
            String affectedSectionName, String value, String additionalValue, String linkType, String linkTypeDisplay); SectionQuestionDetail findQuestionDetailById(QuestionGroupDetail questionGroupDetail, String questionId); SectionQuestionDetail findQuestionDetailByNickname(QuestionGroupDetail questionGroupDetail, String nickname); SectionDetail findSectionDetailByName(QuestionGroupDetail questionGroupDetail, String sectionName); List<QuestionLinkDetail> setFilledQuestionDetailForQuestionLinks(List<QuestionLinkDetail> questionLinkDetails, QuestionGroupDetail questionGroupDetail); List<SectionLinkDetail> setFilledSectionDetailForQuestionLinks(List<SectionLinkDetail> sectionLinkDetails, QuestionGroupDetail questionGroupDetail); String addLink(QuestionGroupForm questionGroupForm,
            String sourceQuestionId, String linkType, String appliesTo,
            String affectedQuestionId, String affectedSectionName,
            String value, String additionalValue, Map<String, String> linkTypes, RequestContext requestContext); String removeLink(QuestionGroupForm questionGroupForm,
            String sourceQuestionId, String affectedQuestionId, String affectedSectionName, String value, String additionalValue, RequestContext requestContext); String addSection(QuestionGroupForm questionGroupForm, RequestContext requestContext); String deleteSection(QuestionGroupForm questionGroupForm, String sectionName); String deleteQuestion(QuestionGroupForm questionGroupForm, String sectionName, String questionId); String moveQuestionUp(QuestionGroupForm questionGroupForm, String sectionName, String questionId); String moveQuestionDown(QuestionGroupForm questionGroupForm, String sectionName, String questionId); String moveSectionUp(QuestionGroupForm questionGroupForm, String sectionName); String moveSectionDown(QuestionGroupForm questionGroupForm, String sectionName); List<SectionQuestionDetail> getAllSectionQuestions(); List<SectionQuestionDetail> getAllSectionQuestions(QuestionGroupForm questionGroupForm); Map<String, String> getAllLinkTypes(); String saveQuestionnaire(QuestionGroupDetails questionGroupDetails, int questionGroupIndex, RequestContext requestContext); String addQuestion(QuestionGroupForm questionGroupForm, RequestContext requestContext); String addSmartChoiceTag(QuestionGroupForm questionGroupForm, RequestContext requestContext, int choiceIndex);  }
@Test public void shouldGetAllSectionQuestions() { when(questionnaireServiceFacade.getAllActiveQuestions()).thenReturn(asList(getQuestionDetail(1, "Q1", QuestionType.NUMERIC), getQuestionDetail(2, "Q2", QuestionType.DATE))); List<SectionQuestionDetail> sectionQuestions = questionGroupController.getAllSectionQuestions(); assertThat(sectionQuestions, Is.is(notNullValue())); assertThat(sectionQuestions.size(), Is.is(2)); assertThat(sectionQuestions.get(0).getQuestionId(), Is.is(1)); assertThat(sectionQuestions.get(0).getText(), Is.is("Q1")); assertThat(sectionQuestions.get(1).getQuestionId(), Is.is(2)); assertThat(sectionQuestions.get(1).getText(), Is.is("Q2")); verify(questionnaireServiceFacade).getAllActiveQuestions(); }
@Test public void shouldGetAllSectionQuestionsWithoutExcludedQuestions() { List<Integer> excludedQuestions = asList(3); List<QuestionDetail> questionDetails = asList(getQuestionDetail(1, "Q1", QuestionType.NUMERIC), getQuestionDetail(2, "Q2", QuestionType.DATE)); when(questionnaireServiceFacade.getAllActiveQuestions(excludedQuestions)).thenReturn(questionDetails); QuestionGroupForm questionGroupForm = getQuestionGroupFormWithOneSectionQuestion("QG1", 3); List<SectionQuestionDetail> sectionQuestions = questionGroupController.getAllSectionQuestions(questionGroupForm); assertThat(sectionQuestions, Is.is(notNullValue())); assertThat(sectionQuestions.size(), Is.is(2)); assertThat(sectionQuestions.get(0).getQuestionId(), Is.is(1)); assertThat(sectionQuestions.get(0).getText(), Is.is("Q1")); assertThat(sectionQuestions.get(1).getQuestionId(), Is.is(2)); assertThat(sectionQuestions.get(1).getText(), Is.is("Q2")); verify(questionnaireServiceFacade).getAllActiveQuestions(excludedQuestions); }
@Test public void shouldGetAllSectionQuestionsEmpty() { when(questionnaireServiceFacade.getAllActiveQuestions()).thenReturn(null); List<SectionQuestionDetail> sectionQuestions = questionGroupController.getAllSectionQuestions(); assertThat(sectionQuestions, Is.is(notNullValue())); assertThat(sectionQuestions.size(), Is.is(0)); verify(questionnaireServiceFacade).getAllActiveQuestions(); }