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); }
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); } }
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"); }