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 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); }