Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }