예제 #1
0
        public void prune_expired_listeners_based_on_the_expired_property()
        {
            var listener1 = new StubListener<Message1>();
            var listener2 = new StubListener<Message1>();
            var listener3 = new StubListener<Message1>();
            var listener4 = new StubListener<Message2>();

            var listener5 = new ExpiringListener {IsExpired = true};
            var listener6 = new ExpiringListener {IsExpired = true};
            var listener7 = new ExpiringListener {IsExpired = false};

            events.AddListeners(listener1, listener2, listener3, listener4, listener5, listener6, listener7);

            events.PruneExpiredListeners(DateTime.Now);

            // non-expiring listeners should be untouched
            events.Listeners.ShouldContain(listener1);
            events.Listeners.ShouldContain(listener2);
            events.Listeners.ShouldContain(listener3);
            events.Listeners.ShouldContain(listener4);

            // expired expiring listeners should be removed
            events.Listeners.ShouldNotContain(listener5);
            events.Listeners.ShouldNotContain(listener6);

            // not-expired expiring listener should not be removed
            events.Listeners.ShouldContain(listener7);
        }
예제 #2
0
        public void prune_expired_listeners_based_on_the_expired_property()
        {
            var listener1 = new StubListener <Message1>();
            var listener2 = new StubListener <Message1>();
            var listener3 = new StubListener <Message1>();
            var listener4 = new StubListener <Message2>();

            var listener5 = new ExpiringListener {
                IsExpired = true
            };
            var listener6 = new ExpiringListener {
                IsExpired = true
            };
            var listener7 = new ExpiringListener {
                IsExpired = false
            };

            events.AddListeners(listener1, listener2, listener3, listener4, listener5, listener6, listener7);

            events.PruneExpiredListeners(DateTime.Now);

            // non-expiring listeners should be untouched
            events.Listeners.ShouldContain(listener1);
            events.Listeners.ShouldContain(listener2);
            events.Listeners.ShouldContain(listener3);
            events.Listeners.ShouldContain(listener4);

            // expired expiring listeners should be removed
            events.Listeners.ShouldNotContain(listener5);
            events.Listeners.ShouldNotContain(listener6);

            // not-expired expiring listener should not be removed
            events.Listeners.ShouldContain(listener7);
        }
예제 #3
0
        public void prune_expired_listeners_based_on_time()
        {
            var now = DateTime.Today.AddHours(5);

            var listener1 = new StubListener <Message1>();
            var listener2 = new StubListener <Message1>();
            var listener3 = new StubListener <Message1>();
            var listener4 = new StubListener <Message2>();

            var listener5 = new ExpiringListener {
                ExpiresAt = now.AddMinutes(-1)
            };
            var listener6 = new ExpiringListener {
                ExpiresAt = now.AddMinutes(-1)
            };
            var listener7 = new ExpiringListener {
                ExpiresAt = now.AddMinutes(1)
            };

            events.AddListeners(listener1, listener2, listener3, listener4, listener5, listener6, listener7);

            events.PruneExpiredListeners(now);

            // non-expiring listeners should be untouched
            events.Listeners.ShouldContain(listener1);
            events.Listeners.ShouldContain(listener2);
            events.Listeners.ShouldContain(listener3);
            events.Listeners.ShouldContain(listener4);

            // expired expiring listeners should be removed
            events.Listeners.ShouldNotContain(listener5);
            events.Listeners.ShouldNotContain(listener6);

            // not-expired expiring listener should not be removed

            listener7.IsExpired(now).ShouldBeFalse();
            events.Listeners.ShouldContain(listener7);
        }
예제 #4
0
        public void prune_expired_listeners_based_on_time()
        {
            var now = DateTime.Today.AddHours(5);

            var listener1 = new StubListener<Message1>();
            var listener2 = new StubListener<Message1>();
            var listener3 = new StubListener<Message1>();
            var listener4 = new StubListener<Message2>();

            var listener5 = new ExpiringListener {ExpiresAt = now.AddMinutes(-1)};
            var listener6 = new ExpiringListener {ExpiresAt = now.AddMinutes(-1)};
            var listener7 = new ExpiringListener {ExpiresAt = now.AddMinutes(1)};

            events.AddListeners(listener1, listener2, listener3, listener4, listener5, listener6, listener7);

            events.PruneExpiredListeners(now);

            // non-expiring listeners should be untouched
            events.Listeners.ShouldContain(listener1);
            events.Listeners.ShouldContain(listener2);
            events.Listeners.ShouldContain(listener3);
            events.Listeners.ShouldContain(listener4);

            // expired expiring listeners should be removed
            events.Listeners.ShouldNotContain(listener5);
            events.Listeners.ShouldNotContain(listener6);

            // not-expired expiring listener should not be removed

            listener7.IsExpired(now).ShouldBeFalse();
            events.Listeners.ShouldContain(listener7);
        }