public void SubscribeToKlineUpdates_Should_TriggerWithKlineUpdate()
        {
            // arrange
            var socket = new TestSocket();

            socket.CanConnect = true;
            var client = TestHelpers.CreateSocketClient(socket);

            HuobiSymbolData result  = null;
            var             subTask = client.SubscribeToKlineUpdatesAsync("ETHBTC", HuobiPeriod.FiveMinutes, test => result = test);

            socket.InvokeMessage($"{{\"subbed\": \"ethbtc\", \"id\": \"{BaseClient.LastId}\", \"status\": \"ok\"}}");
            var subResult = subTask.Result;

            var expected = 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.ethbtc.kline.5min", expected));

            // assert
            Assert.IsTrue(subResult.Success);
            Assert.IsTrue(TestHelpers.AreEqual(expected, result));
        }
        public void SubscribeToDetailUpdates_Should_TriggerWithDetailUpdate()
        {
            // arrange
            var socket = new TestSocket();

            socket.CanConnect = true;
            var client = TestHelpers.CreateSocketClient(socket);

            HuobiSymbolData result  = null;
            var             subTask = client.SubscribeToSymbolDetailUpdatesAsync("ETHBTC", test => result = test.Data);
            var             id      = JToken.Parse(socket.LastSendMessage)["id"];

            socket.InvokeMessage($"{{\"subbed\": \"ethbtc\", \"id\": \"{id}\", \"status\": \"ok\"}}");
            var subResult = subTask.Result;

            var expected = new HuobiSymbolData()
            {
                Quantity   = 0.1m,
                Close      = 0.2m,
                Low        = 0.3m,
                High       = 0.4m,
                Volume     = 0.5m,
                Open       = 0.6m,
                TradeCount = 12
            };

            // act
            socket.InvokeMessage(SerializeExpected("market.ethbtc.detail", expected));

            // assert
            Assert.IsTrue(subResult.Success);
            Assert.IsTrue(TestHelpers.AreEqual(expected, result));
        }
Example #3
0
        public async Task GetMarketDetails24H_Should_RespondWithDetails24H()
        {
            // arrange
            var expected = new HuobiSymbolData
            {
                Close      = 0.1m,
                Low        = 0.2m,
                Quantity   = 0.3m,
                Open       = 0.4m,
                High       = 0.5m,
                Volume     = 0.6m,
                TradeCount = 123
            };

            var client = TestHelpers.CreateResponseClient(SerializeExpected(expected, true));

            // act
            var result = await client.GetSymbolDetails24HAsync("BTCETH");

            // assert
            Assert.AreEqual(true, result.Success);
            Assert.IsTrue(TestHelpers.AreEqual(expected, result.Data, "Details"));
        }