public async Task GetCompressedAggregateTrades_NullSymbol_Throws() { // Arrange var request = new GetCompressedAggregateTradesRequest() { Symbol = null, }; // Act // Assert await Assert.ThrowsAsync <ArgumentNullException>(() => ConcreteBinanceClient.GetCompressedAggregateTrades(request)); }
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)); }
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()); }
/// <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)); }
/// <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))); }