Beispiel #1
0
        public void Create_PlayerIsCaptainOfExistingTeam_ValidationExceptionThrown()
        {
            // Arrange
            var newTeam = new CreateTeamDtoBuilder().Build();
            var captain = new PlayerBuilder().Build();

            var captainLeadTeam = new TeamBuilder().WithId(SPECIFIC_TEAM_ID).Build();
            var testTeams       = new TeamServiceTestFixture().AddTeam(captainLeadTeam).Build();

            _getPlayerByIdQueryMock.Setup(pr =>
                                          pr.Execute(It.Is <FindByIdCriteria>(cr =>
                                                                              cr.Id == captain.Id)))
            .Returns(captain);
            _getTeamByCaptainQueryMock.Setup(tm =>
                                             tm.Execute(It.Is <FindByCaptainIdCriteria>(cr =>
                                                                                        cr.CaptainId == captain.Id)))
            .Returns(testTeams.FirstOrDefault(tm => tm.Captain.Id == captain.Id));

            // Act
            var sut          = BuildSUT();
            var gotException = false;

            try
            {
                sut.Create(newTeam);
            }
            catch (ValidationException)
            {
                gotException = true;
            }

            // Assert
            Assert.IsTrue(gotException);
            VerifyCreateTeam(newTeam, Times.Never());
        }
