public void RecalculateForSingleGame()
        {
            using (var dataContext = GetInstanceFromRootContainer <IDataContext>())
            {
                IChampionRepository championRepository = new ChampionRepository(dataContext);

                IChampionRecalculator championRecalculator = new ChampionRecalculator(dataContext, championRepository);
                ApplicationUser       user = new ApplicationUser
                {
                    Id = "80629c07-b8df-4deb-a9e3-5b503ce7d7df",
                    CurrentGamingGroupId = 1
                };
                championRecalculator.RecalculateChampion(2005, user, dataContext);
            }
        }
Beispiel #2
0
        public void SetUp()
        {
            championRepositoryMock = MockRepository.GenerateMock <IChampionRepository>();
            dataContextMock        = MockRepository.GenerateMock <IDataContext>();
            championRecalculator   = new ChampionRecalculator(dataContextMock, championRepositoryMock);
            applicationUser        = new ApplicationUser();

            gameDefinition = new GameDefinition
            {
                ChampionId = previousChampionId
            };
            dataContextMock.Expect(mock => mock.FindById <GameDefinition>(gameDefinitionId))
            .Return(gameDefinition);
            savedChampion = new Champion {
                Id = newChampionId
            };
            dataContextMock.Expect(mock => mock.Save(Arg <Champion> .Is.Anything, Arg <ApplicationUser> .Is.Anything))
            .Return(savedChampion);
        }
Beispiel #3
0
        public void RecalculateForSingleGame()
        {
            using (NemeStatsDbContext dbContext = new NemeStatsDbContext())
            {
                SecuredEntityValidatorFactory factory = new SecuredEntityValidatorFactory();

                using (NemeStatsDataContext dataContext = new NemeStatsDataContext(dbContext, factory))
                {
                    IChampionRepository championRepository = new ChampionRepository(dataContext);

                    IChampionRecalculator championRecalculator = new ChampionRecalculator(dataContext, championRepository);
                    ApplicationUser       user = new ApplicationUser
                    {
                        Id = "80629c07-b8df-4deb-a9e3-5b503ce7d7df",
                        CurrentGamingGroupId = 1
                    };
                    championRecalculator.RecalculateChampion(2005, user);
                }
            }
        }
Beispiel #4
0
        public void SetUp()
        {
            dataContextMock                 = MockRepository.GenerateMock <IDataContext>();
            championRepositoryMock          = MockRepository.GenerateMock <IChampionRepository>();
            championRecalculatorPartialMock = MockRepository.GeneratePartialMock <ChampionRecalculator>(dataContextMock,
                                                                                                        championRepositoryMock);

            List <GameDefinition> allGameDefinitions = new List <GameDefinition>
            {
                new GameDefinition {
                    Active = true, Id = 1
                },
                new GameDefinition {
                    Active = true, Id = 2
                },
                new GameDefinition {
                    Active = false, Id = 3
                }
            };

            allGameDefinitionsQueryable = allGameDefinitions.AsQueryable();

            dataContextMock.Expect(mock => mock.GetQueryable <GameDefinition>()).Return(allGameDefinitionsQueryable);
        }
