public void RaiseEventLogEventDropped_OnLogItems()
        {
            const int RequestsLimit       = 2;
            const int EventsCount         = 5;
            int       discardedItemsCount = 0;

            int ExpectedDiscardedItemsCount     = EventsCount - RequestsLimit;
            ConcurrentRequestQueue requestQueue = new ConcurrentRequestQueue(RequestsLimit, AsyncTargetWrapperOverflowAction.Discard);

            requestQueue.LogEventDropped += (o, e) => { discardedItemsCount++; };

            for (int i = 0; i < EventsCount; i++)
            {
                requestQueue.Enqueue(new AsyncLogEventInfo());
            }

            Assert.Equal(ExpectedDiscardedItemsCount, discardedItemsCount);
        }
Ejemplo n.º 2
0
        public void RaiseEventLogEventQueueGrow_OnLogItems()
        {
            const int RequestsLimit = 2;
            const int EventsCount   = 5;
            const int ExpectedCountOfGrovingTimes = EventsCount - RequestsLimit;
            int       grovingItemsCount           = 0;

            ConcurrentRequestQueue requestQueue = new ConcurrentRequestQueue(RequestsLimit, AsyncTargetWrapperOverflowAction.Grow);

            requestQueue.LogEventQueueGrow += (o, e) => { grovingItemsCount++; };

            for (int i = 0; i < EventsCount; i++)
            {
                requestQueue.Enqueue(new AsyncLogEventInfo());
            }

            Assert.Equal(ExpectedCountOfGrovingTimes, grovingItemsCount);
        }
        public void DequeueBatch_WithNonEmptyList_ReturnsValidCount(AsyncTargetWrapperOverflowAction overflowAction)
        {
            // Stage
            ConcurrentRequestQueue requestQueue = new ConcurrentRequestQueue(2, overflowAction);

            requestQueue.Enqueue(new AsyncLogEventInfo());
            requestQueue.Enqueue(new AsyncLogEventInfo());
            Assert.Equal(2, requestQueue.Count);

            // Act
            var batch = new List <AsyncLogEventInfo>();

            requestQueue.DequeueBatch(1, batch);    // Dequeue into empty-list
            Assert.Equal(1, requestQueue.Count);
            requestQueue.DequeueBatch(1, batch);    // Dequeue into non-empty-list

            // Assert
            Assert.Equal(0, requestQueue.Count);
            Assert.Equal(2, batch.Count);
        }