[InlineData("0 17 * * Sunday", "0 18 * * Sunday", 2021, 4, 4, 17, 20, 603600000)] // GRB starts 17:00. Now is 17:20. Interval should be next week - 20 min: 7d * 24h * 60m * 60s * 1000ms (604,800,000) - 20m * 60s * 1000ms (1,200,000) = 603,600,000 public void GetStartInterval_Test(string openTime, string closeTime, int year, int month, int day, int hour, int minute, double expected) { var now = new DateTime(year, month, day, hour, minute, 0); var timeService = new Mock <ITimeService>(); timeService.Setup(x => x.UtcNow) .Returns(now); var mapsLoader = new Mock <IMapsLoader>(); mapsLoader.Setup(x => x.LoadMapDefinitions()) .Returns(new MapDefinitions() { Maps = new List <MapDefinition>() { new MapDefinition() { Id = 50, CreateType = CreateType.GRB, OpenTime = openTime, CloseTime = closeTime } } }); var rankingManager = new GuildRankingManager(new Mock <ILogger <IGuildRankingManager> >().Object, mapsLoader.Object, timeService.Object, databaseMock.Object, new GuildHouseConfiguration()); var interval = rankingManager.GetStartInterval(); Assert.Equal(expected, interval); }
public void CalculateRanks_Test() { var mapsLoader = new Mock <IMapsLoader>(); mapsLoader.Setup(x => x.LoadMapDefinitions()).Returns(new MapDefinitions() { Maps = new List <MapDefinition>() }); var rankingManager = new GuildRankingManager(new Mock <ILogger <IGuildRankingManager> >().Object, mapsLoader.Object, new Mock <ITimeService>().Object, taskQueuMock.Object); rankingManager.AddPoints(1, 10); rankingManager.AddPoints(1, 10); rankingManager.AddPoints(2, 10); rankingManager.AddPoints(2, 5); rankingManager.AddPoints(3, 20); rankingManager.AddPoints(3, 10); int guild1_Points = 0; byte guild1_Rank = 0; int guild2_Points = 0; byte guild2_Rank = 0; int guild3_Points = 0; byte guild3_Rank = 0; rankingManager.OnRanksCalculated += (IEnumerable <(int GuildId, int Points, byte Rank)> results) => { foreach (var res in results) { if (res.GuildId == 1) { guild1_Points = res.Points; guild1_Rank = res.Rank; continue; } if (res.GuildId == 2) { guild2_Points = res.Points; guild2_Rank = res.Rank; continue; } if (res.GuildId == 3) { guild3_Points = res.Points; guild3_Rank = res.Rank; continue; } } }; rankingManager.CalculateRanks(); Assert.Equal(20, guild1_Points); Assert.Equal(15, guild2_Points); Assert.Equal(30, guild3_Points); Assert.Equal(2, guild1_Rank); Assert.Equal(3, guild2_Rank); Assert.Equal(1, guild3_Rank); }