Exemplo n.º 1
0
        public async Task DeleteLeagueSeason_WhenLeagueSeasonIsFoundAndNotDeleted_ShouldReturnBadRequest()
        {
            // Arrange
            var          leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();
            LeagueSeason?leagueSeason           = new LeagueSeason();

            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason);

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

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

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

            var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator);

            int id = 1;

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

            // Assert
            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id)).MustHaveHappenedOnceExactly();
            A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly();
            result.Result.ShouldBeOfType <BadRequestResult>();
        }
Exemplo n.º 2
0
        public async Task PutLeagueSeason_WhenLeagueSeasonIsFoundAndSaved_ShouldReturnModelOfLeagueSeason()
        {
            // Arrange
            var          leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();
            LeagueSeason?leagueSeason           = new LeagueSeason();

            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason);

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

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

            var mapper      = A.Fake <IMapper>();
            var returnModel = new LeagueSeasonModel();

            A.CallTo(() => mapper.Map <LeagueSeasonModel>(leagueSeason)).Returns(returnModel);

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

            var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator);

            int id    = 1;
            var model = new LeagueSeasonModel();

            // Act
            var result = await testController.PutLeagueSeason(id, model);

            // Assert
            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id)).MustHaveHappenedOnceExactly();
            A.CallTo(() => mapper.Map(model, leagueSeason)).MustHaveHappenedOnceExactly();
            A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly();
            A.CallTo(() => mapper.Map <LeagueSeasonModel>(leagueSeason)).MustHaveHappenedOnceExactly();
            result.Value.ShouldBe(returnModel);
        }
        public async Task Details_WhenIdIsNotNullAndLeagueSeasonFound_ShouldReturnLeagueSeasonDetailsView()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();

            var          leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();
            LeagueSeason?leagueSeason           = new LeagueSeason();

            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason);

            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            int?id = 0;

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

            // Assert
            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id.Value)).MustHaveHappenedOnceExactly();
            leagueSeasonsDetailsViewModel.LeagueSeason.ShouldBe(leagueSeason);
            result.ShouldBeOfType <ViewResult>();
            ((ViewResult)result).Model.ShouldBe(leagueSeasonsDetailsViewModel);
        }
