Exemplo n.º 1
0
        public async Task Should_Return_Exception_When_Symbol_Not_Exists_In_Exchange_Async()
        {
            TickerPrice ticker    = null;
            var         symbol    = "jsdhjkdhsajkdhnuncatera";
            var         cacheMock = new Mock <IExchangeIntegrationCache>(MockBehavior.Strict);

            cacheMock.Setup(repo => repo.GetAsync <TickerPrice>(ExchangesIntegratedType.BitcoinTrade, symbol))
            .ReturnsAsync(ticker);

            cacheMock.Setup(repo => repo.AddAsync(It.IsAny <TickerPrice>(),
                                                  ExchangesIntegratedType.BitcoinTrade,
                                                  It.IsAny <string>()))
            .Returns(Task.CompletedTask);

            var clientMock = new Mock <IBitcoinTradeIntegrationClient>(MockBehavior.Strict);

            clientMock.Setup(c => c.GetTickerPriceAsync(symbol))
            .ReturnsAsync(new ResponseData <TickerPrice> {
                Code = "200", Data = null
            });

            var strategy = new BitcoinTradeIntegrationStrategy(cacheMock.Object, clientMock.Object);
            var ex       = await Assert.ThrowsAsync <InvalidOperationException>(async() => await strategy.GetCurrentPriceAsync("nuncatera", "jsdhjkdhsajkdh"));

            Assert.Equal($"symbol {symbol} not exists in Bitcointrade", ex.Message);
        }
Exemplo n.º 2
0
        public async Task Should_Return_Price_Async()
        {
            TickerPrice ticker    = null;
            var         symbol    = "BRLBTC";
            var         cacheMock = new Mock <IExchangeIntegrationCache>(MockBehavior.Strict);

            cacheMock.Setup(repo => repo.GetAsync <TickerPrice>(ExchangesIntegratedType.BitcoinTrade, symbol))
            .ReturnsAsync(ticker);

            cacheMock.Setup(repo => repo.AddAsync(It.IsAny <TickerPrice>(),
                                                  ExchangesIntegratedType.BitcoinTrade,
                                                  It.IsAny <string>()))
            .Returns(Task.CompletedTask);

            var clientMock = new Mock <IBitcoinTradeIntegrationClient>(MockBehavior.Strict);

            clientMock.Setup(c => c.GetTickerPriceAsync(symbol))
            .ReturnsAsync(new ResponseData <TickerPrice> {
                Code = "200", Data = new TickerPrice {
                    Sell = 1
                }
            });

            var strategy = new BitcoinTradeIntegrationStrategy(cacheMock.Object, clientMock.Object);
            var price    = await strategy.GetCurrentPriceAsync("BTC", "BRL");

            Assert.True(price > 0);
        }