public async Task Get_Returns_ViewResult_With_Workouts() { // Arrange var expectedWorkouts = new[] { new WorkoutViewModel { Name = "Test workout 01" }, new WorkoutViewModel { Name = "Test workout 02" }, new WorkoutViewModel { Name = "Test workout 03" } }; WorkoutServiceMock .Setup(x => x.ReadAllAsync()) .ReturnsAsync(expectedWorkouts); // Act var result = await ControllerUnderTest.Index(); // Assert var viewResult = Assert.IsType <ViewResult>(result); Assert.Same(expectedWorkouts, viewResult.Model); }
public async Task ReadOneAsync_Returns_NotFoundResult_When_EntityNotFoundException_Is_Thrown() { // Arrange const int id = 1; WorkoutServiceMock .Setup(x => x.ReadOneAsync(id)) .ThrowsAsync(new EntityNotFoundException(id)); // Act var result = await ControllerUnderTest.ReadOneAsync(id); // Assert Assert.IsType<NotFoundResult>(result); }
public async Task DeleteAsync_Returns_NoContentResult() { // Arrange const int id = 1; var expectedWorkout = new Workout {Name = "Test workout 01", Id = id}; WorkoutServiceMock .Setup(x => x.DeleteAsync(id)) .ReturnsAsync(expectedWorkout); // Act var result = await ControllerUnderTest.DeleteAsync(id); // Assert Assert.IsType<NoContentResult>(result); }
public async Task UpdateAsync_Returns_NotFoundResult_When_EntityNotFoundException_Is_Thrown() { // Arrange const int id = 1; var expectedWorkout = new Workout {Name = "Test workout 01", Id = id}; WorkoutServiceMock .Setup(x => x.UpdateAsync(id, expectedWorkout)) .ThrowsAsync(new EntityNotFoundException(expectedWorkout)); // Act var result = await ControllerUnderTest.UpdateAsync(id, expectedWorkout); // Assert Assert.IsType<NotFoundResult>(result); }
public async Task Get_Returns_NotFoundResult_When_WorkoutIsNotFound() { // Arrange const int id = 1; WorkoutServiceMock .Setup(x => x.ReadOneAsync(id)) .ReturnsAsync(default(WorkoutViewModel)); // Act var result = await ControllerUnderTest.Edit(id); // Assert Assert.IsType <NotFoundResult>(result); }
public async Task ReadOneAsync_Returns_OkObjectResult_With_Workout() { // Arrange const int id = 1; var expectedWorkout = new Workout {Name = "Test workout 01", Id = id}; WorkoutServiceMock .Setup(x => x.ReadOneAsync(id)) .ReturnsAsync(expectedWorkout); // Act var result = await ControllerUnderTest.ReadOneAsync(id); // Assert var okObjectResult = Assert.IsType<OkObjectResult>(result); Assert.Same(expectedWorkout, okObjectResult.Value); }
public async Task Post_Returns_RedirectToActionResult_When_Succeeds() { // Arrange const int id = 1; const string expectedActionName = nameof(WorkoutsController.Index); WorkoutServiceMock .Setup(x => x.DeleteAsync(id)) .Returns(Task.CompletedTask); // Act var result = await ControllerUnderTest.Delete(id); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal(expectedActionName, redirectToActionResult.ActionName); }
public async Task ReadAllAsync_Returns_OkObjectResult_With_Workouts() { // Arrange var expectedWorkouts = new[] { new Workout {Name = "Test workout 01"}, new Workout {Name = "Test workout 02"}, new Workout {Name = "Test workout 03"} }; WorkoutServiceMock .Setup(x => x.ReadAllAsync()) .ReturnsAsync(expectedWorkouts); // Act var result = await ControllerUnderTest.ReadAllAsync(); // Assert var okObjectResult = Assert.IsType<OkObjectResult>(result); Assert.Same(expectedWorkouts, okObjectResult.Value); }
public async Task Get_Returns_ViewResult_With_Workout_When_WorkoutIsFound() { // Arrange const int id = 1; var expectedWorkout = new WorkoutViewModel { Name = "Test workout 01", Id = id }; WorkoutServiceMock .Setup(x => x.ReadOneAsync(id)) .ReturnsAsync(expectedWorkout); // Act var result = await ControllerUnderTest.Edit(id); // Assert var viewResult = Assert.IsType <ViewResult>(result); Assert.Same(expectedWorkout, viewResult.Model); }
public async Task Post_Returns_RedirectToActionResult_When_ModelStateIsValid() { // Arrange const int id = 1; var expectedWorkout = new WorkoutViewModel { Name = "Test workout 01", Id = id }; const string expectedActionName = nameof(WorkoutsController.Index); WorkoutServiceMock .Setup(x => x.CreateAsync(expectedWorkout)) .Returns(Task.CompletedTask); // Act var result = await ControllerUnderTest.Create(expectedWorkout); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal(expectedActionName, redirectToActionResult.ActionName); }
public async Task CreateAsync_Returns_CreatedAtActionResult_With_Workout() { // Arrange const int id = 1; var expectedWorkout = new Workout {Name = "Test workout 01", Id = id}; const string expectedCreatedAtActionName = nameof(WorkoutsController.ReadOneAsync); WorkoutServiceMock .Setup(x => x.CreateAsync(expectedWorkout)) .ReturnsAsync(() => { expectedWorkout.Id = id; return expectedWorkout; }); // Act var result = await ControllerUnderTest.CreateAsync(expectedWorkout); // Assert var createdAtActionResult = Assert.IsType<CreatedAtActionResult>(result); Assert.Same(expectedWorkout, createdAtActionResult.Value); Assert.Equal(expectedCreatedAtActionName, createdAtActionResult.ActionName); Assert.Equal(id, createdAtActionResult.RouteValues.GetValueOrDefault("id")); }