public void when_starting_twice_then_ignores_second_request()
        {
            var receiver = new Mock<IMessageReceiver>();
            var serializer = new Mock<ITextSerializer>();
            var processor = new Mock<MessageProcessor>(receiver.Object, serializer.Object) { CallBase = true }.Object;

            processor.Start();

            processor.Start();
        }
Ejemplo n.º 2
0
        public void when_starting_twice_then_ignores_second_request()
        {
            var receiver   = new Mock <IMessageReceiver>();
            var serializer = new Mock <ITextSerializer>();
            var processor  = new Mock <MessageProcessor>(receiver.Object, serializer.Object)
            {
                CallBase = true
            }.Object;

            processor.Start();

            processor.Start();
        }
        public void when_starting_twice_then_throws()
        {
            var receiver   = new Mock <IMessageReceiver>();
            var serializer = new Mock <ISerializer>();
            var processor  = new Mock <MessageProcessor>(receiver.Object, serializer.Object)
            {
                CallBase = true
            }.Object;

            processor.Start();

            Assert.Throws <InvalidOperationException>(() => processor.Start());
        }
Ejemplo n.º 4
0
        public async Task DisconnectDisposesTransport()
        {
            var mockTransport = new Mock <IClientTransport>();

            mockTransport.Setup(t => t.Negotiate(It.IsAny <IConnection>(), It.IsAny <string>()))
            .Returns(Task.FromResult(new NegotiationResponse
            {
                ProtocolVersion         = "1.4",
                ConnectionId            = "42",
                ConnectionToken         = "42.42",
                DisconnectTimeout       = 10,
                TransportConnectTimeout = 10
            }));

            mockTransport.Setup(t => t.Start(It.IsAny <IConnection>(), It.IsAny <string>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult <object>(null));

            var connection = new Mock <Connection>("http://fakeurl")
            {
                CallBase = true
            }.Object;
            await connection.Start(mockTransport.Object);

            ((IConnection)connection).Disconnect();

            mockTransport.Verify(t => t.Dispose(), Times.Once());
        }
        public async Task Can_Observe_an_asynchronous_sequencial_percentance_sequence(string platformName)
        {
            var platform = GetPlatform(platformName);
            var signal   = Observable.Interval(TimeSpan.FromMilliseconds(10))
                           .Select(l => (decimal)l)
                           .Take(2).Do(obj => { }, () => { });

            using (var newApplication = DefaultProgressBarViewItemModule(platform).Application){
                if (platform == Platform.Win)
                {
                    var unused = new ProgressBarControl();
                    var progressBarViewItem =
                        new Mock <ProgressBarViewItemBase>(Mock.Of <IModelProgressBarViewItem>(), GetType())
                    {
                        CallBase = true
                    }.Object;
                    progressBarViewItem.Setup(null, newApplication);
                    progressBarViewItem.CreateControl();
                    progressBarViewItem.Start();
                    var progressBarControl  = (ProgressBarControl)progressBarViewItem.Control;
                    var whenPositionChanged = Observable
                                              .FromEventPattern <EventHandler, EventArgs>(h => progressBarControl.PositionChanged += h,
                                                                                          h => progressBarControl.PositionChanged -= h, ImmediateScheduler.Instance).Replay();
                    whenPositionChanged.Connect();

                    await signal.Do(progressBarViewItem).Timeout(Timeout).ToTaskWithoutConfigureAwait();

                    await whenPositionChanged.Take(2).Timeout(Timeout).ToTaskWithoutConfigureAwait();

                    progressBarViewItem.Position.ShouldBe(0);
                }
            }
        }
Ejemplo n.º 6
0
        public void ProcessResponseCapturesOnReceivedExceptions()
        {
            var ex         = new Exception();
            var connection = new Mock <IConnection>(MockBehavior.Strict);

            connection.SetupGet(c => c.JsonSerializer).Returns(JsonSerializer.CreateDefault());
            connection.Setup(c => c.OnReceived(It.IsAny <JToken>())).Throws(ex);
            connection.Setup(c => c.OnError(ex));
            connection.Setup(c => c.MarkLastMessage());

            var transport =
                new Mock <ClientTransportBase>(Mock.Of <IHttpClient>(), "fakeTransport")
            {
                CallBase = true
            }.Object;

            transport.Start(Mock.Of <IConnection>(), string.Empty, CancellationToken.None);

            // PersistentResponse
            transport.ProcessResponse(connection.Object, "{\"M\":{}}");

            // HubResponse (WebSockets)
            transport.ProcessResponse(connection.Object, "{\"I\":{}}");

            connection.VerifyAll();
        }
        internal async Task Can_Observe_an_asynchronous_sequencial_percentance_sequence(Platform platform)
        {
            var signal = Observable.Interval(TimeSpan.FromMilliseconds(10))
                         .Select(l => (decimal)l)
                         .Take(100);

            var newApplication = platform.NewApplication();

            newApplication.SetupDefaults();
            if (platform == Platform.Win)
            {
                var unused = new ProgressBarControl();
                var progressBarViewItem = new Mock <ProgressBarViewItemBase>(Mock.Of <IModelProgressBarViewItem>(), GetType())
                {
                    CallBase = true
                }.Object;
                progressBarViewItem.Setup(null, newApplication);
                progressBarViewItem.CreateControl();
                progressBarViewItem.Start();
                var progressBarControl  = (ProgressBarControl)progressBarViewItem.Control;
                var whenPositionChanged = Observable.FromEventPattern <EventHandler, EventArgs>(h => progressBarControl.PositionChanged += h, h => progressBarControl.PositionChanged -= h).Replay();
                whenPositionChanged.Connect();

                await signal.Do(progressBarViewItem);

                await whenPositionChanged.Take(100).WithTimeOut();

                progressBarViewItem.Position.ShouldBe(0);
            }
        }
        public void when_disposing_started_then_stops()
        {
            var receiver = new Mock<IMessageReceiver>();
            var serializer = new Mock<ITextSerializer>();
            var processor = new Mock<MessageProcessor>(receiver.Object, serializer.Object) { CallBase = true }.Object;

            processor.Start();
            processor.Dispose();

            Mock.Get(processor).Verify(x => x.Stop());
        }
Ejemplo n.º 9
0
        public void when_disposing_started_then_stops()
        {
            var receiver   = new Mock <IMessageReceiver>();
            var serializer = new Mock <ITextSerializer>();
            var processor  = new Mock <MessageProcessor>(receiver.Object, serializer.Object)
            {
                CallBase = true
            }.Object;

            processor.Start();
            processor.Dispose();

            Mock.Get(processor).Verify(x => x.Stop());
        }
        public void when_starting_disposed_then_throws()
        {
            var receiver   = new Mock <IMessageReceiver>();
            var serializer = new Mock <ISerializer>();
            var processor  = new Mock <MessageProcessor>(receiver.Object, serializer.Object)
            {
                CallBase = true
            }.Object;


            processor.Dispose();

            Assert.Throws <ObjectDisposedException>(() => processor.Start());
        }
Ejemplo n.º 11
0
        public void ProcessResponseCapturesOnReceivedExceptions()
        {
            var ex = new Exception();
            var connection = new Mock<IConnection>(MockBehavior.Strict);
            connection.SetupGet(c => c.JsonSerializer).Returns(JsonSerializer.CreateDefault());
            connection.Setup(c => c.OnReceived(It.IsAny<JToken>())).Throws(ex);
            connection.Setup(c => c.OnError(ex));
            connection.Setup(c => c.MarkLastMessage());

            var transport =
                new Mock<ClientTransportBase>(Mock.Of<IHttpClient>(), "fakeTransport") {CallBase = true}.Object;

            transport.Start(Mock.Of<IConnection>(), string.Empty, CancellationToken.None);

            // PersistentResponse
            transport.ProcessResponse(connection.Object, "{\"M\":{}}");

            // HubResponse (WebSockets)
            transport.ProcessResponse(connection.Object, "{\"I\":{}}");

            connection.VerifyAll();
        }
Ejemplo n.º 12
0
        public void DisconnectsWithErrorIfServerSendsGlobalErrorMessage()
        {
            var ex         = new Exception();
            var connection = new Mock <IConnection>(MockBehavior.Strict);

            connection.SetupGet(c => c.JsonSerializer).Returns(JsonSerializer.CreateDefault());
            connection.Setup(c => c.Disconnect());
            connection.Setup(c => c.OnError(It.Is <HubException>(h => h.Message.Equals(string.Format(Resources.Error_ErrorFromServer, "Uh oh!")))));
            connection.Setup(c => c.MarkLastMessage());

            var transport =
                new Mock <ClientTransportBase>(Mock.Of <IHttpClient>(), "fakeTransport")
            {
                CallBase = true
            }.Object;

            transport.Start(Mock.Of <IConnection>(), string.Empty, CancellationToken.None);

            transport.ProcessResponse(connection.Object, "{ \"E\": \"Uh oh!\" }");

            connection.VerifyAll();
        }
Ejemplo n.º 13
0
        public async Task DisconnectDisposesTransport()
        {
            var mockTransport = new Mock<IClientTransport>();
            mockTransport.Setup(t => t.Negotiate(It.IsAny<IConnection>(), It.IsAny<string>()))
                .Returns(Task.FromResult(new NegotiationResponse
                {
                    ProtocolVersion = "1.4",
                    ConnectionId = "42",
                    ConnectionToken = "42.42",
                    DisconnectTimeout = 10,
                    TransportConnectTimeout = 10
                }));

            mockTransport.Setup(t => t.Start(It.IsAny<IConnection>(), It.IsAny<string>(), It.IsAny<CancellationToken>()))
                .Returns(Task.FromResult<object>(null));

            var connection = new Mock<Connection>("http://fakeurl") { CallBase = true }.Object;
            await connection.Start(mockTransport.Object);
            ((IConnection) connection).Disconnect();

            mockTransport.Verify(t => t.Dispose(), Times.Once());
        }
Ejemplo n.º 14
0
 public void SetUp()
 {
     Mock.Start("MockTest.json");
 }