コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }