private TournamentPairing CreatePairing(int order, TournamentTeam teamA, TournamentTeam teamB, int numberOfGames) { var pairing = new TournamentPairing(this, this.Phase, order, teamA, teamB, numberOfGames); this.Pairings.Add(pairing); return(pairing); }
public void SynchronizeGames() { // Arrange var mockUnitOfWork = TestUtils.GetUnitOfWorkMock(); mockUnitOfWork.SetupGet(x => x.Tournaments).Returns(new MockTournamentRepository()); mockUnitOfWork.SetupGet(x => x.Games).Returns(new MockGamesRepository()); var unitOfWork = mockUnitOfWork.Object; var gameServiceMock = new Mock<IGameService>(); var service = new TournamentService(unitOfWork, gameServiceMock.Object, TestUtils.MockMapTemplateProvider()); var tournament = new Tournament("T", 2, 0, 1, 1, DateTime.UtcNow, DateTime.UtcNow, new GameOptions { NumberOfPlayersPerTeam = 1 }); var user1 = TestUtils.CreateUser("1"); var user2 = TestUtils.CreateUser("2"); var teamA = new TournamentTeam(tournament); teamA.AddUser(user1); var teamB = new TournamentTeam(tournament); teamB.AddUser(user2); var pairing = new TournamentPairing(tournament, 1, 1, teamA, teamB, 1); pairing.State = PairingState.Active; tournament.Pairings = new[] { pairing }; tournament.Teams.Add(teamA); tournament.Teams.Add(teamB); var game = new Game(null, Enums.GameType.Tournament, "T", "WorldDeluxe", new GameOptions()); game.State = Enums.GameState.Ended; var team1 = new Team(game); team1.Players.Add(new Player(user1, team1) { Outcome = Enums.PlayerOutcome.Won }); game.Teams.Add(team1); var team2 = new Team(game); team2.Players.Add(new Player(user2, team2) { Outcome = Enums.PlayerOutcome.Defeated }); game.Teams.Add(team2); pairing.Games = new[] { game }; // Act service.SynchronizeGamesToPairings(tournament); // Assert Assert.IsTrue(tournament.Pairings.First().CanWinnerBeDetermined); Assert.AreEqual(PairingState.Done, pairing.State); Assert.AreEqual(TournamentTeamState.InActive, teamB.State); Assert.AreEqual(TournamentTeamState.Active, teamA.State); }
private TournamentPairing CreatePairing(int order, TournamentTeam teamA, TournamentTeam teamB, int numberOfGames) { var pairing = new TournamentPairing(this, this.Phase, order, teamA, teamB, numberOfGames); this.Pairings.Add(pairing); return pairing; }
private void CreateGamesForPairing(TournamentPairing pairing) { Debug.Assert(pairing.State == PairingState.None, "Pairing state is not correct"); var systemUser = this.unitOfWork.Users.FindByName("System"); for (int i = 0; i < pairing.NumberOfGames; ++i) { var game = gameService.Create( Enums.GameType.Tournament, systemUser, pairing.GenerateGameName(i), pairing.Tournament.GetMapTemplateForGame(), pairing.Tournament.Options); game.TournamentPairingId = pairing.Id; pairing.Games.Add(game); var teamA = game.AddTeam(); foreach (var participant in pairing.TeamA.Participants) { teamA.AddPlayer(participant.User); } var teamB = game.AddTeam(); foreach (var participant in pairing.TeamB.Participants) { teamB.AddPlayer(participant.User); } game.Start(this.mapTemplateProvider.GetTemplate(game.MapTemplateName)); } pairing.State = PairingState.Active; }