public void Validate_ModelNull_ThrowsException() { CreateMagisterClassRequest input = null; Action action = () => _sut.Validate(input); action.Should().Throw <ArgumentNullException>(); }
public void Validate_ValidFileLocation_ReturnsNull() { CreateMagisterClassRequest input = _fixture.Build <CreateMagisterClassRequest>() .With(x => x.MagisterFileLocation, _fixture.Create <string>()) .Create(); Application.Validation.ValidationMessage result = _sut.Validate(input); result.Should().BeNull(); }
public void Validate_InvalidFileLocation_ReturnsValidationMessage() { CreateMagisterClassRequest input = _fixture.Build <CreateMagisterClassRequest>() .With(x => x.MagisterFileLocation, string.Empty) .Create(); Application.Validation.ValidationMessage result = _sut.Validate(input); result.Should().NotBeNull(); result.Field.Should().Be("MagisterFileLocation"); result.Message.Should().Be("File location is required"); }
private async Task CreateClassFromFile(IFileInfoWrapper[] files) { byte chosenIndex = SharedConsoleFlows.AskForByte("What file should be used?"); IFileInfoWrapper chosenFile = await GetFile(files, chosenIndex); var request = new CreateMagisterClassRequest { MagisterFileLocation = chosenFile.FullName }; CreateMagisterClassResult createMagisterClassResponse = await _classController.CreateMagisterClassAsync(request); if (createMagisterClassResponse.ValidationMessages.Any()) { SharedConsoleFlows.PrintValidationMessages(createMagisterClassResponse.ValidationMessages); await StartAsync(); } }
/// <summary> /// Creates a magister class /// </summary> public async Task <CreateMagisterClassResult> CreateMagisterClassAsync(CreateMagisterClassRequest model) { IEnumerable <ValidationMessage> validationMessages = _magisterClassValidator.ValidateRules(model); if (validationMessages.Any()) { return(new CreateMagisterClassResult(validationMessages)); } MagisterClass magisterClass = _magisterFileReader.ReadClass(Path.CreateFromString(model.MagisterFileLocation)); var @class = new Class(Name.CreateFromString(magisterClass.Name)); foreach (var magisterStudent in magisterClass.Students) { var student = new Student(Name.CreateFromString(magisterStudent.FirstName), magisterStudent.Infix, Name.CreateFromString(magisterStudent.LastName)); @class.AddStudent(student); } await _classRepository.CreateAsync(@class); return(new CreateMagisterClassResult(@class.Id)); }