public void Validate_UnableToEditExerciseYouDoNotOwn_ReturnsCorrectErrorMessage() { // Assert var user1 = new User { Id = NextId }; var user2 = new User { Id = NextId }; Context.Users.Add(user1); Context.Users.Add(user2); var exercise = new Exercise { Id = NextId, UserId = user1.Id }; Context.Exercises.Add(exercise); Context.SaveChanges(); var request = new ExerciseEditDto { Id = exercise.Id, UserId = user2.Id, }; // Act var validator = new ExerciseEditDtoValidator(Context); var result = validator.Validate(request); // Assert var hasCorrectErrorMessage = result.Errors.Any(x => x.ErrorMessage == "You cannot edit an 'Exercise' you do not own." && x.PropertyName == ""); Assert.IsTrue(hasCorrectErrorMessage); }
public IActionResult Put(int exerciseId, [FromBody] ExerciseEditDto exerciseEditDto) { exerciseEditDto.Id = exerciseId; exerciseEditDto.UserId = int.Parse(User.FindFirst(ClaimTypes.Name).Value); var validationResult = _exerciseEditDtoValidator.Validate(exerciseEditDto); if (!validationResult.IsValid) return BadRequest(ValidationHelpers.ConvertValidationResult(validationResult)); var exercise = _exerciseRepository.EditExercise(exerciseId, exerciseEditDto); return Ok(exercise); }
public void Validate_DtoMuscleGroupIsEmpty_ReturnsCorrectErrorMessage() { // Arrange var request = new ExerciseEditDto(); // Act var validator = new ExerciseEditDtoValidator(Context); var result = validator.Validate(request); // Assert var hasCorrectErrorMessage = result.Errors.Any(x => x.ErrorMessage == "'Muscle Group' must not be empty." && x.PropertyName == nameof(ExerciseEditDto.MuscleGroup)); Assert.IsTrue(hasCorrectErrorMessage); }
public void Validate_EverythingIsWorking_ReturnsNoErrorMessage() { // Arrange var request = new ExerciseEditDto { UserId = NextId, Id = NextId, Name = $"{NextId}" }; // Act var validator = new ExerciseEditDtoValidator(Context); var result = validator.Validate(request); // Assert var hasCorrectErrorMessage = result.Errors.Any(x => x.ErrorMessage == "'Name' must not be empty." && x.PropertyName == ""); Assert.IsTrue(!hasCorrectErrorMessage); }
public ExerciseGetDto EditExercise(int userId, ExerciseEditDto exerciseEditDto) { var exercise = _context.Set <Exercise>().Find(userId); exercise.Name = exerciseEditDto.Name; exercise.MuscleGroup = exerciseEditDto.MuscleGroup; _context.SaveChanges(); var exerciseGetDto = new ExerciseGetDto { Id = exercise.Id, Name = exercise.Name, MuscleGroup = exercise.MuscleGroup, UserId = exercise.Id }; exerciseGetDto.Id = exercise.Id; return(exerciseGetDto); }
public void Validate_DtoNameAlreadyExists_ReturnsCorrectErrorMessage() { // Arrange var name = "Squat"; var user = new User { Id = NextId }; var muscleGroup = "Quadriceps"; Context.Users.Add(user); var exercise1 = new Exercise { Id = NextId, Name = name, UserId = user.Id, MuscleGroup = muscleGroup }; var exercise2 = new Exercise { Id = NextId, Name = $"{NextId}", UserId = user.Id, MuscleGroup = muscleGroup }; Context.Exercises.Add(exercise1); Context.Exercises.Add(exercise2); Context.SaveChanges(); var request = new ExerciseEditDto { UserId = user.Id, Name = name, Id = exercise2.Id, MuscleGroup = muscleGroup }; // Act var validator = new ExerciseEditDtoValidator(Context); var result = validator.Validate(request); // Assert var hasCorrectErrorMessage = result.Errors.Any(x => x.ErrorMessage == $"You already have an exercise of '{name}'" && x.PropertyName == nameof(ExerciseEditDto.Name)); Assert.IsTrue(hasCorrectErrorMessage); }