public void EnsureHandler_receives_messages()
        {
            var semaphore   = new Semaphore(0, int.MaxValue);
            var messageList = CreateMessageList(2);

            _apiExecutorMock.Setup(obj => obj.Execute(It.IsAny <Func <string, string, Datafeed> >(), "sessionToken", "keyManagerToken")).Returns(new Datafeed("streamId"));
            _apiExecutorMock.Setup(obj => obj.Execute(It.IsAny <Func <string, string, string, int?, V2MessageList> >(), "streamId", "sessionToken", "keyManagerToken", (int?)null))
            .Returns(messageList);
            var messagesReceived = 0;

            _datafeedApi.OnMessage += (_, messageEventArgs) =>
            {
                ++messagesReceived;
                if (messageEventArgs.Message.Id == "msg2")
                {
                    semaphore.Release(1);
                }
            };
            var task = Task.Run(() => _datafeedApi.Listen());

            if (!semaphore.WaitOne(1000))
            {
                Assert.True(false);
            }
            _datafeedApi.Stop();
            if (!task.Wait(1000))
            {
                Assert.True(false);
            }
            Assert.True(messagesReceived >= 2);
        }
Beispiel #2
0
        public void EnsureHandler_receives_messages()
        {
            var semaphore   = new Semaphore(0, int.MaxValue);
            var messageList = CreateMessageList(2);

            _apiExecutorMock.Setup(obj => obj.Execute(It.IsAny <Func <string, string, CancellationToken, Task <Datafeed> > >(), "sessionToken", "keyManagerToken", default(CancellationToken))).Returns(new Datafeed()
            {
                Id = "streamId"
            });

            _apiExecutorMock.Setup(obj => obj.ExecuteAsync(It.IsAny <Func <Task <System.Collections.ObjectModel.ObservableCollection <V4Event> > > >()))
            .ReturnsAsync(messageList);
            var messagesReceived = 0;

            _datafeedApi.OnMessage += (_, messageEventArgs) =>
            {
                ++messagesReceived;
                if (messageEventArgs.Message.Id == "msg2")
                {
                    semaphore.Release(1);
                }
            };
            var task = Task.Run(() => _datafeedApi.Listen());

            if (!semaphore.WaitOne(1000))
            {
                Assert.True(false);
            }
            _datafeedApi.Stop();
            if (!task.Wait(1000))
            {
                Assert.True(false);
            }
            Assert.True(messagesReceived >= 2);
        }
 private void StopSymphonyBot()
 {
     datafeedApi_.Stop();
 }