Class: DaVinciDTRTestKit::DTRCustomNextQuestionResponseValidationTest
- Inherits:
-
Inferno::Test
- Object
- Inferno::Test
- DaVinciDTRTestKit::DTRCustomNextQuestionResponseValidationTest
- Defined in:
- lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb
Instance Method Summary collapse
- #extract_link_ids(questionnaire_items) ⇒ Object
- #next_request_tag ⇒ Object
- #validate_correctness_of_custom_next_questionnaire(custom_questionnaire, contained_questionnaire) ⇒ Object
Instance Method Details
#extract_link_ids(questionnaire_items) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb', line 39 def extract_link_ids(questionnaire_items) questionnaire_items&.each_with_object([]) do |item, link_ids| link_ids << item.linkId link_ids.concat(extract_link_ids(item.item)) if item.item.present? end end |
#next_request_tag ⇒ Object
35 36 37 |
# File 'lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb', line 35 def next_request_tag config.[:next_tag] end |
#validate_correctness_of_custom_next_questionnaire(custom_questionnaire, contained_questionnaire) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb', line 47 def validate_correctness_of_custom_next_questionnaire(custom_questionnaire, contained_questionnaire) custom_items_link_ids = extract_link_ids(custom_questionnaire.item) || [] contained_items_link_ids = extract_link_ids(contained_questionnaire.item) || [] missing_items_ids = contained_items_link_ids - custom_items_link_ids error_msg = %( Custom Questionnaire must include all previous questions along with the next question or set of questions. ) ('error', error_msg) if custom_items_link_ids.length <= contained_items_link_ids.length error_msg = %( Custom Questionnaire must include all previous questions. The following items are missing: questions with Link ID `#{missing_items_ids.to_sentence}`. ) ('error', error_msg) if missing_items_ids.present? end |