public async Task AddAssignment_UpdateFails_ReturnsValidationMessage()
        {
            var input = _fixture.Create <AddAssignmentRequest>();
            var assignmentValidationMessages = _fixture.CreateMany <ValidationMessage>(0);

            _assignmentValidator
            .Setup(x => x.ValidateRules(input))
            .Returns(assignmentValidationMessages);

            Test expectedTest = CreateDefaultTest();

            _testRepository
            .Setup(x => x.GetAsync(input.TestId))
            .ReturnsAsync(expectedTest);

            var testValidationMessage = _fixture.Create <ValidationMessage>();

            _testRepository
            .Setup(x => x.UpdateAsync(expectedTest))
            .ReturnsAsync(testValidationMessage);

            AddAssignmentResult result = await _sut.AddAssignmentAsync(input);

            result.ValidationMessages.Should().ContainSingle();
            result.ValidationMessages.Should().Contain(testValidationMessage);
        }
        public async Task AddAssignment_UpdateSucceeds_ReturnsResult()
        {
            var input = _fixture.Create <AddAssignmentRequest>();
            var assignmentValidationMessages = _fixture.CreateMany <ValidationMessage>(0);

            _assignmentValidator
            .Setup(x => x.ValidateRules(input))
            .Returns(assignmentValidationMessages);

            Test expectedTest = CreateDefaultTest();

            _testRepository
            .Setup(x => x.GetAsync(input.TestId))
            .ReturnsAsync(expectedTest);

            _testRepository
            .Setup(x => x.UpdateAsync(expectedTest))
            .ReturnsAsync((ValidationMessage)null);

            AddAssignmentResult result = await _sut.AddAssignmentAsync(input);

            result.AssignmentId.Should().NotBeEmpty();
            result.TestId.Should().Be(expectedTest.Id);
            result.ValidationMessages.Should().BeEmpty();
        }
        public async Task AddAssignment_WithValidationMessages_ReturnsValidationMessages()
        {
            var input = _fixture.Create <AddAssignmentRequest>();
            var expectedValidationMessages = _fixture.CreateMany <ValidationMessage>();

            _assignmentValidator
            .Setup(x => x.ValidateRules(input))
            .Returns(expectedValidationMessages);

            AddAssignmentResult result = await _sut.AddAssignmentAsync(input);

            result.Should().NotBeNull();
            result.ValidationMessages.Should().BeEquivalentTo(expectedValidationMessages);
        }
Esempio n. 4
0
        private async Task AddAssignmentFlowAsync(Guid testId, int assignmentIndex)
        {
            byte numberOfQuestions = SharedConsoleFlows.AskForByte($"How many questions are there for assignment: {assignmentIndex + 1}?");

            var addAssignmentRequest = new AddAssignmentRequest
            {
                TestId            = testId,
                NumberOfQuestions = numberOfQuestions
            };

            AddAssignmentResult addAssignmentResult = await _testController.AddAssignmentAsync(addAssignmentRequest);

            if (addAssignmentResult.ValidationMessages.Any())
            {
                SharedConsoleFlows.PrintValidationMessages(addAssignmentResult.ValidationMessages);
                await AddAssignmentFlowAsync(testId, assignmentIndex);
            }
        }
Esempio n. 5
0
        private async Task AddBonusAssignmentFlowAsync(Guid testId)
        {
            bool isBonusAssignmentNeeded = SharedConsoleFlows.AskForBool($"Is there a bonus question?");

            if (isBonusAssignmentNeeded)
            {
                var addAssignmentRequest = new AddAssignmentRequest
                {
                    TestId            = testId,
                    NumberOfQuestions = 1
                };

                AddAssignmentResult addAssignmentResult = await _testController.AddAssignmentAsync(addAssignmentRequest);

                if (addAssignmentResult.ValidationMessages.Any())
                {
                    SharedConsoleFlows.PrintValidationMessages(addAssignmentResult.ValidationMessages);
                }
            }
        }
        public async Task AddAssignment_TestDoesNotExists_ReturnsValidationMessage()
        {
            var input = _fixture.Create <AddAssignmentRequest>();
            var expectedValidationMessages = _fixture.CreateMany <ValidationMessage>(0);

            _assignmentValidator
            .Setup(x => x.ValidateRules(input))
            .Returns(expectedValidationMessages);

            _testRepository
            .Setup(x => x.GetAsync(input.TestId))
            .ReturnsAsync((Test)null);

            AddAssignmentResult result = await _sut.AddAssignmentAsync(input);

            result.ValidationMessages.Should().ContainSingle();
            ValidationMessage validationMessage = result.ValidationMessages.Single();

            validationMessage.Field.Should().Be("TestId");
            validationMessage.Message.Should().Be("No test was found");
        }