public async Task AddStudentAsync_UpdateFails_ReturnsValidationMessage() { var input = _fixture.Create <AddStudentRequest>(); var studentValidationMessages = _fixture.CreateMany <ValidationMessage>(0); _studentValidator .Setup(x => x.ValidateRules(input)) .Returns(studentValidationMessages); var expectedClass = _fixture.Create <Class>(); _classRepository .Setup(x => x.GetAsync(input.ClassId)) .ReturnsAsync(expectedClass); var classValidationMessage = _fixture.Create <ValidationMessage>(); _classRepository .Setup(x => x.UpdateAsync(expectedClass)) .ReturnsAsync(classValidationMessage); AddStudentResult result = await _sut.AddStudentAsync(input); result.ValidationMessages.Should().ContainSingle(); result.ValidationMessages.Should().Contain(classValidationMessage); }
public AddStudentResult AddStudent(Student studentToAdd) { if (studentsList.Contains(studentToAdd)) { addStudentResult = AddStudentResult.StudentIsExist; } else { addStudentResult = AddStudentResult.SuccessToAddStudent; studentsList.Add(studentToAdd); } return(addStudentResult); }
public async Task AddStudentAsync_WithValidationMessages_ReturnsValidationMessages() { var input = _fixture.Create <AddStudentRequest>(); var expectedValidationMessages = _fixture.CreateMany <ValidationMessage>(); _studentValidator .Setup(x => x.ValidateRules(input)) .Returns(expectedValidationMessages); AddStudentResult result = await _sut.AddStudentAsync(input); result.Should().NotBeNull(); result.ValidationMessages.Should().BeEquivalentTo(expectedValidationMessages); }
public AddStudentResult AddStudent(Student studentToAdd) { if (studentsList.Contains(studentToAdd)) { addStudentResult = AddStudentResult.StudentIsExist; } else if (!Pesel.TryParse(studentToAdd.Pesel, out pesel)) { addStudentResult = AddStudentResult.FailedToAddStudent; } else { addStudentResult = AddStudentResult.SuccessToAddStudent; studentsList.Add(studentToAdd); } return(addStudentResult); }
private async Task AddStudentFlowAsync(Guid classId) { string firstName = SharedConsoleFlows.AskForString("What is the first name of the student?"); string infix = SharedConsoleFlows.AskForOptionalString("What is the infix of the student?"); string lastName = SharedConsoleFlows.AskForString("What is the last name of the student?"); var model = new AddStudentRequest { ClassId = classId, FirstName = firstName, Infix = infix, LastName = lastName }; AddStudentResult addStudentResponse = await _classController.AddStudentAsync(model); if (addStudentResponse.ValidationMessages.Any()) { SharedConsoleFlows.PrintValidationMessages(addStudentResponse.ValidationMessages); await AddStudentFlowAsync(classId); } }
public async Task AddStudentAsync_ClassDoesNotExists_ReturnsValidationMessage() { var input = _fixture.Create <AddStudentRequest>(); var expectedValidationMessages = _fixture.CreateMany <ValidationMessage>(0); _studentValidator .Setup(x => x.ValidateRules(input)) .Returns(expectedValidationMessages); _classRepository .Setup(x => x.GetAsync(input.ClassId)) .ReturnsAsync((Class)null); AddStudentResult result = await _sut.AddStudentAsync(input); result.ValidationMessages.Should().ContainSingle(); ValidationMessage validationMessage = result.ValidationMessages.Single(); validationMessage.Field.Should().Be("ClassId"); validationMessage.Message.Should().Be("No class was found"); }
public async Task AddStudentAsync_UpdateSucceeds_ReturnsNoValidationMessages() { var input = _fixture.Create <AddStudentRequest>(); var studentValidationMessages = _fixture.CreateMany <ValidationMessage>(0); _studentValidator .Setup(x => x.ValidateRules(input)) .Returns(studentValidationMessages); var expectedClass = _fixture.Create <Class>(); _classRepository .Setup(x => x.GetAsync(input.ClassId)) .ReturnsAsync(expectedClass); _classRepository .Setup(x => x.UpdateAsync(expectedClass)) .ReturnsAsync((ValidationMessage)null); AddStudentResult result = await _sut.AddStudentAsync(input); result.Should().NotBeNull(); result.ValidationMessages.Should().BeEmpty(); }