示例#1
0
        public void SubscribingToBookUpdates_Should_TriggerWithBookUpdate(Precision prec, Frequency freq)
        {
            // arrange
            var socket = new TestSocket();

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

            BitfinexOrderBookEntry[] result = null;
            var subTask = client.SubscribeToBookUpdatesAsync("Test", prec, freq, 10, data => result = data);

            var subResponse = new BookSubscriptionResponse()
            {
                Channel   = "book",
                Event     = "subscribed",
                ChannelId = 1,
                Frequency = JsonConvert.SerializeObject(freq, new FrequencyConverter(false)),
                Length    = 10,
                Pair      = "Test",
                Precision = JsonConvert.SerializeObject(prec, new PrecisionConverter(false)),
                Symbol    = "Test"
            };

            socket.InvokeMessage(subResponse);
            subTask.Wait(5000);
            BitfinexOrderBookEntry[] expected = new[] { new BitfinexOrderBookEntry() };

            // act
            socket.InvokeMessage($"[1, {JsonConvert.SerializeObject(expected)}]");

            // assert
            Assert.IsTrue(TestHelpers.AreEqual(result[0], expected[0]));
        }
示例#2
0
        public void SubscribingToRawBookUpdates_Should_TriggerWithRawBookUpdate()
        {
            // arrange
            var socket = new TestSocket();

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

            BitfinexRawOrderBookEntry[] result = null;
            var subTask = client.SubscribeToRawBookUpdatesAsync("tBTCUSD", 10, data => result = data.ToArray());

            var subResponse = new BookSubscriptionResponse()
            {
                Channel   = "book",
                Event     = "subscribed",
                ChannelId = 1,
                Symbol    = "tBTCUSD",
                Pair      = "BTCUSD",
                Frequency = "F0",
                Precision = "R0",
                Length    = 10
            };

            socket.InvokeMessage(subResponse);
            subTask.Wait(5000);
            BitfinexRawOrderBookEntry[] expected = new [] { new BitfinexRawOrderBookEntry() };

            // act
            socket.InvokeMessage($"[1, {JsonConvert.SerializeObject(expected)}]");

            // assert
            Assert.IsTrue(TestHelpers.AreEqual(result[0], expected[0]));
        }
示例#3
0
        public void SubscribingToRawBookUpdates_Should_SubscribeSuccessfully()
        {
            // arrange
            var socket = new TestSocket();

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

            var subTask = client.SubscribeToRawBookUpdatesAsync("Test", 10, data => { });

            var subResponse = new BookSubscriptionResponse()
            {
                Channel   = "book",
                Event     = "subscribed",
                ChannelId = 1,
                Symbol    = "Test",
                Pair      = "Test",
                Frequency = "F0",
                Precision = "R0",
                Length    = 10
            };

            // act
            socket.InvokeMessage(subResponse);

            subTask.Wait(5000);

            // assert
            Assert.IsTrue(subTask.Result.Success);
        }
示例#4
0
        public async Task SubscribingToBookUpdates_Should_SubscribeSuccessfully(Precision prec, Frequency freq)
        {
            // arrange
            var socket = new TestSocket();

            socket.CanConnect = true;
            var client = TestHelpers.CreateSocketClient(socket, new BitfinexSocketClientOptions()
            {
                LogVerbosity = LogVerbosity.Debug
            });

            BitfinexOrderBookEntry[] result;
            var subTask = client.SubscribeToBookUpdatesAsync("tBTCUSD", prec, freq, 25, data => result = data.ToArray());

            var subResponse = new BookSubscriptionResponse()
            {
                Channel   = "book",
                Event     = "subscribed",
                ChannelId = 1,
                Frequency = JsonConvert.SerializeObject(freq, new FrequencyConverter(false)),
                Length    = 25,
                Pair      = "BTCUSD",
                Precision = JsonConvert.SerializeObject(prec, new PrecisionConverter(false)),
                Symbol    = "tBTCUSD"
            };

            // act
            socket.InvokeMessage(subResponse);

            var taskResult = await subTask.ConfigureAwait(false);

            // assert
            Assert.IsTrue(taskResult.Success);
        }