Example #1
0
        public async Task PutLeague_WhenLeagueIsNotFound_ShouldReturnNotFoundResult()
        {
            // Arrange
            var    leagueRepository = A.Fake <ILeagueRepository>();
            League?league           = null;

            A.CallTo(() => leagueRepository.GetLeagueAsync(A <int> .Ignored)).Returns(league);

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

            var testController = new LeaguesController(leagueRepository, sharedRepository, mapper, linkGenerator);

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

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

            // Assert
            A.CallTo(() => leagueRepository.GetLeagueAsync(id)).MustHaveHappenedOnceExactly();
            result.Result.ShouldBeOfType <NotFoundObjectResult>();
            ((NotFoundObjectResult)result.Result).Value.ShouldBe($"Could not find league with ID of {id}");
        }
Example #2
0
        public async Task PutLeague_WhenLeagueIsFoundAndNotSaved_ShouldReturnBadRequestResult()
        {
            // Arrange
            var    leagueRepository = A.Fake <ILeagueRepository>();
            League?league           = new League();

            A.CallTo(() => leagueRepository.GetLeagueAsync(A <int> .Ignored)).Returns(league);

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

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

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

            A.CallTo(() => mapper.Map <LeagueModel>(league)).Returns(returnModel);

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

            var testController = new LeaguesController(leagueRepository, sharedRepository, mapper, linkGenerator);

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

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

            // Assert
            A.CallTo(() => leagueRepository.GetLeagueAsync(id)).MustHaveHappenedOnceExactly();
            A.CallTo(() => mapper.Map(model, league)).MustHaveHappenedOnceExactly();
            A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly();
            A.CallTo(() => mapper.Map <LeagueModel>(league)).MustNotHaveHappened();
            result.Result.ShouldBeOfType <BadRequestResult>();
        }
Example #3
0
        public void TestUpdateLeagueSuccess()
        {
            var league = new League
            {
                Type    = "Soccer",
                Name    = "West Chester coed over 30",
                Address = new Address
                {
                    street = "400 Boot Rd",
                    city   = "Downingtown",
                    state  = "PA",
                    zip    = "19053"
                },
                Image = "http://editor.swagger.io/photos"
            };

            var databaseFactory  = new TestDatabaseFactory();
            var leagueController = new LeaguesController(databaseFactory);

            SetupControllerForTests(leagueController);

            // Add new league
            var response = leagueController.PostLeague(league);

            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Created), "The expected status code is 201 created");

            // Get the newly created league
            var leagues = leagueController.Get(league.Type, league.Name);

            Assert.That(leagues.Count, Is.EqualTo(1), "The number of leagues shoud be one");
            var createdLeague = leagues[0];

            // Modify league name
            createdLeague.Name = createdLeague.Name + "_Updated";

            // Update league
            var ret = leagueController.PutLeague(createdLeague.Id, createdLeague);

            // Get updated league
            leagues = leagueController.Get(league.Type, league.Name);
            Assert.That(leagues.Count, Is.EqualTo(1), "The number of leagues should be one");
            var modifiedLeague = leagues[0];

            Assert.That(modifiedLeague.Id, Is.EqualTo(createdLeague.Id), "The league Id should remain the same");
            Assert.That(modifiedLeague.Name, Is.EqualTo(createdLeague.Name), "The league name should remain the same");
        }
Example #4
0
        public async Task PutLeague_WhenExceptionIsCaught_ShouldReturnInternalServerError()
        {
            // Arrange
            var leagueRepository = A.Fake <ILeagueRepository>();

            A.CallTo(() => leagueRepository.GetLeagueAsync(A <int> .Ignored)).Throws <Exception>();

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

            var testController = new LeaguesController(leagueRepository, sharedRepository, mapper, linkGenerator);

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

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

            // Assert
            result.Result.ShouldBeOfType <ObjectResult>();
            ((ObjectResult)result.Result).StatusCode.ShouldBe(StatusCodes.Status500InternalServerError);
            ((ObjectResult)result.Result).Value.ShouldBe("Database failure");
        }