public async Task ExtractAnswersForApplication_Contains_Expected_Questions()
        {
            var firstPage         = _sections[0].QnAData.Pages[0];
            var firstPageQuestion = firstPage.Questions[0];

            var expectedQuestion = new SubmittedApplicationAnswer
            {
                ApplicationId = _application.ApplicationId,
                PageId        = firstPage.PageId,
                QuestionId    = firstPageQuestion.QuestionId,
                QuestionType  = firstPageQuestion.Input.Type
            };

            var extractedQuestions = await _sut.ExtractAnswersForApplication(_application.ApplicationId);

            var actualQuestion = extractedQuestions.FirstOrDefault(x => x.PageId == expectedQuestion.PageId && x.QuestionId == expectedQuestion.QuestionId);

            _qnaApiClient.Verify(x => x.GetAllSectionsForApplication(_application.ApplicationId), Times.Once);

            Assert.IsNotNull(actualQuestion);
            Assert.AreEqual(expectedQuestion.ApplicationId, actualQuestion.ApplicationId);
            Assert.AreEqual(expectedQuestion.PageId, actualQuestion.PageId);
            Assert.AreEqual(expectedQuestion.QuestionId, actualQuestion.QuestionId);
            Assert.AreEqual(expectedQuestion.QuestionType, actualQuestion.QuestionType);
        }
Beispiel #2
0
        public static List <SubmittedApplicationAnswer> GetAnswers(Guid applicationId, int sequenceNumber, int sectionNumber, string pageId, Question question, string checkBoxListAnswer)
        {
            var answers = new List <SubmittedApplicationAnswer>();

            if (question?.Input?.Options != null && !string.IsNullOrEmpty(checkBoxListAnswer))
            {
                var questionId   = question.QuestionId;
                var questionType = question.Input?.Type;

                foreach (var option in question.Input.Options)
                {
                    if (checkBoxListAnswer.Contains(option.Value))
                    {
                        var answer = new SubmittedApplicationAnswer
                        {
                            ApplicationId  = applicationId,
                            SequenceNumber = sequenceNumber,
                            SectionNumber  = sectionNumber,
                            PageId         = pageId,
                            QuestionId     = questionId,
                            QuestionType   = questionType,
                            Answer         = option.Value
                        };

                        answers.Add(answer);
                    }
                }
            }

            return(answers);
        }
        public async Task ExtractAnswersForApplication_Contains_Expected_QuestionAnswers()
        {
            var firstSection      = _sections[0];
            var firstPage         = firstSection.QnAData.Pages[0];
            var firstPageQuestion = firstPage.Questions[0];
            var firstPageAnswer   = firstPage.PageOfAnswers[0].Answers[0];

            var expectedAnswer = new SubmittedApplicationAnswer
            {
                Answer        = firstPageAnswer.Value,
                ColumnHeading = null
            };

            var extractedQuestions = await _sut.ExtractAnswersForApplication(_application.ApplicationId);

            var actualAnswer = extractedQuestions.FirstOrDefault(x => x.PageId == firstPage.PageId && x.QuestionId == firstPageQuestion.QuestionId);

            _qnaApiClient.Verify(x => x.GetAllSectionsForApplication(_application.ApplicationId), Times.Once);

            Assert.IsNotNull(actualAnswer);
            Assert.AreEqual(expectedAnswer.Answer, actualAnswer.Answer);
            Assert.AreEqual(expectedAnswer.ColumnHeading, actualAnswer.ColumnHeading);
            Assert.AreEqual(expectedAnswer.RowNumber, actualAnswer.RowNumber);
            Assert.AreEqual(expectedAnswer.ColumnNumber, actualAnswer.ColumnNumber);
        }
Beispiel #4
0
 public ApplyFileExtractRequest(SubmittedApplicationAnswer submittedApplicationAnswer)
 {
     ApplicationId  = submittedApplicationAnswer.ApplicationId;
     PageId         = submittedApplicationAnswer.PageId;
     QuestionId     = submittedApplicationAnswer.QuestionId;
     SectionNumber  = submittedApplicationAnswer.SectionNumber;
     SequenceNumber = submittedApplicationAnswer.SequenceNumber;
     Filename       = submittedApplicationAnswer.Answer;
 }
Beispiel #5
0
        public static List <SubmittedApplicationAnswer> GetAnswers(Guid applicationId, int sequenceNumber, int sectionNumber, string pageId, Question question, TabularData tabularData)
        {
            var answers = new List <SubmittedApplicationAnswer>();

            if (question?.Input != null && tabularData?.DataRows != null && tabularData?.HeadingTitles != null)
            {
                var questionId   = question.QuestionId;
                var questionType = question.Input.Type;

                for (int row = 0; row < tabularData.DataRows.Count; row++)
                {
                    var dataRow = tabularData.DataRows[row];
                    if (dataRow?.Columns is null)
                    {
                        continue;
                    }

                    for (int column = 0; column < dataRow.Columns.Count; column++)
                    {
                        string columnAnswer  = dataRow.Columns[column];
                        string columnHeading = tabularData.HeadingTitles.ElementAtOrDefault(column);

                        if (string.IsNullOrEmpty(columnAnswer))
                        {
                            continue;
                        }

                        var answer = new SubmittedApplicationAnswer
                        {
                            ApplicationId  = applicationId,
                            SequenceNumber = sequenceNumber,
                            SectionNumber  = sectionNumber,
                            PageId         = pageId,
                            QuestionId     = questionId,
                            QuestionType   = questionType,
                            Answer         = columnAnswer,
                            ColumnHeading  = columnHeading,
                            RowNumber      = row,
                            ColumnNumber   = column
                        };

                        answers.Add(answer);
                    }
                }
            }

            return(answers);
        }
        public static SubmittedApplicationAnswer GetAnswer(Guid applicationId, string pageId, Question question, string submittedAnswer)
        {
            var answer = default(SubmittedApplicationAnswer);

            if (question?.Input != null && !string.IsNullOrEmpty(submittedAnswer))
            {
                var questionId   = question.QuestionId;
                var questionType = question.Input.Type;

                answer = new SubmittedApplicationAnswer
                {
                    ApplicationId = applicationId,
                    PageId        = pageId,
                    QuestionId    = questionId,
                    QuestionType  = questionType,
                    Answer        = submittedAnswer
                };
            }

            return(answer);
        }
Beispiel #7
0
        public static List <SubmittedApplicationAnswer> GetAnswers(Guid applicationId, string pageId, Question question, TabularData tabularData)
        {
            var answers = new List <SubmittedApplicationAnswer>();

            if (question?.Input != null && tabularData?.DataRows != null && tabularData?.HeadingTitles != null)
            {
                var questionId   = question.QuestionId;
                var questionType = question.Input.Type;

                foreach (var row in tabularData.DataRows)
                {
                    for (int column = 0; column < row.Columns.Count; column++)
                    {
                        string columnAnswer  = row.Columns[column];
                        string columnHeading = tabularData.HeadingTitles.ElementAtOrDefault(column);

                        if (string.IsNullOrEmpty(columnAnswer))
                        {
                            continue;
                        }

                        var answer = new SubmittedApplicationAnswer
                        {
                            ApplicationId = applicationId,
                            PageId        = pageId,
                            QuestionId    = questionId,
                            QuestionType  = questionType,
                            Answer        = columnAnswer,
                            ColumnHeading = columnHeading
                        };

                        answers.Add(answer);
                    }
                }
            }

            return(answers);
        }