public async Task AddWorkoutEntryReturnsTrue() { //Arrange var loggerMock = new Mock <ILoggerFactory>(); var userRepoMock = new Mock <IUserRepository>(); var workoutRepoMock = new Mock <IWorkoutRepository>(); var workoutEntryRepoMock = new Mock <IWorkoutEntryRepository>(); var exerciseRepoMock = new Mock <IExerciseRepository>(); var mockMapper = new Mock <IMapper>(); var logger = new Mock <ILogger>(); loggerMock.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(logger.Object); var exercise = new Exercise { Id = 1, Name = "Benchpress" }; var workout = new Workout { Id = 1, CreationDate = DateTime.Now, UserId = 0, WorkoutEntries = new List <WorkoutEntry>() }; var user = new User { Id = 1, Workouts = new List <Workout> { workout } }; var dto = new AddWorkoutEntryToWorkoutDto { UserId = 1, WorkoutId = 1, WorkoutEntryDtos = new List <NewWorkoutEntryDto> { new NewWorkoutEntryDto { ExerciseId = 1, Set = 1, Reps = 10, Weight = 35 }, new NewWorkoutEntryDto { ExerciseId = 2, Set = 1, Reps = 15, Weight = 70 } } }; userRepoMock.Setup(r => r.GetUser(It.IsAny <int>())).ReturnsAsync(user); workoutRepoMock.Setup(r => r.GetWorkoutWithEntries(It.IsAny <int>())).ReturnsAsync(workout); userRepoMock.Setup(r => r.UpdateAsync(It.IsAny <User>())).ReturnsAsync(true); exerciseRepoMock.Setup(r => r.FindAsync(It.IsAny <int>())).ReturnsAsync(exercise); mockMapper.Setup(m => m.Map <WorkoutEntry>(It.IsAny <WorkoutEntryDto>())).Returns(new WorkoutEntry()); var SUT = new WorkoutService(loggerMock.Object, mockMapper.Object, userRepoMock.Object, workoutRepoMock.Object, exerciseRepoMock.Object, workoutEntryRepoMock.Object); //Act var result = await SUT.AddWorkoutEntryAsync(dto); //Asert Assert.True(result == 2); //Two entries are added to the workout }