public void TelemetryBufferCallingOnFullActionWhenBufferCapacityReached()
        {
            IEnumerable<ITelemetry> items = null;
            TelemetryBuffer buffer = new TelemetryBuffer { Capacity = 2 };
            buffer.OnFull = () => { items = buffer.Dequeue(); };

            buffer.Enqueue(new EventTelemetry("Event1"));
            buffer.Enqueue(new EventTelemetry("Event2"));

            Assert.NotNull(items);
            Assert.Equal(2, items.Count());
        }
예제 #2
0
        public void TelemetryBufferCallingOnFullActionWhenBufferCapacityReached()
        {
            IEnumerable <ITelemetry> items  = null;
            TelemetryBuffer          buffer = new TelemetryBuffer {
                Capacity = 2
            };

            buffer.OnFull = () => { items = buffer.Dequeue(); };

            buffer.Enqueue(new EventTelemetry("Event1"));
            buffer.Enqueue(new EventTelemetry("Event2"));

            Assert.NotNull(items);
            Assert.Equal(2, items.Count());
        }
        public void TelemetryBufferDoesNotGrowBeyondMaxBacklogSize()
        {
            TelemetryBuffer buffer = new TelemetryBuffer {
                Capacity = 2, BacklogSize = 1002
            };

            buffer.OnFull = () => { //intentionally blank to simulate situation where buffer
                                    //is not emptied.
            };

            // Add more items to buffer than the max backlog size
            for (int i = 0; i < 1005; i++)
            {
                buffer.Enqueue(new EventTelemetry("Event" + i));
            }



            // validate that items are not added after maxunsentbacklogsize is reached.
            // this also validate that items can still be added after Capacity is reached as it is only a soft limit.
            int bufferItemCount = buffer.Dequeue().Count();

            Assert.AreEqual(1002, bufferItemCount);
        }