Exemple #1
0
        public void UpdateBinanceFills_ShouldReturnFills_WhenFillsExists()
        {
            //Arrange
            _httpMessageHandlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync",
                                                 ItExpr.Is <HttpRequestMessage>(x => x.RequestUri.AbsoluteUri.Contains("/api/v1/time")),
                                                 ItExpr.IsAny <CancellationToken>())
            .Returns(Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(
                    @"{""serverTime"":1592395836992}")
            }))
            .Verifiable();
            _httpMessageHandlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync",
                                                 ItExpr.Is <HttpRequestMessage>(x => x.RequestUri.AbsoluteUri.Contains("/api/v3/myTrades?")),
                                                 ItExpr.IsAny <CancellationToken>())
            .Returns(Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(
                    @"[{
                            ""symbol"": ""BNBBTC"",
                            ""id"": 28457,
                            ""orderId"": 100234,
                            ""orderListId"": -1,
                            ""price"": ""4.00000100"",
                            ""qty"": ""12.00000000"",
                            ""quoteQty"": ""48.000012"",
                            ""commission"": ""10.10000000"",
                            ""commissionAsset"": ""BNB"",
                            ""time"": 1499865549590,
                            ""isBuyer"": true,
                            ""isMaker"": false,
                            ""isBestMatch"": true
                            }]")
            }))
            .Verifiable();
            HttpClient httpClient = new HttpClient(_httpMessageHandlerMock.Object);

            _connectionAdapter.HttpClient = httpClient;
            Binance subjectUnderTest = new Binance {
                ConnectionAdapter = _connectionAdapter
            };
            Product product = new Product {
                ID = "BNBBTC"
            };

            //Act
            subjectUnderTest.UpdateFillsAsync(product).Wait();
            //Assert
            Assert.IsNotNull(subjectUnderTest.BinanceFill);
            Assert.AreEqual(1, subjectUnderTest.BinanceFill.Count);
            Assert.AreEqual(product.ID, subjectUnderTest.BinanceFill[0].ID);
        }