Beispiel #1
0
        public void SubscribeTest()
        {
            string actual   = null;
            string expected = "[\"BTC-USD\",\"BTC-ETH\"]";

            _wss.Setup(w => w.Send(It.IsAny <string>())).Callback <string>(c => actual = c);

            _unit.Ticks.Clear();

            _unit.Subscribe(new[] { Symbol.Create("BTCUSD", SecurityType.Crypto, Market.GDAX), Symbol.Create("GBPUSD", SecurityType.Crypto, Market.GDAX),
                                    Symbol.Create("BTCETH", SecurityType.Crypto, Market.GDAX) });

            StringAssert.Contains(expected, actual);

            // spin for a few seconds, waiting for the GBPUSD tick
            var start   = DateTime.UtcNow;
            var timeout = start.AddSeconds(5);

            while (_unit.Ticks.Count == 0 && DateTime.UtcNow < timeout)
            {
                Thread.Sleep(1);
            }

            // only rate conversion ticks are received during subscribe
            Assert.AreEqual(1, _unit.Ticks.Count);
            Assert.AreEqual("GBPUSD", _unit.Ticks[0].Symbol.Value);
        }
Beispiel #2
0
        public void SubscribeTest()
        {
            string actual   = null;
            string expected = "[\"BTC-USD\",\"BTC-ETH\"]";

            _wss.Setup(w => w.Send(It.IsAny <string>())).Callback <string>(c => actual = c);

            _unit.Ticks.Clear();

            _unit.Subscribe(Mock.Of <LiveNodePacket>(), new[] { Symbol.Create("BTCUSD", SecurityType.Crypto, Market.GDAX), Symbol.Create("GBPUSD", SecurityType.Crypto, Market.GDAX),
                                                                Symbol.Create("BTCETH", SecurityType.Crypto, Market.GDAX) });

            StringAssert.Contains(expected, actual);

            Assert.AreEqual(3, _unit.Ticks.Count());
            Assert.AreEqual(333.98, _unit.Ticks.First().BidPrice);
            Assert.AreEqual(333.99, _unit.Ticks.First().AskPrice);
            Assert.AreEqual(333.985, _unit.Ticks.First().Price);
        }