Exemple #1
0
        public async Task DeleteSeason_WhenSeasonIsFoundAndNotDeleted_ShouldReturnBadRequest()
        {
            // Arrange
            var    seasonRepository = A.Fake <ISeasonRepository>();
            Season?season           = new Season();

            A.CallTo(() => seasonRepository.GetSeasonAsync(A <int> .Ignored)).Returns(season);

            var sharedRepository = A.Fake <ISharedRepository>();

            A.CallTo(() => sharedRepository.SaveChangesAsync()).Returns(0);

            var mapper        = A.Fake <IMapper>();
            var linkGenerator = A.Fake <LinkGenerator>();

            var testController = new SeasonsController(seasonRepository, sharedRepository, mapper, linkGenerator);

            int id = 1;

            // Act
            var result = await testController.DeleteSeason(id);

            // Assert
            A.CallTo(() => seasonRepository.GetSeasonAsync(id)).MustHaveHappenedOnceExactly();
            A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly();
            result.Result.ShouldBeOfType <BadRequestResult>();
        }
Exemple #2
0
        public async Task DeleteSeason_WhenCalled_DeleteSeasonFromDb()
        {
            const int id             = 1;
            var       expectedSeason = new Season
            {
                Id = id
            };

            _seasonService.Setup(s => s.GetByIdAsync(id)).ReturnsAsync(expectedSeason);

            var result = await _seasonsController.DeleteSeason(id);

            var okObjectResult = result as OkObjectResult;

            _seasonService.Verify(s => s.DeleteAsync(It.IsAny <Season>()), Times.Once);

            Assert.That(result, Is.TypeOf <OkObjectResult>());
            Assert.That(okObjectResult.Value, Is.EqualTo(id));
        }
Exemple #3
0
        public async Task DeleteSeason_WhenExceptionIsCaught_ShouldReturnInternalServerError()
        {
            // Arrange
            var seasonRepository = A.Fake <ISeasonRepository>();

            A.CallTo(() => seasonRepository.GetSeasonAsync(A <int> .Ignored)).Throws <Exception>();

            var sharedRepository = A.Fake <ISharedRepository>();
            var mapper           = A.Fake <IMapper>();
            var linkGenerator    = A.Fake <LinkGenerator>();

            var testController = new SeasonsController(seasonRepository, sharedRepository, mapper, linkGenerator);

            int id = 1;

            // Act
            var result = await testController.DeleteSeason(id);

            // Assert
            result.Result.ShouldBeOfType <ObjectResult>();
            ((ObjectResult)result.Result).StatusCode.ShouldBe(StatusCodes.Status500InternalServerError);
            ((ObjectResult)result.Result).Value.ShouldBe("Database failure");
        }
Exemple #4
0
        public async Task DeleteSeason_WhenSeasonIsNotFound_ShouldReturnNotFoundResult()
        {
            // Arrange
            var    seasonRepository = A.Fake <ISeasonRepository>();
            Season?season           = null;

            A.CallTo(() => seasonRepository.GetSeasonAsync(A <int> .Ignored)).Returns(season);

            var sharedRepository = A.Fake <ISharedRepository>();
            var mapper           = A.Fake <IMapper>();
            var linkGenerator    = A.Fake <LinkGenerator>();

            var testController = new SeasonsController(seasonRepository, sharedRepository, mapper, linkGenerator);

            int id = 1;

            // Act
            var result = await testController.DeleteSeason(id);

            // Assert
            A.CallTo(() => seasonRepository.GetSeasonAsync(id)).MustHaveHappenedOnceExactly();
            result.Result.ShouldBeOfType <NotFoundObjectResult>();
            ((NotFoundObjectResult)result.Result).Value.ShouldBe($"Could not find season with ID of {id}");
        }