예제 #1
0
        public void Dispose()
        {
            if (state.TryIncreaseTo(Disposed))
            {
                environmentsStorage.Dispose();
                applicationsStorage.Dispose();

                updateCacheSignal.Set();

                updateCacheTask?.GetAwaiter().GetResult();

                eventsQueue.Dispose();
            }
        }
        public void Should_not_handle_new_events_after_dispose()
        {
            var queue = new ActionsQueue(log);

            queue.Dispose();

            var tmp = false;

            queue.Enqueue(() => tmp = true);

            Action action = () => tmp.Should().BeFalse();

            action.ShouldNotFailIn(defaultTimeout);
        }
        public void Should_not_handle_enqueued_actions_after_dispose()
        {
            var queue = new ActionsQueue(log);

            var tmp = 1;

            queue.Enqueue(
                () =>
            {
                tmp = 2;
                Thread.Sleep(defaultTimeout - 100.Milliseconds());
            });
            queue.Enqueue(() => tmp = 4);

            Action waitStartAction = () => tmp.Should().Be(2);

            waitStartAction.ShouldPassIn(50.Milliseconds());

            queue.Dispose();

            Action action2 = () => tmp.Should().Be(2);

            action2.ShouldNotFailIn(defaultTimeout + 100.Milliseconds());
        }
예제 #4
0
 public void OneTimeTearDown()
 {
     Ensemble.Dispose();
     EventsQueue.Dispose();
 }