public async Task HappyPath_MoreGames_DtoHasCorrectSums()
        {
            var w3StatsRepo = new W3StatsRepo(MongoClient);
            var handler     = new OverallHeroWinRatePerHeroModelHandler(w3StatsRepo);

            var matchFinishedEvent1 = CreatFakeEvent(new [] { "deathknight", "lich" }, new [] { "archmage" });
            var matchFinishedEvent2 = CreatFakeEvent(new [] { "lich", }, new [] { "archmage" });
            var matchFinishedEvent3 = CreatFakeEvent(new [] { "deathknight", "lich" }, new [] { "archmage", "moutainking" });
            var matchFinishedEvent4 = CreatFakeEvent(new [] { "archmage", "bloodmage" }, new [] { "deathknight", "lich" });
            var matchFinishedEvent5 = CreatFakeEvent(new [] { "bloodmage" }, new [] { "deathknight", "lich" });

            await handler.Update(matchFinishedEvent1);

            await handler.Update(matchFinishedEvent2);

            await handler.Update(matchFinishedEvent3);

            await handler.Update(matchFinishedEvent4);

            await handler.Update(matchFinishedEvent5);

            var heroStatsQueryHandler = new HeroStatsQueryHandler(new W3StatsRepo(MongoClient));
            var heroWinrateDto        = await heroStatsQueryHandler.GetStats("deathknight", "lich", "all", "archmage", "all", "all");

            Assert.AreEqual(2, heroWinrateDto.Wins);
            Assert.AreEqual(1, heroWinrateDto.Losses);
        }
Exemplo n.º 2
0
 public W3CStatsController(
     IW3StatsRepo w3StatsRepo,
     HeroStatsQueryHandler heroStatsQueryHandler,
     MmrDistributionHandler mmrDistributionHandler)
 {
     _w3StatsRepo            = w3StatsRepo;
     _heroStatsQueryHandler  = heroStatsQueryHandler;
     _mmrDistributionHandler = mmrDistributionHandler;
 }
 public W3CStatsController(
     IW3StatsRepo w3StatsRepo,
     HeroStatsQueryHandler heroStatsQueryHandler,
     MmrDistributionHandler mmrDistributionHandler,
     IPlayerRepository playerRepository)
 {
     _w3StatsRepo            = w3StatsRepo;
     _heroStatsQueryHandler  = heroStatsQueryHandler;
     _mmrDistributionHandler = mmrDistributionHandler;
     _playerRepository       = playerRepository;
 }
        public async Task MoreGames_MirrorBug()
        {
            var w3StatsRepo = new W3StatsRepo(MongoClient);
            var handler     = new OverallHeroWinRatePerHeroModelHandler(w3StatsRepo);

            await handler.Update(CreatFakeEvent(new [] { "archmage", "mountainking", "paladin" }, new [] { "archmage", "mountainking", "paladin" }));

            await handler.Update(CreatFakeEvent(new [] { "archmage", "mountainking", "paladin" }, new [] { "archmage", "mountainking", "paladin" }));

            await handler.Update(CreatFakeEvent(new [] { "archmage", "mountainking", "paladin" }, new [] { "archmage", "mountainking", "paladin" }));

            await handler.Update(CreatFakeEvent(new [] { "archmage", "mountainking", "paladin" }, new [] { "archmage", "mountainking", "paladin" }));

            await handler.Update(CreatFakeEvent(new [] { "archmage", "mountainking", "paladin" }, new [] { "archmage", "mountainking", "paladin" }));

            var heroStatsQueryHandler = new HeroStatsQueryHandler(new W3StatsRepo(MongoClient));
            var heroWinrateDto        = await heroStatsQueryHandler.GetStats("archmage", "all", "all", "archmage", "all", "all");

            Assert.AreEqual(5, heroWinrateDto.Losses);
            Assert.AreEqual(5, heroWinrateDto.Wins);
        }