public async Task DailyStreakResetTest() { await using var unit = NewContext(); var userService = new UserService(unit, null); var transactionService = new TransactionService(userService); var dailyService = new DailyService(unit, userService, transactionService); await dailyService.ClaimDailyAsync(4L); var daily = await dailyService.GetOrCreateDailyAsync(4L); Assert.Equal(0, daily.CurrentStreak); }
public async Task ClaimDailyTest() { await using var unit = NewContext(); var userService = new UserService(unit, null); var transactionService = new TransactionService(userService); var dailyService = new DailyService(unit, userService, transactionService); var response = await dailyService.ClaimDailyAsync(2L); Assert.NotNull(response); Assert.Equal(1, response.CurrentStreak); Assert.Equal(1, response.LongestStreak); Assert.Equal(120, response.AmountClaimed); Assert.InRange( response.LastClaimTime, DateTime.UtcNow.AddMinutes(-2), DateTime.UtcNow.AddMinutes(2)); }
public async Task CheckIfDailyUpdatedInDatabaseTest() { await using var unit = NewContext(); var userService = new UserService(unit, null); var transactionService = new TransactionService(userService); var dailyService = new DailyService(unit, userService, transactionService); await dailyService.ClaimDailyAsync(2L); var daily = await dailyService.GetOrCreateDailyAsync(2L); Assert.NotNull(daily); Assert.Equal(1, daily.CurrentStreak); Assert.Equal(1, daily.LongestStreak); Assert.InRange(daily.LastClaimTime, DateTime.UtcNow.AddMinutes(-2), DateTime.UtcNow.AddMinutes(2)); }
public async Task DonatorClaimDailyTest() { await using var unit = NewContext(); var userService = new UserService(unit, null); var transactionService = new TransactionService(userService); var dailyService = new DailyService(unit, userService, transactionService); var response = await dailyService.ClaimDailyAsync(3L); var expectedClaimAmount = (AppProps.Daily.DailyAmount + AppProps.Daily.StreakAmount * 6) * 2; Assert.NotNull(response); Assert.Equal(6, response.CurrentStreak); Assert.Equal(10, response.LongestStreak); Assert.Equal(expectedClaimAmount, response.AmountClaimed); Assert.InRange(response.LastClaimTime, DateTime.UtcNow.AddMinutes(-2), DateTime.UtcNow.AddMinutes(2)); }
public async Task HigherThanHundredDailyTest() { await using var unit = NewContext(); var userServiceMock = new Mock <IUserService>(); userServiceMock.Setup(x => x.GetUserAsync(It.IsAny <long>())) .Returns(new ValueTask <User>(new User { Id = 5L })); var transactionServiceMock = new Mock <ITransactionService>(); transactionServiceMock.Setup(x => x.CreateTransactionAsync(It.IsAny <TransactionRequest>())) .Returns(Task.FromResult(new TransactionResponse(null, null, 0))); var dailyService = new DailyService( unit, userServiceMock.Object, transactionServiceMock.Object); var dailyResponse = await dailyService.ClaimDailyAsync(5L); Assert.Equal(2100, dailyResponse.AmountClaimed); }