예제 #1
0
        public void NatsSeveralSubscriptionWorks()
        {
            using (var client = ClientsFactory.GetNatsClient())
            {
                client.Open();

                var waitObjects = new []
                {
                    new AutoResetEvent(false),
                    new AutoResetEvent(false)
                };

                client.TradeReceived += (trade) =>
                {
                    Assert.Equal(SYMBOL, trade.Symbol);
                    waitObjects[0].Set();
                };

                client.QuoteReceived += (quote) =>
                {
                    Assert.Equal(SYMBOL, quote.Symbol);
                    waitObjects[1].Set();
                };

                client.SubscribeTrade(SYMBOL);
                client.SubscribeQuote(SYMBOL);

                if (_restClient.GetClockAsync().Result.IsOpen)
                {
                    // ReSharper disable once CoVariantArrayConversion
                    Assert.True(WaitHandle.WaitAll(
                                    waitObjects, TimeSpan.FromSeconds(10)));
                }

                client.Close();
            }
        }
예제 #2
0
        public void NatsMinuteAggSubscriptionWorks()
        {
            using (var client = ClientsFactory.GetNatsClient())
            {
                client.Open();

                var waitObject = new AutoResetEvent(false);
                client.AggReceived += (agg) =>
                {
                    Assert.Equal(SYMBOL, agg.Symbol);
                    waitObject.Set();
                };

                client.SubscribeMinuteAgg(SYMBOL);

                if (_restClient.GetClockAsync().Result.IsOpen)
                {
                    Assert.True(waitObject.WaitOne(
                                    TimeSpan.FromSeconds(120)));
                }

                client.Close();
            }
        }
예제 #3
0
        public void NatsSecondBarSubscriptionWorks()
        {
            using (var client = ClientsFactory.GetNatsClient())
            {
                client.Open();

                var waitObject = new AutoResetEvent(false);
                client.BarReceived += (bar) =>
                {
                    Assert.Equal("AAPL", bar.Symbol);
                    waitObject.Set();
                };

                client.SubscribeSecondBar("AAPL");

                if (_restClient.GetClockAsync().Result.IsOpen)
                {
                    Assert.True(waitObject.WaitOne(
                                    TimeSpan.FromSeconds(10)));
                }

                client.Close();
            }
        }