예제 #1
0
        public async Task GetCompressedAggregateTrades_NullSymbol_Throws()
        {
            // Arrange
            var request = new GetCompressedAggregateTradesRequest()
            {
                Symbol = null,
            };

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentNullException>(() => ConcreteBinanceClient.GetCompressedAggregateTrades(request));
        }
예제 #2
0
        public async Task GetCompressedAggregateTrades_StartTimeMin_Throws()
        {
            // Arrange
            var request = new GetCompressedAggregateTradesRequest()
            {
                Symbol    = "ETHBTC",
                StartTime = DateTime.MinValue,
            };

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentNullException>(() => ConcreteBinanceClient.GetCompressedAggregateTrades(request));
        }
예제 #3
0
        public async Task GetCompressedAggregateTrades_ValidRequest_CallsProcessGetRequest()
        {
            // Arrange
            var request = new GetCompressedAggregateTradesRequest()
            {
                Symbol    = "ETHBTC",
                StartTime = DateTime.UtcNow.AddHours(-1),
                EndTime   = DateTime.UtcNow,
            };

            // Act
            await ConcreteBinanceClient.GetCompressedAggregateTrades(request);

            // Assert
            MockAPIProcessor.Verify(i => i.ProcessGetRequest <List <CompressedAggregateTradeResponse> >(
                                        It.Is <BinanceEndpointData>(u => u.Uri.Equals(Endpoints.MarketData.CompressedAggregateTrades(request).Uri)),
                                        5000),
                                    Times.Once());
        }
예제 #4
0
            /// <summary>
            /// Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
            /// </summary>
            public static BinanceEndpointData CompressedAggregateTrades(GetCompressedAggregateTradesRequest request)
            {
                var queryString = GenerateQueryStringFromData(request);

                return(new BinanceEndpointData(new Uri($"{APIPrefix}/{ApiVersion}/aggTrades?{queryString}"), EndpointSecurityType.None));
            }
예제 #5
0
        /// <summary>
        /// Gets the Compressed aggregated trades in the specified window
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <List <CompressedAggregateTradeResponse> > GetCompressedAggregateTrades(GetCompressedAggregateTradesRequest request)
        {
            Guard.AgainstNull(request);
            Guard.AgainstNull(request.Symbol);
            Guard.AgainstDateTimeMin(request.StartTime);
            Guard.AgainstDateTimeMin(request.EndTime);
            if (request.Limit <= 0 || request.Limit > 500)
            {
                request.Limit = 500;
            }

            return(await _apiProcessor.ProcessGetRequest <List <CompressedAggregateTradeResponse> >(Endpoints.MarketData.CompressedAggregateTrades(request)));
        }