Пример #1
0
    public void OnEnqueuedNotAlreadyDispatched()
    {
        var  queue         = new DerivedQueue <int>();
        bool callbackFired = false;

        queue.OnEnqueuedDelegate = (value, alreadyDispatched) =>
        {
            Assert.Equal(5, value);
            Assert.False(alreadyDispatched);
            callbackFired = true;
        };
        queue.Enqueue(5);
        Assert.True(callbackFired);
    }
Пример #2
0
    public void OnDequeued()
    {
        var  queue         = new DerivedQueue <int>();
        bool callbackFired = false;

        queue.OnDequeuedDelegate = value =>
        {
            Assert.Equal(5, value);
            callbackFired = true;
        };

        queue.Enqueue(5);
        Assert.True(queue.TryDequeue(out int dequeuedValue));
        Assert.True(callbackFired);
    }
Пример #3
0
    public async Task OnEnqueuedAlreadyDispatched()
    {
        var  queue         = new DerivedQueue <int>();
        bool callbackFired = false;

        queue.OnEnqueuedDelegate = (value, alreadyDispatched) =>
        {
            Assert.Equal(5, value);
            Assert.True(alreadyDispatched);
            callbackFired = true;
        };

        Task <int>?dequeuer = queue.DequeueAsync();

        queue.Enqueue(5);
        Assert.True(callbackFired);
        Assert.Equal(5, await dequeuer.WithTimeout(UnexpectedTimeout));
    }
Пример #4
0
        public void OnEnqueuedAlreadyDispatched()
        {
            var  queue         = new DerivedQueue <int>();
            bool callbackFired = false;

            queue.OnEnqueuedDelegate = (value, alreadyDispatched) =>
            {
                Assert.Equal(5, value);
                Assert.True(alreadyDispatched);
                callbackFired = true;
            };

            var dequeuer = queue.DequeueAsync();

            queue.Enqueue(5);
            Assert.True(callbackFired);
            Assert.True(dequeuer.IsCompleted);
        }