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
38 39 40 41 42 43 44 |
# File 'lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb', line 38 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
34 35 36 |
# File 'lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb', line 34 def next_request_tag config.[:next_tag] end |
#validate_correctness_of_custom_next_questionnaire(custom_questionnaire, contained_questionnaire) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb', line 46 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 |