public async Task <ActionResult <LeagueSeason> > PostLeagueSeason(LeagueSeasonModel model)
        {
            try
            {
                var location = _linkGenerator.GetPathByAction("GetLeagueSeason", "LeagueSeasons", new { id = -1 });
                if (string.IsNullOrWhiteSpace(location))
                {
                    return(BadRequest("Could not use ID"));
                }

                var leagueSeason = _mapper.Map <LeagueSeason>(model);

                await _leagueSeasonRepository.AddAsync(leagueSeason);

                if (await _sharedRepository.SaveChangesAsync() > 0)
                {
                    return(Created(location, _mapper.Map <LeagueSeasonModel>(leagueSeason)));
                }

                return(BadRequest());
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, Settings.DatabaseFailureString));
            }
        }
Beispiel #2
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");
        }
Beispiel #3
0
        public async Task PutLeagueSeason_WhenLeagueSeasonIsFoundAndNotSaved_ShouldReturnBadRequestResult()
        {
            // 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 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)).MustNotHaveHappened();
            result.Result.ShouldBeOfType <BadRequestResult>();
        }
Beispiel #4
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}");
        }
Beispiel #5
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 <ActionResult <LeagueSeasonModel> > PutLeagueSeason(int id, LeagueSeasonModel model)
        {
            try
            {
                var leagueSeason = await _leagueSeasonRepository.GetLeagueSeasonAsync(id);

                if (leagueSeason is null)
                {
                    return(NotFound($"Could not find leagueSeason with ID of {id}"));
                }

                _mapper.Map(model, leagueSeason);

                if (await _sharedRepository.SaveChangesAsync() > 0)
                {
                    return(_mapper.Map <LeagueSeasonModel>(leagueSeason));
                }

                return(BadRequest());
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, Settings.DatabaseFailureString));
            }
        }