public async Task CurrentDailyLeaderboardsExist_ReturnsExistingCurrentDailyLeaderboards() { // Arrange var today = new DateTime(2017, 9, 13); var current = new DailyLeaderboard { Date = today, ProductId = 0, Product = new Product(0, "classic", "Classic"), }; using (var db = new NecroDancerContext(necroDancerContextOptions)) { db.DailyLeaderboards.Add(current); db.SaveChanges(); } // Act var leaderboards = await worker.GetCurrentDailyLeaderboardsAsync(today, cancellationToken); // Assert var leaderboard = leaderboards.First(); Assert.Equal(today, leaderboard.Date); Assert.Equal("classic", leaderboard.Product.Name); mockSteamClientApiClient.Verify(s => s.FindLeaderboardAsync(appId, It.IsAny <string>(), cancellationToken), Times.Never); }
public UpdateDailyLeaderboardAsyncMethod() { leaderboard = new DailyLeaderboard(); leaderboardEntriesCallback = new LeaderboardEntriesCallback(); mockSteamClientApiClient .Setup(c => c.GetLeaderboardEntriesAsync(appId, leaderboard.LeaderboardId, cancellationToken)) .ReturnsAsync(leaderboardEntriesCallback); }
public void GetsEntries() { // Arrange var dailyLeaderboard = new DailyLeaderboard(); // Act -> Assert Assert.IsAssignableFrom <List <DailyEntry> >(dailyLeaderboard.Entries); }
public void GetsAndSetsIsProduction() { // Arrange -> Act var dailyLeaderboard = new DailyLeaderboard { IsProduction = true }; // Act -> Assert Assert.True(dailyLeaderboard.IsProduction); }
public void GetsAndSetsLastUpdate() { // Arrange -> Act var dailyLeaderboard = new DailyLeaderboard { LastUpdate = new DateTime(2017, 8, 28, 16, 27, 58) }; // Act -> Assert Assert.Equal(new DateTime(2017, 8, 28, 16, 27, 58), dailyLeaderboard.LastUpdate); }
public void GetsAndSetsDate() { // Arrange -> Act var dailyLeaderboard = new DailyLeaderboard { Date = new DateTime(2017, 8, 28) }; // Act -> Assert Assert.Equal(new DateTime(2017, 8, 28), dailyLeaderboard.Date); }
public void GetsAndSetsProductId() { // Arrange -> Act var dailyLeaderboard = new DailyLeaderboard { ProductId = 1 }; // Act -> Assert Assert.Equal(1, dailyLeaderboard.ProductId); }
public void GetsAndSetsLeaderboardId() { // Arrange -> Act var dailyLeaderboard = new DailyLeaderboard { LeaderboardId = 43895 }; // Act -> Assert Assert.Equal(43895, dailyLeaderboard.LeaderboardId); }
public void GetsAndSetsLeaderboard() { // Arrange -> Act var leaderboard = new DailyLeaderboard(); var dailyEntry = new DailyEntry { Leaderboard = leaderboard }; // Act -> Assert Assert.Equal(leaderboard, dailyEntry.Leaderboard); }
public void GetsAndSetsDisplayName() { // Arrange var displayName = "MyDisplayName"; var dailyLeaderboard = new DailyLeaderboard(); // Act dailyLeaderboard.DisplayName = displayName; var displayName2 = dailyLeaderboard.DisplayName; // Assert Assert.Equal(displayName, displayName2); }
public void GetsAndSetsName() { // Arrange var name = "myName"; var dailyLeaderboard = new DailyLeaderboard(); // Act dailyLeaderboard.Name = name; var name2 = dailyLeaderboard.Name; // Assert Assert.Equal(name, name2); }
public async Task StoresDailyLeaderboards() { // Arrange var leaderboard = new DailyLeaderboard(); var leaderboards = new List <DailyLeaderboard> { leaderboard }; // Act await worker.StoreDailyLeaderboardsAsync(leaderboards, cancellationToken); // Assert mockStoreClient.Verify(s => s.BulkUpsertAsync(It.IsAny <IEnumerable <DailyLeaderboard> >(), null, cancellationToken), Times.Once); }
public void GetsAndSetsProduct() { // Arrange var product = new Product(1, "myProduct", "MyProduct"); // Act var dailyLeaderboard = new DailyLeaderboard { Product = product }; var product2 = dailyLeaderboard.Product; // Assert Assert.Same(product, product2); }
public async Task StoresReplays() { // Arrange var leaderboard = new DailyLeaderboard(); leaderboard.Entries.Add(new DailyEntry { ReplayId = 3849753489753975 }); var leaderboards = new List <DailyLeaderboard> { leaderboard }; // Act await worker.StoreDailyLeaderboardsAsync(leaderboards, cancellationToken); // Assert mockStoreClient.Verify(s => s.BulkUpsertAsync(It.IsAny <IEnumerable <Replay> >(), It.IsAny <BulkUpsertOptions>(), cancellationToken), Times.Once); }
public async Task UpdatesLeaderboardsWithFreshEntries() { // Arrange var leaderboard1 = new DailyLeaderboard { LeaderboardId = 1 }; var leaderboard2 = new DailyLeaderboard { LeaderboardId = 2 }; var leaderboards = new[] { leaderboard1, leaderboard2 }; var leaderboardEntriesCallback1 = new LeaderboardEntriesCallback(); leaderboardEntriesCallback1.Entries.AddRange(new[] { new LeaderboardEntry(), new LeaderboardEntry(), new LeaderboardEntry(), }); mockSteamClientApiClient .Setup(c => c.GetLeaderboardEntriesAsync(appId, leaderboard1.LeaderboardId, cancellationToken)) .ReturnsAsync(leaderboardEntriesCallback1); var leaderboardEntriesCallback2 = new LeaderboardEntriesCallback(); leaderboardEntriesCallback2.Entries.AddRange(new[] { new LeaderboardEntry(), new LeaderboardEntry(), }); mockSteamClientApiClient .Setup(c => c.GetLeaderboardEntriesAsync(appId, leaderboard2.LeaderboardId, cancellationToken)) .ReturnsAsync(leaderboardEntriesCallback2); // Act await worker.UpdateDailyLeaderboardsAsync(leaderboards, cancellationToken); // Assert Assert.Equal(3, leaderboard1.Entries.Count); Assert.Equal(2, leaderboard2.Entries.Count); }
internal async Task UpdateDailyLeaderboardAsync( DailyLeaderboard leaderboard, CancellationToken cancellationToken) { var response = await steamClientApiClient .GetLeaderboardEntriesAsync(appId, leaderboard.LeaderboardId, cancellationToken) .ConfigureAwait(false); leaderboard.LastUpdate = DateTime.UtcNow; foreach (var entry in response.Entries) { leaderboard.Entries.Add(new DailyEntry { LeaderboardId = leaderboard.LeaderboardId, Rank = entry.GlobalRank, SteamId = entry.SteamID.ToInt64(), ReplayId = entry.UGCId.ToReplayId(), Score = entry.Score, Zone = entry.Details[0], Level = entry.Details[1], }); } }
private static async Task UpdateDailyLeaderboardAsync(ISteamClientApiClient steamClient, DailyLeaderboard leaderboard) { try { var response = await steamClient.FindLeaderboardAsync(247080, leaderboard.Name).ConfigureAwait(false); leaderboard.LeaderboardId = response.ID; } catch (SteamClientApiException) { Log.Warn($"Leaderboard named '{leaderboard.Name}' could not be found."); } }