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()); }
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)); }
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()); }
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)); }
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)); }
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()); }
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()); }
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()); }
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()); }