public async Task CompareAccountHoldings() { IBlockchainInfoService blockchainInfoService = Instantiate <IBlockchainInfoService>(); IBlockchainClient blockchainClient = Instantiate <IBlockchainClient>(); IEnumerable <string> accounts = new List <string>(); using (var uow = NewUnitOfWork()) { accounts = NewRepository <Account>(uow).GetAs(a => true, a => a.Hash); } foreach (var account in accounts) { var databaseResult = blockchainInfoService.GetAccountInfo(account); Assert.True(databaseResult.Successful, $"Retrieving account {account} from database failed."); var blockchainResult = await blockchainClient.GetAccountInfo(account); Assert.True(blockchainResult.Successful, $"Retrieving account {account} from blockchain failed."); var accountInfoDto = databaseResult.Data; var accountBlockchainDto = blockchainResult.Data; Assert.Equal(accountBlockchainDto.Holdings.Count, accountInfoDto.Holdings.Count); foreach (var holdingInfo in accountInfoDto.Holdings) { var holdingBlockchain = accountBlockchainDto.Holdings .FirstOrDefault(h => h.AssetHash == holdingInfo.AssetHash); Assert.NotNull(holdingBlockchain); Assert.Equal(holdingBlockchain.Balance, holdingInfo.Balance); } } }
public BlockchainInfoController(IBlockchainInfoService blockchainInfoService) { _blockchainInfoService = blockchainInfoService; }