public async Task PostShouldReturnOkResultWhenResultGreaterThanOne() { // Arrange var model = new Tag(); var fakeSql = Substitute.For<IDatabase>(); fakeSql.CreateAsync(model).Returns(Task.FromResult(1)); var controller = new TagsController(fakeSql); // Act var result = await controller.Post(model); // Assert var viewResult = Assert.IsType<OkNegotiatedContentResult<Tag>>(result); Assert.NotNull(viewResult); }
public async Task PostShouldReturnBadRequestResultWhenResultLessThanOne() { // Arrange var model = new Tag(); var fakeSql = Substitute.For<IDatabase>(); fakeSql.CreateAsync(model).Returns(Task.FromResult(0)); var controller = new TagsController(fakeSql); // Act var result = await controller.Post(model); // Assert var viewResult = Assert.IsType<BadRequestResult>(result); Assert.NotNull(viewResult); }
public async Task DeleteShouldReturnOkResultWithModelId() { // Arrange var model = new Tag(); var fakeSql = Substitute.For<IDatabase>(); fakeSql.DeleteAsync(model).ReturnsForAnyArgs(Task.FromResult(true)); var controller = new TagsController(fakeSql); // Act var result = await controller.Delete(1); // Assert var viewResult = Assert.IsType<OkNegotiatedContentResult<int>>(result); Assert.Equal(viewResult.Content, 1); }
public async Task DeleteShouldReturnBadRequestResultWhenResultFalse() { // Arrange var model = new Tag(); var fakeSql = Substitute.For<IDatabase>(); fakeSql.DeleteAsync(model).ReturnsForAnyArgs(Task.FromResult(false)); var controller = new TagsController(fakeSql); // Act var result = await controller.Delete(1); // Assert var viewResult = Assert.IsType<BadRequestResult>(result); Assert.NotNull(viewResult); }
public async Task PutShouldReturnReturnOkResultWithModelIdSetToId() { // Arrange var model = new Tag { Id = 1 }; var fakeSql = Substitute.For<IDatabase>(); fakeSql.UpdateAsync(model).Returns(Task.FromResult(true)); var controller = new TagsController(fakeSql); // Act var result = await controller.Put(2, model); // Assert var viewResult = Assert.IsType<OkNegotiatedContentResult<Tag>>(result); Assert.Equal(viewResult.Content.Id, 2); }
public async Task PutShouldReturnInvalidModelStateResultWhenInvalidModel() { // Arrange var model = new Tag(); var fakeSql = Substitute.For<IDatabase>(); fakeSql.CreateAsync(model).Returns(Task.FromResult(1)); var controller = new TagsController(fakeSql) { Configuration = new HttpConfiguration() }; controller.ModelState.AddModelError("FakeError", "This is a Fake Error!"); // Act var result = await controller.Put(1, model); // Assert var viewResult = Assert.IsType<InvalidModelStateResult>(result); Assert.NotNull(viewResult); }