public void HandleResponse_Subscribed_StreamUpdated()
        {
            var triggered = false;
            var client    = InitializeAccountClient();

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

                // Assert
                Assert.NotNull(msg);
                Assert.True(msg.Code > 0);
                Assert.True(!string.IsNullOrEmpty(msg.Channel));
            });

            var message = HuobiAccountMessagesFactory.CreateSubscribeResponseMessage();

            // Act
            TriggerMessageReceive(message);

            // Assert
            VerifyMessageNotUnhandled();
            Assert.True(triggered);
        }
        public void AccountUpdateMessage_AvailableBalanceChanged_StreamUpdated(
            string changeType,
            string accountType)
        {
            // Arrange
            var changeTime = DateTimeOffset.UtcNow;
            var triggered  = false;
            var client     = InitializeAccountClient();

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

                // Assert
                Assert.NotNull(msg);
                Assert.NotNull(msg.Data);
                Assert.True(EnumTestDataBase.EqualsWithString(changeType, msg.Data !.ChangeType));
                Assert.True(EnumTestDataBase.EqualsWithString(accountType, msg.Data !.AccountType));
                Assert.True(TestUtils.UnixTimesEqual(changeTime, msg.Data !.ChangeTime));
            });

            var message = HuobiAccountMessagesFactory.CreateAccountUpdateAvailableBalanceChangedMessage(
                changeType,
                accountType,
                changeTime);

            // Act
            TriggerMessageReceive(message);

            // Assert
            VerifyMessageNotUnhandled();
            Assert.True(triggered);
        }
예제 #3
0
        public void OrderSubmittedMessage_StreamUpdated(string orderType)
        {
            // Arrange
            var lastActTime = DateTimeOffset.UtcNow;
            var triggered   = false;
            var client      = InitializeAccountClient();

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

                // Assert
                Assert.NotNull(msg);
                Assert.NotNull(msg.Data);
                Assert.Equal(OrderEventType.Creation, msg.Data !.EventType);
                Assert.Equal(OrderStatus.Submitted, msg.Data !.OrderStatus);
                Assert.True(EnumTestDataBase.EqualsWithString(orderType, msg.Data !.Type));
                Assert.True(TestUtils.UnixTimesEqual(lastActTime, msg.Data !.OrderCreateTime));
            });

            var message = HuobiAccountMessagesFactory.CreateOrderSubmittedMessage(orderType, lastActTime);

            // Act
            TriggerMessageReceive(message);

            // Assert
            VerifyMessageNotUnhandled();
            Assert.True(triggered);
        }
예제 #4
0
        public void TradeDetailsMessage_StreamUpdated(
            string eventType,
            string orderSide,
            string orderType,
            string orderStatus)
        {
            // Arrange
            var tradeAndCreateTime = DateTimeOffset.UtcNow;
            var triggered          = false;
            var client             = InitializeAccountClient();

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

                // Assert
                Assert.NotNull(msg);
                Assert.NotNull(msg.Data);
                Assert.True(EnumTestDataBase.EqualsWithString(eventType, msg.Data !.EventType));
                Assert.True(EnumTestDataBase.EqualsWithString(orderSide, msg.Data !.OrderSide));
                Assert.True(EnumTestDataBase.EqualsWithString(orderType, msg.Data !.OrderType));
                Assert.True(EnumTestDataBase.EqualsWithString(orderStatus, msg.Data !.OrderStatus));
                Assert.True(TestUtils.UnixTimesEqual(tradeAndCreateTime, msg.Data !.TradeTime));
                Assert.True(TestUtils.UnixTimesEqual(tradeAndCreateTime, msg.Data !.OrderCreateTime));
            });

            var message = HuobiAccountMessagesFactory.CreateTradeDetailsMessage(
                eventType,
                orderSide,
                orderType,
                orderStatus,
                tradeAndCreateTime);

            // Act
            TriggerMessageReceive(message);

            // Assert
            VerifyMessageNotUnhandled();
            Assert.True(triggered);
        }
        public void HandleResponse_SubscribeErrorMessage_StreamUpdated(AccountSubscriptionType subscriptionType)
        {
            var triggered = false;
            var client    = InitializeAccountClient();

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

                // Assert
                Assert.NotNull(msg);
            });

            var message = HuobiAccountMessagesFactory.CreateSubscribeErrorMessage(subscriptionType);

            // Act
            TriggerMessageReceive(message);

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