public async Task TryToSaveSnapshot_EverythingValid_SnapshotIsSaved() { var lastTokensTotalAmountRepo = Mock.Of <ILastKnownStatsRepository>(); var pbfClient = new Mock <IPrivateBlockchainFacadeClient>(); pbfClient.Setup(x => x.TokensApi.GetTotalTokensSupplyAsync()) .ReturnsAsync(new TotalTokensSupplyResponse()); var snapshotRepo = new Mock <ITokensSnapshotRepository>(); snapshotRepo.Setup(x => x.SaveTokensSnapshotAsync(It.IsAny <DailyTokensSnapshot>())) .Verifiable(); TokensStatisticsService tokensStatisticsService; using (var logFactory = LogFactory.Create().AddUnbufferedConsole()) { tokensStatisticsService = new TokensStatisticsService(logFactory, pbfClient.Object, snapshotRepo.Object, lastTokensTotalAmountRepo); } await tokensStatisticsService.SaveTokensSnapshotAsync(); snapshotRepo.Verify(); }
public async Task TryToSyncTotalTokensWithPbf_PbfIsAvailable_SuccessfullySynced() { var snapshotRepo = Mock.Of <ITokensSnapshotRepository>(); var lastTokensTotalAmountRepo = Mock.Of <ILastKnownStatsRepository>(); var pbfClient = new Mock <IPrivateBlockchainFacadeClient>(); pbfClient.Setup(x => x.TokensApi.GetTotalTokensSupplyAsync()) .ReturnsAsync(new TotalTokensSupplyResponse()); pbfClient.Setup(x => x.TokensApi.GetTokenGatewayWalletBalance()) .ReturnsAsync(new TotalTokensSupplyResponse()); TokensStatisticsService tokensStatisticsService; using (var logFactory = LogFactory.Create().AddUnbufferedConsole()) { tokensStatisticsService = new TokensStatisticsService(logFactory, pbfClient.Object, snapshotRepo, lastTokensTotalAmountRepo); } var result = await tokensStatisticsService.SyncTotalTokensAsync(); Assert.Equal(TokensErrorCodes.None, result); }
public async Task TryToInitServiceTwice_InvalidOperation_ExceptionIsThrown() { var snapshotRepo = Mock.Of <ITokensSnapshotRepository>(); var lastTokensTotalAmountRepo = Mock.Of <ILastKnownStatsRepository>(); var pbfClient = Mock.Of <IPrivateBlockchainFacadeClient>(); TokensStatisticsService tokensStatisticsService; using (var logFactory = LogFactory.Create().AddUnbufferedConsole()) { tokensStatisticsService = new TokensStatisticsService(logFactory, pbfClient, snapshotRepo, lastTokensTotalAmountRepo); } await tokensStatisticsService.Initialize(); await Assert.ThrowsAsync <InvalidOperationException>(() => tokensStatisticsService.Initialize()); }
public async Task TryToGetTokensSnapshot_SnapshotDoesNotExists_ResultWithBusinessError() { var lastTokensTotalAmountRepo = Mock.Of <ILastKnownStatsRepository>(); var pbfClient = Mock.Of <IPrivateBlockchainFacadeClient>(); var snapshotRepo = new Mock <ITokensSnapshotRepository>(); snapshotRepo.Setup(x => x.GetTokensSnapshotByDate(It.IsAny <string>())) .ReturnsAsync((DailyTokensSnapshot)null); TokensStatisticsService tokensStatisticsService; using (var logFactory = LogFactory.Create().AddUnbufferedConsole()) { tokensStatisticsService = new TokensStatisticsService(logFactory, pbfClient, snapshotRepo.Object, lastTokensTotalAmountRepo); } var result = await tokensStatisticsService.GetTokensSnapshotForDate(DateTime.UtcNow.AddDays(-1)); Assert.Equal(TokensErrorCodes.StatisticsNotFound, result.ErrorCode); }
public async Task TryToSyncTotalTokensWithPbf_PbfNotAvailable_BusinessErrorIsReturned() { var snapshotRepo = Mock.Of <ITokensSnapshotRepository>(); var lastTokensTotalAmountRepo = Mock.Of <ILastKnownStatsRepository>(); var pbfClient = new Mock <IPrivateBlockchainFacadeClient>(); pbfClient.Setup(x => x.TokensApi.GetTotalTokensSupplyAsync()) .ThrowsAsync(new Exception()); TokensStatisticsService tokensStatisticsService; using (var logFactory = LogFactory.Create().AddUnbufferedConsole()) { tokensStatisticsService = new TokensStatisticsService(logFactory, pbfClient.Object, snapshotRepo, lastTokensTotalAmountRepo); } var result = await tokensStatisticsService.SyncTotalTokensAsync(); Assert.Equal(TokensErrorCodes.PrivateBlockchainFacadeIsNotAvailable, result); }