Beispiel #5
0
        private void CreatePlayedGames(NemeStatsDataContext dataContext)
        {
            IPlayerRepository                        playerRepository                        = new EntityFrameworkPlayerRepository(dataContext);
            INemesisRecalculator                     nemesisRecalculator                     = new NemesisRecalculator(dataContext, playerRepository);
            IChampionRepository                      championRepository                      = new ChampionRepository(dataContext);
            IChampionRecalculator                    championRecalculator                    = new ChampionRecalculator(dataContext, championRepository);
            ISecuredEntityValidator <Player>         securedEntityValidatorForPlayers        = new SecuredEntityValidator <Player>();
            ISecuredEntityValidator <GameDefinition> securedEntityValidatorForGameDefinition = new SecuredEntityValidator <GameDefinition>();
            IPlayedGameCreator                       playedGameCreator                       = new PlayedGameCreator(
                dataContext,
                playedGameTracker,
                nemesisRecalculator,
                championRecalculator,
                securedEntityValidatorForPlayers,
                securedEntityValidatorForGameDefinition);

            List <Player> players = new List <Player>()
            {
                testPlayer1, testPlayer2
            };
            List <int> playerRanks = new List <int>()
            {
                1, 1
            };
            PlayedGame playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);

            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer1, testPlayer2, testPlayer3
            };
            playerRanks = new List <int>()
            {
                1, 2, 3
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer1, testPlayer3, testPlayer2
            };
            playerRanks = new List <int>()
            {
                1, 2, 3
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer3, testPlayer1
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            //make player4 beat player 1 three times
            players = new List <Player>()
            {
                testPlayer4, testPlayer1, testPlayer2, testPlayer3
            };
            playerRanks = new List <int>()
            {
                1, 2, 3, 4
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer4, testPlayer1
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer4, testPlayer1
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            //--make the inactive player5 beat player1 3 times
            players = new List <Player>()
            {
                testPlayer5, testPlayer1
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer5, testPlayer1
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer5, testPlayer1
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            //make player 2 be the only one who beat player 5
            players = new List <Player>()
            {
                testPlayer2, testPlayer5
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            //--create games that have a different GamingGroupId and testPlayer7 being the champion
            players = new List <Player>()
            {
                testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer7WithOtherGamingGroupId, testPlayer8WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer7WithOtherGamingGroupId, testPlayer8WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer7WithOtherGamingGroupId, testPlayer8WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer7WithOtherGamingGroupId, testPlayer8WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer8WithOtherGamingGroupId, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);

            players = new List <Player>()
            {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int>()
            {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameCreator);
            testPlayedGames.Add(playedGame);
        }
        private void CreatePlayedGames(NemeStatsDataContext dataContext)
        {
            var playerRepository          = new EntityFrameworkPlayerRepository(dataContext);
            var nemesisRecalculator       = new NemesisRecalculator(dataContext, playerRepository);
            var championRepository        = new ChampionRepository(dataContext);
            var championRecalculator      = new ChampionRecalculator(dataContext, championRepository);
            var securedEntityValidator    = new SecuredEntityValidator(dataContext);
            var weightBonusCalculator     = new WeightBonusCalculator(new WeightTierCalculator());
            var pointsCalculator          = new PointsCalculator(weightBonusCalculator, new GameDurationBonusCalculator());
            var linkedPlayedGameValidator = new LinkedPlayedGameValidator(dataContext);
            var applicationLinker         = new ApplicationLinker(dataContext);

            IPlayedGameSaver playedGameSaver = new PlayedGameSaver(
                dataContext,
                playedGameTracker,
                nemesisRecalculator,
                championRecalculator,
                securedEntityValidator,
                pointsCalculator,
                new FakeEventBus(),
                linkedPlayedGameValidator,
                applicationLinker);

            List <Player> players = new List <Player> {
                testPlayer1, testPlayer2
            };
            List <int> playerRanks = new List <int> {
                1, 1
            };
            PlayedGame playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);

            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer1, testPlayer2, testPlayer3
            };
            playerRanks = new List <int> {
                1, 2, 3
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer1, testPlayer3, testPlayer2
            };
            playerRanks = new List <int> {
                1, 2, 3
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer3, testPlayer1
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            //make player4 beat player 1 three times
            players = new List <Player> {
                testPlayer4, testPlayer1, testPlayer2, testPlayer3
            };
            playerRanks = new List <int> {
                1, 2, 3, 4
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer4, testPlayer1
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer4, testPlayer1
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            //--make the inactive player5 beat player1 3 times
            players = new List <Player> {
                testPlayer5, testPlayer1
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer5, testPlayer1
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer5, testPlayer1
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            //make player 2 be the only one who beat player 5
            players = new List <Player> {
                testPlayer2, testPlayer5
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinition.Id, players, playerRanks, testUserWithDefaultGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            //--create games that have a different GamingGroupId and testPlayer7 being the champion
            players = new List <Player> {
                testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer7WithOtherGamingGroupId, testPlayer8WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer7WithOtherGamingGroupId, testPlayer8WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer7WithOtherGamingGroupId, testPlayer8WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer7WithOtherGamingGroupId, testPlayer8WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer8WithOtherGamingGroupId, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(testGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);

            players = new List <Player> {
                testPlayer9UndefeatedWith5Games, testPlayer7WithOtherGamingGroupId
            };
            playerRanks = new List <int> {
                1, 2
            };
            playedGame = CreateTestPlayedGame(anotherTestGameDefinitionWithOtherGamingGroupId.Id, players, playerRanks, testUserWithOtherGamingGroup, playedGameSaver);
            testPlayedGames.Add(playedGame);
        }