Beispiel #2
0
        public void Create_TeamWithGivenNameAlreadyExists_ArgumentExceptionThrown()
        {
            // Arrange
            MockGetPlayerByIdQuery(new PlayerBuilder().Build());
            var newTeam          = new CreateTeamDtoBuilder().WithName(TEAM_NAME_TO_VALIDATE).Build();
            var teamWithSameName = new TeamBuilder().WithName(TEAM_NAME_TO_VALIDATE).Build();

            MockGetTeamByNameQuery(teamWithSameName);

            var       sut          = BuildSUT();
            Exception exception    = null;
            var       argExMessage =
                TournamentResources.TeamNameInTournamentNotUnique;

            // Act
            try
            {
                sut.Create(newTeam);
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            // Assert
            VerifyExceptionThrown(
                exception,
                new ArgumentException(argExMessage));
        }
Beispiel #3
0
        public void Create_InvalidCaptainId_MissingEntityExceptionThrown()
        {
            // Arrange
            var newTeam    = new CreateTeamDtoBuilder().Build();
            var testPlayer = new PlayerBuilder(SPECIFIC_PLAYER_ID).Build();

            _getPlayerByIdQueryMock.Setup(pr => pr.Execute(It.Is <FindByIdCriteria>(cr => cr.Id == testPlayer.Id))).Returns(testPlayer);

            // Act
            var sut          = BuildSUT();
            var gotException = false;

            try
            {
                sut.Create(newTeam);
            }
            catch (MissingEntityException)
            {
                gotException = true;
            }

            // Assert
            Assert.IsTrue(gotException);
            VerifyCreateTeam(newTeam, Times.Never());
        }
Beispiel #4
0
        public void Create_InvalidTeamCoachNameNotAllowedSymbols_ArgumentExceptionThrown()
        {
            var invalidCoachName = "name%-)";
            var argExMessage     = Resources.ValidationCoachName;
            var testTeam         = new CreateTeamDtoBuilder()
                                   .WithCoach(invalidCoachName)
                                   .Build();
            var testPlayer = new PlayerBuilder(PLAYER_ID).Build();

            MockGetPlayerBySpecificIdQuery(PLAYER_ID, testPlayer);
            MockGetAllTeamsQuery(CreateSeveralTeams());
            MockTeamRepositoryAddToThrow(testTeam,
                                         new ArgumentException(argExMessage));
            Exception exception = null;
            var       sut       = BuildSUT();

            // Act
            try
            {
                sut.Create(testTeam);
            }
            catch (ArgumentException ex)
            {
                exception = ex;
            }

            // Assert
            VerifyExceptionThrown(
                exception,
                new ArgumentException(argExMessage));
        }
Beispiel #5
0
        public void Create_EmptyTeamName_ArgumentExceptionThrown()
        {
            var invalidName  = string.Empty;
            var argExMessage = TournamentResources.ValidationTeamName;
            var testTeam     = new CreateTeamDtoBuilder()
                               .WithName(invalidName)
                               .Build();
            var testPlayer = new PlayerBuilder(PLAYER_ID).Build();

            _getPlayerByIdQueryMock.Setup(pr =>
                                          pr.Execute(It.Is <FindByIdCriteria>(cr => cr.Id == testPlayer.Id))).Returns(testPlayer);
            MockGetAllTeamsQuery(CreateSeveralTeams());
            MockTeamRepositoryAddToThrow(testTeam,
                                         new ArgumentException(argExMessage));
            Exception exception = null;
            var       sut       = BuildSUT();

            // Act
            try
            {
                sut.Create(testTeam);
            }
            catch (ArgumentException ex)
            {
                exception = ex;
            }

            // Assert
            VerifyExceptionThrown(
                exception,
                new ArgumentException(argExMessage));
        }
Beispiel #6
0
        public void Create_EmptyTeamAchievements_TeamCreated()
        {
            // Arrange
            MockGetPlayerByIdQuery(new PlayerBuilder().Build());
            var newTeam = new CreateTeamDtoBuilder().WithAchievements(string.Empty).Build();

            MockGetAllTeamsQuery(CreateSeveralTeams());
            var sut = BuildSUT();

            // Act
            sut.Create(newTeam);

            // Assert
            VerifyCreateTeam(newTeam, Times.Once());
        }
Beispiel #7
0
        public void Create_CreateNotPermitted_ExceptionThrown()
        {
            // Arrange
            var testData = new CreateTeamDtoBuilder().Build();

            MockAuthServiceThrowsExeption(AuthOperations.Teams.Create);

            var sut = BuildSUT();

            // Act
            sut.Create(testData);

            // Assert
            VerifyCreateTeam(testData, Times.Never());
            VerifyCheckAccess(AuthOperations.Teams.Create, Times.Once());
        }
Beispiel #8
0
        public void Create_CreateDtoTeamPassed_CaptainUpdated()
        {
            // Arrange
            var newTeamDto = new CreateTeamDtoBuilder().WithCaptain(new PlayerId(SPECIFIC_PLAYER_ID)).Build();
            var team       = new TeamBuilder().WithCaptain(new PlayerId(SPECIFIC_PLAYER_ID)).Build();
            var captain    = new PlayerBuilder(SPECIFIC_PLAYER_ID).Build();

            MockGetPlayerBySpecificIdQuery(SPECIFIC_PLAYER_ID, captain);
            MockTeamRepositoryAddToReturn(team);

            var sut = BuildSUT();

            // Act
            var newTeam = sut.Create(newTeamDto);

            // Assert
            Assert.AreEqual(newTeam.Captain.Id, captain.Id);
            VerifyCreateTeam(newTeamDto, Times.Once());
        }
Beispiel #9
0
        public void Create_PlayerIsNotCaptainOfExistingTeam_TeamCreated()
        {
            // Arrange
            var newTeamDto = new CreateTeamDtoBuilder().WithCaptain(new PlayerId(SPECIFIC_PLAYER_ID)).Build();
            var newTeam    = new TeamBuilder().WithCaptain(new PlayerId(SPECIFIC_PLAYER_ID)).Build();
            var captain    = new PlayerBuilder(SPECIFIC_PLAYER_ID).Build();

            MockGetPlayerByIdQuery(captain);
            MockGetTeamByCaptainId(captain.Id, null);
            MockGetAllTeamsQuery(CreateSeveralTeams());
            MockTeamRepositoryAddToReturn(newTeam);

            // Act
            var sut         = BuildSUT();
            var createdTeam = sut.Create(newTeamDto);

            // Assert
            Assert.AreEqual(createdTeam.Captain.Id, captain.Id);
            VerifyCreateTeam(newTeamDto, Times.Once());
        }