Exemplo n.º 4
0
        public async Task GetLeagueSeason_WhenLeagueSeasonIsNotNull_ShouldReturnLeagueSeasonModelOfDesiredLeagueSeason()
        {
            // Arrange
            var          leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();
            LeagueSeason?leagueSeason           = new LeagueSeason();

            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason);

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

            var mapper = A.Fake <IMapper>();
            LeagueSeasonModel?leagueSeasonModel = new LeagueSeasonModel();

            A.CallTo(() => mapper.Map <LeagueSeasonModel>(A <LeagueSeason> .Ignored)).Returns(leagueSeasonModel);

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

            var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator);

            int id = 1;

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

            // Assert
            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id)).MustHaveHappenedOnceExactly();
            A.CallTo(() => mapper.Map <LeagueSeasonModel>(leagueSeason)).MustHaveHappenedOnceExactly();
            result.Value.ShouldBeOfType <LeagueSeasonModel>();
        }
        public async Task EditPost_WhenIdEqualsLeagueSeasonIdAndModelStateIsValidAndDbUpdateConcurrencyExceptionIsCaughtAndLeagueSeasonWithIdExists_ShouldRethrowException()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();

            var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();

            A.CallTo(() => leagueSeasonRepository.Update(A <LeagueSeason> .Ignored)).Throws <DbUpdateConcurrencyException>();
            A.CallTo(() => leagueSeasonRepository.LeagueSeasonExists(A <int> .Ignored)).Returns(true);

            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            int id           = 1;
            var leagueSeason = new LeagueSeason
            {
                ID = 1
            };

            // Act
            var func = new Func <Task <IActionResult> >(async() => await testController.Edit(id, leagueSeason));

            // Assert
            await func.ShouldThrowAsync <DbUpdateConcurrencyException>();
        }
        public async Task EditPost_WhenIdEqualsLeagueSeasonIdAndModelStateIsNotValid_ShouldReturnLeagueSeasonEditView()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();
            var leagueSeasonRepository        = A.Fake <ILeagueSeasonRepository>();
            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            int id           = 1;
            var leagueSeason = new LeagueSeason
            {
                ID = 1
            };

            testController.ModelState.AddModelError("LongName", "Please enter a long name.");

            // Act
            var result = await testController.Edit(id, leagueSeason);

            // Assert
            A.CallTo(() => leagueSeasonRepository.Update(A <LeagueSeason> .Ignored)).MustNotHaveHappened();
            A.CallTo(() => sharedRepository.SaveChangesAsync()).MustNotHaveHappened();
            result.ShouldBeOfType <ViewResult>();
            ((ViewResult)result).Model.ShouldBe(leagueSeason);
        }
        public async Task EditPost_WhenIdEqualsLeagueSeasonIdAndModelStateIsValidAndDbUpdateConcurrencyExceptionIsNotCaught_ShouldUpdateLeagueSeasonInDataStoreAndRedirectToIndexView()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();
            var leagueSeasonRepository        = A.Fake <ILeagueSeasonRepository>();
            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            int id           = 1;
            var leagueSeason = new LeagueSeason
            {
                ID = 1
            };

            // Act
            var result = await testController.Edit(id, leagueSeason);

            // Assert
            A.CallTo(() => leagueSeasonRepository.Update(leagueSeason)).MustHaveHappenedOnceExactly();
            A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly();
            result.ShouldBeOfType <RedirectToActionResult>();
            ((RedirectToActionResult)result).ActionName.ShouldBe <string>(nameof(testController.Index));
        }
        public async Task EditPost_WhenIdEqualsLeagueSeasonIdAndModelStateIsValidAndDbUpdateConcurrencyExceptionIsCaughtAndLeagueSeasonWithIdDoesNotExist_ShouldReturnNotFound()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();

            var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();

            A.CallTo(() => leagueSeasonRepository.Update(A <LeagueSeason> .Ignored)).Throws <DbUpdateConcurrencyException>();
            A.CallTo(() => leagueSeasonRepository.LeagueSeasonExists(A <int> .Ignored)).Returns(false);

            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            int id           = 1;
            var leagueSeason = new LeagueSeason
            {
                ID = 1
            };

            // Act
            var result = await testController.Edit(id, leagueSeason);

            // Assert
            result.ShouldBeOfType <NotFoundResult>();
        }
Exemplo n.º 9
0
        public async Task PutLeagueSeason_WhenLeagueSeasonIsNotFound_ShouldReturnNotFoundResult()
        {
            // Arrange
            var          leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();
            LeagueSeason?leagueSeason           = null;

            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason);

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

            var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator);

            int id    = 1;
            var model = new LeagueSeasonModel();

            // Act
            var result = await testController.PutLeagueSeason(id, model);

            // Assert
            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id)).MustHaveHappenedOnceExactly();
            result.Result.ShouldBeOfType <NotFoundObjectResult>();
            ((NotFoundObjectResult)result.Result).Value.ShouldBe($"Could not find leagueSeason with ID of {id}");
        }
