public void UpdateMessage_StreamUpdated()
        {
            // Arrange
            var timestamp = DateTimeOffset.UtcNow;
            var triggered = false;
            var client    = InitializeMarketClient();

            client.Streams.CandlestickUpdateStream.Subscribe(
                msg =>
            {
                triggered = true;

                // Assert
                Assert.NotNull(msg);
                Assert.Contains(SubscriptionType.MarketCandlestick.ToTopicId(), msg.Topic);
                Assert.True(TestUtils.UnixTimesEqual(timestamp, msg.Timestamp));
                Assert.True(msg.Tick !.Id > 0);
            });

            var message = HuobiMessagesFactory.CreateMarketCandlestickUpdateMessage(timestamp);

            // Act
            TriggerMessageReceive(message);

            // Assert
            VerifyMessageNotUnhandled();
            Assert.True(triggered);
        }
Esempio n. 2
0
        public void HandleResponse_StreamUpdated()
        {
            // Arrange
            var timestamp = DateTimeOffset.UtcNow;
            var message   = HuobiMessagesFactory.CreateSubscribeResponseMessage(timestamp);

            var triggered = false;
            var client    = InitializeGenericClient();

            client.Streams.ResponseMessageStream.Subscribe(
                msg =>
            {
                triggered = true;

                // Assert
                Assert.Equal(message, msg);
            });

            // Act
            TriggerMessageReceive(message);

            // Assert
            VerifyMessageNotUnhandled();
            Assert.True(triggered);
        }
Esempio n. 3
0
        public void HandleResponse_Unsubscribed_StreamUpdated()
        {
            // Arrange
            var timestamp = DateTimeOffset.UtcNow;
            var triggered = false;
            var client    = InitializeMarketClient();

            client.Streams.UnsubscribeResponseStream.Subscribe(
                msg =>
            {
                triggered = true;

                // Assert
                Assert.NotNull(msg);
                Assert.True(!string.IsNullOrEmpty(msg.Topic));
                Assert.True(!string.IsNullOrEmpty(msg.Status));
                Assert.True(!string.IsNullOrEmpty(msg.ReqId));
                Assert.True(TestUtils.UnixTimesEqual(timestamp, msg.Timestamp));
            });

            var message = HuobiMessagesFactory.CreateUnsubscribeResponseMessage(timestamp);

            // Act
            TriggerMessageReceive(message);

            // Assert
            VerifyMessageNotUnhandled();
            Assert.True(triggered);
        }
Esempio n. 4
0
        public void PullMessage_StreamUpdated()
        {
            // Arrange
            var timestamp = DateTimeOffset.UtcNow;
            var triggered = false;
            var client    = InitializeMarketClient();

            client.Streams.DepthPullStream.Subscribe(
                msg =>
            {
                triggered = true;

                // Assert
                Assert.NotNull(msg);
                Assert.Contains(SubscriptionType.MarketDepth.ToTopicId(), msg.Topic);
                Assert.True(TestUtils.UnixTimesEqual(timestamp, msg.Timestamp));
                Assert.Equal(2, msg.Data !.Bids.Length);
                Assert.True(msg.Data !.Bids[0].Price > 0);
                Assert.Equal(2, msg.Data !.Asks.Length);
                Assert.True(msg.Data !.Asks[0].Price > 0);
            });

            var message = HuobiMessagesFactory.CreateMarketDepthPullResponseMessage(timestamp);

            // Act
            TriggerMessageReceive(message);

            // Assert
            VerifyMessageNotUnhandled();
            Assert.True(triggered);
        }