public async Task ReadAllAsync_Returns_Workouts()
            {
                // Arrange
                var expectedWorkouts = new[]
                {
                    new Workout {
                        Name = "Test workout 01"
                    },
                    new Workout {
                        Name = "Test workout 02"
                    },
                    new Workout {
                        Name = "Test workout 03"
                    }
                };

                TrainingPlanContextMock.Workouts.AddRange(expectedWorkouts);
                await TrainingPlanContextMock.SaveChangesAsync();

                // Act
                var result = await RepositoryUnderTest.ReadAllAsync();

                // Assert
                Assert.Collection(result,
                                  workout => Assert.Same(expectedWorkouts[0], workout),
                                  workout => Assert.Same(expectedWorkouts[1], workout),
                                  workout => Assert.Same(expectedWorkouts[2], workout)
                                  );
            }
            public void Update_Updates_And_Returns_Workout()
            {
                // Arrange
                var expectedWorkout = new Workout {
                    Name = "Test workout 01"
                };

                TrainingPlanContextMock.Workouts.Add(expectedWorkout);
                TrainingPlanContextMock.SaveChanges();

                // Act
                var result = RepositoryUnderTest.Update(expectedWorkout);

                // Assert
                Assert.Same(expectedWorkout, result);
            }
            public async Task UpdateAsync_Updates_And_Return_Workout()
            {
                // Arrange
                var expectedWorkout = new Workout {
                    Name = "Test workout 01"
                };

                TrainingPlanContextMock.Workouts.Add(expectedWorkout);
                await TrainingPlanContextMock.SaveChangesAsync();

                // Act
                var result = await RepositoryUnderTest.UpdateAsync(expectedWorkout);

                // Assert
                Assert.Same(expectedWorkout, result);
            }
            public void ReadOne_Returns_Workout()
            {
                // Arrange
                var expectedWorkout = new Workout {
                    Name = "Test workout 01"
                };

                TrainingPlanContextMock.Workouts.Add(expectedWorkout);
                TrainingPlanContextMock.SaveChanges();
                var id = expectedWorkout.Id;

                // Act
                var result = RepositoryUnderTest.ReadOne(id);

                // Assert
                Assert.Same(expectedWorkout, result);
            }
            public async Task ReadOneAsync_Returns_Workout()
            {
                // Arrange
                var expectedWorkout = new Workout {
                    Name = "Test workout 01"
                };

                TrainingPlanContextMock.Workouts.Add(expectedWorkout);
                await TrainingPlanContextMock.SaveChangesAsync();

                var id = expectedWorkout.Id;

                // Act
                var result = await RepositoryUnderTest.ReadOneAsync(id);

                // Assert
                Assert.Same(expectedWorkout, result);
            }