public async Task TestPostAsyncSuccess() { var repository = Substitute.For <ISiteAvailabilityRepository>(); var controller = new SiteAvailabilityController(repository); var site = new Site { Id = Guid.NewGuid(), Url = "url1", IsAvailable = false }; repository.AddSiteAsync(site).Returns(Task.FromResult <Site>(site)); var result = await controller.PostAsync(site); Assert.IsTrue(result is OkObjectResult); var successResult = (OkObjectResult)result; Assert.AreEqual(site, successResult.Value); }
public async Task TestPostAsyncFail() { var repository = Substitute.For <ISiteAvailabilityRepository>(); var controller = new SiteAvailabilityController(repository); var site = new Site { Id = Guid.NewGuid(), Url = "", IsAvailable = false }; repository.AddSiteAsync(site).Returns(Task.FromResult <Site>(site)); controller.ValidateViewModel <Site, SiteAvailabilityController>(site); var result = await controller.PostAsync(site); Assert.IsTrue(result is BadRequestObjectResult); var failResult = (BadRequestObjectResult)result; Assert.AreEqual(StatusCodes.Status400BadRequest, failResult.StatusCode); Assert.AreEqual(false, controller.ModelState.IsValid); }