Exemplo n.º 10
0
        public async Task GetLeagueSeason_WhenExceptionIsCaught_ShouldReturnInternalServerError()
        {
            // Arrange
            var          leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();
            LeagueSeason?leagueSeason           = new LeagueSeason();

            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Throws <Exception>();

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

            var mapper = A.Fake <IMapper>();
            LeagueSeasonModel?leagueSeasonModel = new LeagueSeasonModel();

            A.CallTo(() => mapper.Map <LeagueSeasonModel>(A <LeagueSeason> .Ignored)).Returns(leagueSeasonModel);

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

            var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator);

            int id = 1;

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

            // Assert
            result.Result.ShouldBeOfType <ObjectResult>();
            ((ObjectResult)result.Result).StatusCode.ShouldBe(StatusCodes.Status500InternalServerError);
            ((ObjectResult)result.Result).Value.ShouldBe("Database failure");
        }
        public void CreateGet_ShouldReturnLeagueSeasonCreateView()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();
            var leagueSeasonRepository        = A.Fake <ILeagueSeasonRepository>();
            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            // Act
            var result = testController.Create();

            // Assert
            result.ShouldBeOfType <ViewResult>();
        }
        public async Task Details_WhenIdIsNull_ShouldReturnNotFound()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();
            var leagueSeasonRepository        = A.Fake <ILeagueSeasonRepository>();
            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            int?id = null;

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

            // Assert
            result.ShouldBeOfType <NotFoundResult>();
        }
        public async Task DeleteConfirmed_ShouldDeleteLeagueSeasonFromDataStoreAndRedirectToIndexView()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();
            var leagueSeasonRepository        = A.Fake <ILeagueSeasonRepository>();
            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            int id = 1;

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

            // Assert
            A.CallTo(() => leagueSeasonRepository.DeleteAsync(id)).MustHaveHappenedOnceExactly();
            A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly();
            result.ShouldBeOfType <RedirectToActionResult>();
            ((RedirectToActionResult)result).ActionName.ShouldBe <string>(nameof(testController.Index));
        }
        public async Task CreatePost_WhenModelStateIsValid_ShouldAddLeagueSeasonToDataStoreAndRedirectToIndexView()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();
            var leagueSeasonRepository        = A.Fake <ILeagueSeasonRepository>();
            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            var leagueSeason = new LeagueSeason();

            // Act
            var result = await testController.Create(leagueSeason);

            // Assert
            A.CallTo(() => leagueSeasonRepository.AddAsync(leagueSeason)).MustHaveHappenedOnceExactly();
            A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly();
            result.ShouldBeOfType <RedirectToActionResult>();
            ((RedirectToActionResult)result).ActionName.ShouldBe <string>(nameof(testController.Index));
        }
        public async Task EditPost_WhenIdDoesNotEqualLeagueSeasonId_ShouldReturnNotFound()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();
            var leagueSeasonRepository        = A.Fake <ILeagueSeasonRepository>();
            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            int id           = 0;
            var leagueSeason = new LeagueSeason
            {
                ID = 1
            };

            // Act
            var result = await testController.Edit(id, leagueSeason);

            // Assert
            result.ShouldBeOfType <NotFoundResult>();
        }
        public async Task CreatePost_WhenModelStateIsNotValid_ShouldReturnLeagueSeasonCreateView()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();
            var leagueSeasonRepository        = A.Fake <ILeagueSeasonRepository>();
            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

            var leagueSeason = new LeagueSeason();

            testController.ModelState.AddModelError("LongName", "Please enter a long name.");

            // Act
            var result = await testController.Create(leagueSeason);

            // Assert
            A.CallTo(() => leagueSeasonRepository.AddAsync(leagueSeason)).MustNotHaveHappened();
            A.CallTo(() => sharedRepository.SaveChangesAsync()).MustNotHaveHappened();
            result.ShouldBeOfType <ViewResult>();
            ((ViewResult)result).Model.ShouldBe(leagueSeason);
        }
Exemplo n.º 17
0
        public async Task GetLeagueSeasons_WhenNoExceptionIsCaught_ShouldGetLeagueSeasons()
        {
            // Arrange
            var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();
            var leagueSeasons          = new List <LeagueSeason>();

            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonsAsync()).Returns(leagueSeasons);

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

            var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator);

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

            // Assert
            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonsAsync()).MustHaveHappenedOnceExactly();
            A.CallTo(() => mapper.Map <LeagueSeasonModel[]>(leagueSeasons)).MustHaveHappenedOnceExactly();
            result.ShouldBeOfType <ActionResult <LeagueSeasonModel[]> >();
            result.Value.ShouldBe(mapper.Map <LeagueSeasonModel[]>(leagueSeasons));
        }
        public async Task Index_ShouldReturnLeagueSeasonsIndexView()
        {
            // Arrange
            var leagueSeasonsIndexViewModel   = A.Fake <ILeagueSeasonsIndexViewModel>();
            var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>();

            var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>();
            var leagueSeasons          = new List <LeagueSeason>();

            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonsAsync()).Returns(leagueSeasons);

            var sharedRepository = A.Fake <ISharedRepository>();
            var testController   = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel,
                                                               leagueSeasonRepository, sharedRepository);

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

            // Assert
            A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonsAsync()).MustHaveHappenedOnceExactly();
            leagueSeasonsIndexViewModel.LeagueSeasons.ShouldBe(leagueSeasons);
            result.ShouldBeOfType <ViewResult>();
            ((ViewResult)result).Model.ShouldBe(leagueSeasonsIndexViewModel);
        }