public async Task AddExerciseToTrainingAsync_WithValidModel_ShouldAddTheExerciseToTheTraining() { var training = new Training() { Name = trainingName }; var exercise = new Exercise() { Name = exerciseName, TargetMuscle = targertMuscleConstant }; var user = await this.dbContext.Users.FindAsync(MockUserManager.testUserId); user.Trainings.Add(training); user.Exercises.Add(exercise); await this.dbContext.SaveChangesAsync(); TrainingExerciseInput model = new TrainingExerciseInput() { ExerciseId = exercise.Id, RepetitionCount = 1, SeriesCount = 1 }; await this.service.AddExerciseToTrainingAsync(model, training.Id, MockUserManager.testUsername); Assert.AreEqual(1, user.Trainings.First().Exercises.Count); Assert.AreSame(exerciseName, user.Trainings.First().Exercises.First().Exercise.Name); }
public async Task AddExerciseToTrainingAsync(TrainingExerciseInput model, int id, string username) { CoreValidator.ThrowIfNull(model); var user = await this.GetUserByNamedAsync(username); var training = await this.GetTrainingAsync(id, username); if (!this.DbContext.Exercises .Where(e => e.UserId == user.Id) .Any(ex => ex.Id == model.ExerciseId)) { throw new InvalidExerciseException(); } training.Exercises.Add(this.Mapper.Map <TrainingExercise>(model)); await this.DbContext.SaveChangesAsync(); }