public async Task Post_when_not_ModelState_IsValid_returns_BadRequest() { var controller = new StudiesController(null); controller.ModelState.AddModelError("", ""); var study = new StudyDTO(); var result = await controller.Post(study); Assert.IsType <BadRequestObjectResult>(result); }
public async Task Post_when_valid_returns_Created() { var repository = new Mock <IStudyRepository>(); var controller = new StudiesController(repository.Object); var study = new StudyDTO { Name = "Name" }; var result = await controller.Post(study); Assert.IsAssignableFrom <CreatedAtActionResult>(result); }
public async Task Post_calls_repository_Create() { var repository = new Mock <IStudyRepository>(); var controller = new StudiesController(repository.Object); var study = new StudyDTO { Name = "Name" }; await controller.Post(study); repository.Verify(r => r.CreateAsync(study), Times.Once); }
public async Task Post_when_not_ModelState_IsValid_does_not_call_repository() { var repository = new Mock <IStudyRepository>(); var controller = new StudiesController(repository.Object); controller.ModelState.AddModelError("", ""); var study = new StudyDTO { Name = "Name" }; await controller.Post(study); repository.Verify(r => r.CreateAsync(study), Times.Never); }
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); }