public async Task HappyPath_MoreGames()
        {
            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 [] { "moutainking" });
            var matchFinishedEvent4 = CreatFakeEvent(new [] { "moutainking" }, new [] { "deathknight", "lich" });

            await handler.Update(matchFinishedEvent1);

            await handler.Update(matchFinishedEvent2);

            await handler.Update(matchFinishedEvent3);

            await handler.Update(matchFinishedEvent4);

            var dkStats = await w3StatsRepo.LoadHeroWinrate("deathknight_lich");

            var lichStats = await w3StatsRepo.LoadHeroWinrate("lich");

            Assert.AreEqual(0, dkStats.WinRates[0].WinLoss.Losses);
            Assert.AreEqual(1, dkStats.WinRates[0].WinLoss.Wins);
            Assert.AreEqual("archmage", dkStats.WinRates[0].HeroCombo);

            Assert.AreEqual(1, dkStats.WinRates[1].WinLoss.Losses);
            Assert.AreEqual(1, dkStats.WinRates[1].WinLoss.Wins);
            Assert.AreEqual("moutainking", dkStats.WinRates[1].HeroCombo);

            Assert.AreEqual(0, lichStats.WinRates[0].WinLoss.Losses);
            Assert.AreEqual(1, lichStats.WinRates[0].WinLoss.Wins);
            Assert.AreEqual("archmage", lichStats.WinRates[0].HeroCombo);
        }
        public async Task HappyPath()
        {
            var w3StatsRepo = new W3StatsRepo(MongoClient);
            var handler     = new OverallHeroWinRatePerHeroModelHandler(w3StatsRepo);

            var matchFinishedEvent = CreatFakeEvent(new [] { "deathknight", "lich" }, new [] { "archmage" });

            await handler.Update(matchFinishedEvent);

            var amStats = await w3StatsRepo.LoadHeroWinrate("archmage");

            var dkStats = await w3StatsRepo.LoadHeroWinrate("deathknight_lich");

            Assert.AreEqual(1, amStats.WinRates[0].WinLoss.Losses);
            Assert.AreEqual(0, amStats.WinRates[0].WinLoss.Wins);
            Assert.AreEqual("deathknight_lich", amStats.WinRates[0].HeroCombo);

            Assert.AreEqual(0, dkStats.WinRates[0].WinLoss.Losses);
            Assert.AreEqual(1, dkStats.WinRates[0].WinLoss.Wins);
            Assert.AreEqual("archmage", dkStats.WinRates[0].HeroCombo);
        }