Example #1
0
        public void Validate_ModelNull_ThrowsException()
        {
            CreateMagisterClassRequest input = null;

            Action action = () => _sut.Validate(input);

            action.Should().Throw <ArgumentNullException>();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
            }
        }
Example #5
0
        /// <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));
        }