public void SubscribeToTickerUpdates_Should_TriggerWithTickerUpdate() { // arrange var socket = new TestSocket(); socket.CanConnect = true; var client = TestHelpers.CreateSocketClient(socket); HuobiSymbolDatas result = null; var subTask = client.SubscribeToSymbolTickerUpdatesAsync((test => result = test)); socket.InvokeMessage($"{{\"subbed\": \"test\", \"id\": \"{BaseClient.LastId}\", \"status\": \"ok\"}}"); var subResult = subTask.Result; var expected = new List <HuobiSymbolData> { new HuobiSymbolData() { Amount = 0.1m, Close = 0.2m, Low = 0.3m, High = 0.4m, Volume = 0.5m, Open = 0.6m, TradeCount = 12 } }; // act socket.InvokeMessage(SerializeExpected("market.tickers", expected)); // assert Assert.IsTrue(subResult.Success); Assert.IsTrue(TestHelpers.AreEqual(expected[0], result.Ticks.ToList()[0])); }
/// <summary> /// Subscribes to updates for all tickers /// </summary> /// <param name="onData">The handler for updates</param> /// <returns></returns> public async Task <CallResult <UpdateSubscription> > SubscribeToSymbolTickerUpdatesAsync(Action <DataEvent <HuobiSymbolDatas> > onData) { var request = new HuobiSubscribeRequest(NextId().ToString(CultureInfo.InvariantCulture), "market.tickers"); var internalHandler = new Action <DataEvent <HuobiDataEvent <IEnumerable <HuobiSymbolTicker> > > >(data => { var result = new HuobiSymbolDatas { Timestamp = data.Timestamp, Ticks = data.Data.Data }; onData(data.As(result)); }); return(await SubscribeAsync(request, null, false, internalHandler).ConfigureAwait(false)); }