public async Task PlayersFromAn2v2ATMatch_GameModeHandler_Test()
        {
            var playerRepository = new PlayerRepository(MongoClient);
            var handler          = new PlayerGameModeStatPerGatewayHandler(playerRepository);

            var ev = TestDtoHelper.CreateFake2v2AtEvent();

            ev.match.season = 1;

            ev.match.players[0].battleTag = "peter#123";
            ev.match.players[0].won       = true;

            ev.match.players[1].battleTag = "wolf#456";
            ev.match.players[1].won       = true;

            ev.match.players[2].battleTag = "TEAM2#123";
            ev.match.players[2].won       = false;

            ev.match.players[3].battleTag = "TEAM2#456";
            ev.match.players[3].won       = false;

            await handler.Update(ev);

            var winners = await playerRepository.LoadGameModeStatPerGateway("1_peter#123@10_wolf#456@10_GM_2v2_AT", GateWay.America, 1);

            var losers = await playerRepository.LoadGameModeStatPerGateway("1_TEAM2#123@10_TEAM2#456@10_GM_2v2_AT", GateWay.America, 1);

            Assert.AreEqual(1, winners.First(x => x.GameMode == GameMode.GM_2v2_AT).Wins);
            Assert.AreEqual(0, winners.First(x => x.GameMode == GameMode.GM_2v2_AT).Losses);

            Assert.AreEqual(1, losers.First(x => x.GameMode == GameMode.GM_2v2_AT).Losses);
            Assert.AreEqual(0, losers.First(x => x.GameMode == GameMode.GM_2v2_AT).Wins);
        }
        public async Task PlayerMultipleWinRecords()
        {
            var playerRepository     = new PlayerRepository(MongoClient);
            var personalSettingsRepo = new PersonalSettingsRepository(MongoClient);

            var handler  = new PlayerOverallStatsHandler(playerRepository, personalSettingsRepo);
            var handler2 = new PlayerGameModeStatPerGatewayHandler(playerRepository);
            var handler3 = new PlayerRaceStatPerGatewayHandler(playerRepository);

            var ev = TestDtoHelper.CreateFakeEvent();

            ev.match.gameMode             = GameMode.GM_1v1;
            ev.match.gateway              = GateWay.Europe;
            ev.match.season               = 1;
            ev.match.players[0].battleTag = "peter#123";
            ev.match.players[0].battleTag = "peter#123";
            ev.match.players[0].race      = Race.HU;
            ev.match.players[1].race      = Race.OC;

            for (int i = 0; i < 100; i++)
            {
                await handler.Update(ev);

                await handler2.Update(ev);

                await handler3.Update(ev);
            }

            var playerLoaded = await playerRepository.LoadRaceStatPerGateway("peter#123", Race.HU, GateWay.Europe, 1);

            var playerLoadedStats = await playerRepository.LoadGameModeStatPerGateway("peter#123", GateWay.Europe, 1);

            Assert.AreEqual(100, playerLoadedStats.Single().Wins);
            Assert.AreEqual(100, playerLoaded.Wins);
        }
        public async Task PlayersFromAn1v1Match_GameModeHandler_Test()
        {
            var playerRepository = new PlayerRepository(MongoClient);
            var handler          = new PlayerGameModeStatPerGatewayHandler(playerRepository);

            var ev = TestDtoHelper.CreateFakeEvent();

            ev.match.season = 1;

            ev.match.players[0].battleTag = "peter#123";
            ev.match.players[0].won       = true;

            ev.match.players[1].battleTag = "wolf#456";
            ev.match.players[1].won       = false;

            await handler.Update(ev);

            var winnerStatGateWay = await playerRepository.LoadGameModeStatPerGateway("peter#123", GateWay.Europe, 1);

            var loser = await playerRepository.LoadGameModeStatPerGateway("wolf#456", GateWay.Europe, 1);

            Assert.AreEqual(1, winnerStatGateWay.First(x => x.GameMode == GameMode.GM_1v1).Wins);

            Assert.AreEqual(1, loser.First(x => x.GameMode == GameMode.GM_1v1).Losses);
            Assert.AreEqual(0, loser.First(x => x.GameMode == GameMode.GM_1v1).Wins);
        }
Exemple #4
0
        public async Task UpdateOverview_HandlerUpdate_FootmenFrenzy()
        {
            var matchFinishedEvent = TestDtoHelper.CreateFakeFootmenFrenzyEvent();

            var playerRepository = new PlayerRepository(MongoClient);
            var handler          = new PlayerGameModeStatPerGatewayHandler(playerRepository);

            await handler.Update(matchFinishedEvent);

            var winners = matchFinishedEvent.match.players.Where(x => x.won);

            Assert.AreEqual(3, winners.Count());

            foreach (var player in winners)
            {
                var winnerStatGateWay = await playerRepository.LoadGameModeStatPerGateway(player.battleTag, GateWay.Europe, matchFinishedEvent.match.season);

                Assert.AreEqual(1, winnerStatGateWay.First(x => x.GameMode == GameMode.GM_FOOTMEN_FRENZY).Wins);
                Assert.AreEqual(0, winnerStatGateWay.First(x => x.GameMode == GameMode.GM_FOOTMEN_FRENZY).Losses);
            }

            var losers = matchFinishedEvent.match.players.Where(x => !x.won);

            Assert.AreEqual(9, losers.Count());

            foreach (var player in losers)
            {
                var winnerStatGateWay = await playerRepository.LoadGameModeStatPerGateway(player.battleTag, GateWay.Europe, matchFinishedEvent.match.season);

                Assert.AreEqual(0, winnerStatGateWay.First(x => x.GameMode == GameMode.GM_FOOTMEN_FRENZY).Wins);
                Assert.AreEqual(1, winnerStatGateWay.First(x => x.GameMode == GameMode.GM_FOOTMEN_FRENZY).Losses);
            }
        }