Пример #1
0
        public async Task UpdateOverview_HandlerUpdate_FFA()
        {
            var matchFinishedEvent  = TestDtoHelper.CreateFakeFFAEvent();
            var playerRepository    = new PlayerRepository(MongoClient);
            var playOverviewHandler = new PlayOverviewHandler(playerRepository);

            await playOverviewHandler.Update(matchFinishedEvent);

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

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

            foreach (var player in winners)
            {
                var playerProfile = await playerRepository.LoadOverview($"0_{player.battleTag}@20_FFA");

                Assert.AreEqual(1, playerProfile.Wins);
                Assert.AreEqual(0, playerProfile.Losses);
                Assert.AreEqual(GameMode.FFA, playerProfile.GameMode);
            }

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

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

            foreach (var player in losers)
            {
                var playerProfile = await playerRepository.LoadOverview($"0_{player.battleTag}@20_FFA");

                Assert.AreEqual(0, playerProfile.Wins);
                Assert.AreEqual(1, playerProfile.Losses);
                Assert.AreEqual(GameMode.FFA, playerProfile.GameMode);
            }
        }
        public async Task PlayersFromAnFFAMatch_GameModeHandler_Test()
        {
            var playerRepository = new PlayerRepository(MongoClient);
            var handler          = new PlayerGameModeStatPerGatewayHandler(playerRepository);

            var ev = TestDtoHelper.CreateFakeFFAEvent();

            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;

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

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

            await handler.Update(ev);

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

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

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

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

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

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

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

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