public async Task Put_when_not_ModelState_IsValid_does_not_call_repository() { var study = new StudyDTO { Id = 42, Name = "Name" }; var repository = new Mock <IStudyRepository>(); var controller = new StudiesController(repository.Object); controller.ModelState.AddModelError("", ""); await controller.Put(42, study); repository.Verify(r => r.UpdateAsync(study), Times.Never); }
public async Task Put_when_repository_Update_returns_true_returns_NoContent() { var study = new StudyDTO { Id = 42, Name = "Name" }; var repository = new Mock <IStudyRepository>(); repository.Setup(r => r.UpdateAsync(study)).ReturnsAsync(true); var controller = new StudiesController(repository.Object); var result = await controller.Put(42, study); Assert.IsType <NoContentResult>(result); }
public async Task Get_42_returns_repository_FindAsync_42() { var repository = new Mock <IStudyRepository>(); var study = new StudyDTO { Id = 42 }; repository.Setup(r => r.FindAsync(42)).ReturnsAsync(study); var controller = new StudiesController(repository.Object); var result = await controller.Get(42) as OkObjectResult; Assert.Same(study, result.Value); }
public async Task Post_when_valid_returns_Get_action() { var study = new StudyDTO { Name = "Name" }; var repository = new Mock <IStudyRepository>(); repository.Setup(r => r.CreateAsync(study)).ReturnsAsync(42); var controller = new StudiesController(repository.Object); var result = await controller.Post(study) as CreatedAtActionResult; Assert.Equal("Get", result.ActionName); Assert.Null(result.ControllerName); // null means current controller Assert.Equal(42, result.RouteValues["id"]); }
public async Task Post_when_valid_returns_study_with_new_id() { var study = new StudyDTO { Name = "Name" }; var repository = new Mock <IStudyRepository>(); repository.Setup(r => r.CreateAsync(study)).ReturnsAsync(42); var controller = new StudiesController(repository.Object); var result = await controller.Post(study) as CreatedAtActionResult; var created = result.Value as StudyDTO; Assert.Equal(42, created.Id); }