コード例 #1
0
        public async Task GetSeasons_WhenCalled_ReturnSeasonsFromDb()
        {
            var seasonQuery = new SeasonQuery
            {
                PageNumber      = 1,
                PageSize        = 10,
                SortBy          = "name",
                IsSortAscending = true
            };

            var expectedSeasons = new PaginatedList <Season>
            {
                Pagination = new Pagination
                {
                    PageNumber = 1,
                    PageSize   = 10
                },
                Items = new List <Season>()
                {
                    new Season {
                        Id = 1
                    },
                    new Season {
                        Id = 2
                    },
                    new Season {
                        Id = 3
                    },
                }
            };

            _seasonService.Setup(s => s.GetAsync(seasonQuery)).ReturnsAsync(expectedSeasons);

            var result = await _seasonsController.GetSeasons(seasonQuery);

            var okObjectResult      = result as OkObjectResult;
            var okObjectResultValue = okObjectResult.Value as PaginatedList <SeasonListDto>;

            Assert.That(result, Is.TypeOf <OkObjectResult>());

            Assert.That(okObjectResultValue, Is.Not.Null);
            Assert.That(okObjectResultValue.Pagination.PageNumber, Is.EqualTo(1));
            Assert.That(okObjectResultValue.Pagination.PageSize, Is.EqualTo(10));
            Assert.That(okObjectResultValue.Items.Count(), Is.EqualTo(3));
        }
コード例 #2
0
        public async Task GetSeasons_WhenExceptionIsCaught_ShouldReturnInternalServerError()
        {
            // Arrange
            var seasonRepository = A.Fake <ISeasonRepository>();

            A.CallTo(() => seasonRepository.GetSeasonsAsync()).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);

            // Act
            var result = await testController.GetSeasons();

            // Assert
            result.Result.ShouldBeOfType <ObjectResult>();
            ((ObjectResult)result.Result).StatusCode.ShouldBe(StatusCodes.Status500InternalServerError);
            ((ObjectResult)result.Result).Value.ShouldBe("Database failure");
        }
コード例 #3
0
        public async Task GetSeasons_WhenNoExceptionIsCaught_ShouldGetSeasons()
        {
            // Arrange
            var seasonRepository = A.Fake <ISeasonRepository>();
            var seasons          = new List <Season>();

            A.CallTo(() => seasonRepository.GetSeasonsAsync()).Returns(seasons);

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

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

            // Act
            var result = await testController.GetSeasons();

            // Assert
            A.CallTo(() => seasonRepository.GetSeasonsAsync()).MustHaveHappenedOnceExactly();
            A.CallTo(() => mapper.Map <SeasonModel[]>(seasons)).MustHaveHappenedOnceExactly();
            result.ShouldBeOfType <ActionResult <SeasonModel[]> >();
            result.Value.ShouldBe(mapper.Map <SeasonModel[]>(seasons));
        }