예제 #1
0
        public ActionResult <List <ArrangeTaskContainerEvaluationDTO> > SubmitArrangeTask(
            [FromBody] ArrangeTaskSubmissionDTO submission)
        {
            var evaluation = _submissionService.EvaluateArrangeTask(_mapper.Map <ArrangeTaskSubmission>(submission));

            if (evaluation == null)
            {
                return(NotFound());
            }
            return(Ok(_mapper.Map <List <ArrangeTaskContainerEvaluationDTO> >(evaluation)));
        }
예제 #2
0
        public void Accepts_arrange_task_submission_and_produces_correct_evaluation(ArrangeTaskSubmissionDTO submission, bool expectedCorrectness)
        {
            using var scope = _factory.Services.CreateScope();
            var controller = new SubmissionController(_factory.Services.GetRequiredService <IMapper>(), scope.ServiceProvider.GetRequiredService <ISubmissionService>());
            var dbContext  = scope.ServiceProvider.GetRequiredService <SmartTutorContext>();

            controller.SubmitArrangeTask(submission);

            var actualSubmission = dbContext.ArrangeTaskSubmissions.OrderBy(s => s.TimeStamp).Last(a => a.ArrangeTaskId == submission.ArrangeTaskId);

            actualSubmission.IsCorrect.ShouldBe(expectedCorrectness);
        }
예제 #3
0
        public void Rejects_bad_arrange_task_submission()
        {
            using var scope = _factory.Services.CreateScope();
            var controller = new SubmissionController(_factory.Services.GetRequiredService <IMapper>(), scope.ServiceProvider.GetRequiredService <ISubmissionService>());
            var submission = new ArrangeTaskSubmissionDTO
            {
                ArrangeTaskId = 32, LearnerId = 1,
                Containers    = new List <ArrangeTaskContainerDTO>
                {
                    new ArrangeTaskContainerDTO
                    {
                        Id = 1, Elements = new List <ArrangeTaskElementDTO>
                        {
                            new ArrangeTaskElementDTO {
                                Id = 1
                            }
                        }
                    }
                }
            };

            Should.Throw <InvalidOperationException>(() => controller.SubmitArrangeTask(submission));
        }