コード例 #1
0
        public void GetReceiveAndForgetConnectionNotYetSubscribedTest()
        {
            var dateTimeProvider = Substitute.For <IDateTimeProvider>();

            dateTimeProvider.UtcNow.Returns(DateTime.UtcNow);

            var pusherRegistry     = new PusherRegistry(dateTimeProvider);
            var connectionRegistry = new ConnectionRegistry(pusherRegistry, null);

            var persistentConnection = Substitute.For <IPersistentConnection>();

            persistentConnection.ConnectionId.Returns(Guid.NewGuid());

            connectionRegistry.RegisterInitiatedConnection(persistentConnection);
            connectionRegistry.PromoteToLoggedInConnection(persistentConnection, Identity.Next(), 1);

            connectionRegistry.PromoteToSubscribedConnection(persistentConnection.DeviceId, SubscriptionType.ReceiveAndForget);
            connectionRegistry.UnsubscribeConnection(persistentConnection.DeviceId);

            persistentConnection.LastHeartbeat.Returns(DateTime.UtcNow.AddMinutes(-10.1));

            var nothing = pusherRegistry.GetReceiveAndForgetConnection();

            Assert.IsNull(nothing);
        }
コード例 #2
0
        public void GetReceiveAndForgetConnectionHeartbeatOkTest()
        {
            var dateTimeProvider = Substitute.For <IDateTimeProvider>();

            dateTimeProvider.UtcNow.Returns(DateTime.UtcNow);

            var pusherRegistry     = new PusherRegistry(dateTimeProvider);
            var connectionRegistry = new ConnectionRegistry(pusherRegistry, null);

            var persistentConnection = Substitute.For <IPersistentConnection>();

            persistentConnection.ConnectionId.Returns(Guid.NewGuid());

            connectionRegistry.RegisterInitiatedConnection(persistentConnection);
            connectionRegistry.PromoteToLoggedInConnection(persistentConnection, Identity.Next(), 1);

            connectionRegistry.PromoteToSubscribedConnection(persistentConnection.DeviceId, SubscriptionType.ReceiveAndForget);

            persistentConnection.LastHeartbeat.Returns(DateTime.UtcNow.AddSeconds(-20.0));
            persistentConnection.NextReceiveAndForgetTime.Returns(DateTime.UtcNow.AddSeconds(-0.1));

            var conn = pusherRegistry.GetReceiveAndForgetConnection();

            Assert.AreEqual(persistentConnection, conn);
            persistentConnection.ReceivedWithAnyArgs().NextReceiveAndForgetTime = new DateTime();
        }
コード例 #3
0
        public void GetReceiveAndForgetConnectionEmptyTest()
        {
            var pusherRegistry = new PusherRegistry(new DateTimeProvider());

            var nothing = pusherRegistry.GetReceiveAndForgetConnection();

            Assert.IsNull(nothing);
        }