public void Validate_DtoNameIsEmpty_ReturnsCorrectErrorMessage()
        {
            // Arrange
            var request = new RoutineCreateDto();

            // Act
            var validator = new RoutineCreateDtoValidator(Context);
            var result    = validator.Validate(request);

            // Assert
            var hasCorrectErrorMessage = result.Errors.Any(x =>
                                                           x.ErrorMessage == "'Name' must not be empty." &&
                                                           x.PropertyName == nameof(RoutineCreateDto.Name));

            Assert.IsTrue(hasCorrectErrorMessage);
        }
Пример #2
0
        public void CreateRoutine_NameHasValue_ContextHasNewRoutineWithCorrectName()
        {
            // Arrange
            var name    = $"{NextId}";
            var request = new RoutineCreateDto {
                Name = name
            };

            // Act

            var repo               = new RoutineRepository(Context);
            var result             = repo.CreateRoutine(request);
            var routineFromContext = Context.Routines.Find(result.Id);

            // Assert
            Assert.AreEqual(name, routineFromContext.Name);
        }
        public IActionResult Post(RoutineCreateDto routineCreateDto)
        {
            var userIdString = User.FindFirst(ClaimTypes.Name)?.Value;
            var userId       = int.Parse(userIdString);

            routineCreateDto.UserId = userId;

            var validationResult = _routineCreateDtoValidator.Validate(routineCreateDto);

            if (!validationResult.IsValid)
            {
                return(BadRequest(ValidationHelpers.ConvertValidationResult(validationResult)));
            }

            var routine = _routineRepository.CreateRoutine(routineCreateDto);

            return(Created($"api/routine/{routine.Id}", routine));
        }
        public void Validate_UserIdDoesNotExist_ReturnsCorrectErrorMessage()
        {
            // Arrange
            var request = new RoutineCreateDto {
                UserId = NextId
            };

            // Act
            var validator = new RoutineCreateDtoValidator(Context);
            var result    = validator.Validate(request);

            // Assert
            var hasCorrectErrorMessage = result.Errors.Any(x =>
                                                           x.ErrorMessage == "The 'User' does not exist." &&
                                                           x.PropertyName == nameof(RoutineCreateDto.UserId));

            Assert.IsTrue(hasCorrectErrorMessage);
        }
        public void Validate_EVerythingWorks_ReturnsNoErrorMessage()
        {
            // Arrange
            var name    = "Leg Day";
            var request = new RoutineCreateDto {
                UserId = NextId, Name = name
            };

            // Act
            var validator = new RoutineCreateDtoValidator(Context);
            var result    = validator.Validate(request);

            // Assert
            var hasCorrectErrorMessage = result.Errors.Any(x =>
                                                           x.ErrorMessage == "The 'User' does not exist." &&
                                                           x.PropertyName == "");

            Assert.IsTrue(!hasCorrectErrorMessage);
        }
Пример #6
0
        public RoutineGetDto CreateRoutine(RoutineCreateDto routineCreateDto)
        {
            var routine = new Routine
            {
                Name   = routineCreateDto.Name,
                UserId = routineCreateDto.UserId
            };

            _context.Set <Routine>().Add(routine);
            _context.SaveChanges();

            var routineGetDto = new RoutineGetDto
            {
                Id     = routine.Id,
                Name   = routine.Name,
                UserId = routine.UserId
            };

            return(routineGetDto);
        }