mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-16 18:47:57 -05:00
Updating profiler old event filtering and unit tests (#624)
This commit is contained in:
committed by
GitHub
parent
c87b369426
commit
f5efe18e1b
@@ -129,7 +129,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Profiler
|
|||||||
/// Filter the event list to not include previously seen events,
|
/// Filter the event list to not include previously seen events,
|
||||||
/// and to exclude events that happened before the profiling session began.
|
/// and to exclude events that happened before the profiling session began.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<ProfilerEvent> FilterOldEvents(List<ProfilerEvent> events)
|
public void FilterOldEvents(List<ProfilerEvent> events)
|
||||||
{
|
{
|
||||||
if (lastSeenEvent != null)
|
if (lastSeenEvent != null)
|
||||||
{
|
{
|
||||||
@@ -168,8 +168,6 @@ namespace Microsoft.SqlTools.ServiceLayer.Profiler
|
|||||||
// ignore all events before the session began
|
// ignore all events before the session began
|
||||||
events.Clear();
|
events.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
return events;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -160,9 +160,8 @@ namespace Microsoft.SqlTools.ServiceLayer.Profiler
|
|||||||
session.IsPolling = false;
|
session.IsPolling = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return session.FilterProfilerEvents(
|
session.FilterOldEvents(events);
|
||||||
session.FilterOldEvents(events)
|
return session.FilterProfilerEvents(events);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -24,28 +24,32 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Profiler
|
|||||||
{
|
{
|
||||||
// create a profiler session and get some test events
|
// create a profiler session and get some test events
|
||||||
var profilerSession = new ProfilerSession();
|
var profilerSession = new ProfilerSession();
|
||||||
|
var allEvents = ProfilerTestObjects.TestProfilerEvents;
|
||||||
var profilerEvents = ProfilerTestObjects.TestProfilerEvents;
|
var profilerEvents = ProfilerTestObjects.TestProfilerEvents;
|
||||||
|
|
||||||
// filter old events shouldn't filter any new events
|
|
||||||
var newProfilerEvents = profilerSession.FilterOldEvents(profilerEvents);
|
|
||||||
Assert.Equal(profilerEvents.Count, newProfilerEvents.Count);
|
|
||||||
|
|
||||||
// filter should now filter all the events since they've been seen before
|
// filter all the results from the first poll
|
||||||
newProfilerEvents = profilerSession.FilterOldEvents(profilerEvents);
|
// these events happened before the profiler began
|
||||||
Assert.Equal(newProfilerEvents.Count, 0);
|
profilerSession.FilterOldEvents(profilerEvents);
|
||||||
|
Assert.Equal(profilerEvents.Count, 0);
|
||||||
|
|
||||||
// add a new event
|
// add a new event
|
||||||
var newEvent = new ProfilerEvent("new event", "1/1/2017");
|
var newEvent = new ProfilerEvent("new event", "1/1/2017");
|
||||||
profilerEvents.Add(newEvent);
|
allEvents.Add(newEvent);
|
||||||
|
|
||||||
// verify we only have the new event when reprocessing the event list
|
// poll all events
|
||||||
newProfilerEvents = profilerSession.FilterOldEvents(profilerEvents);
|
profilerEvents.AddRange(allEvents);
|
||||||
Assert.Equal(newProfilerEvents.Count, 1);
|
|
||||||
Assert.True(newProfilerEvents[0].Equals(newEvent));
|
|
||||||
|
|
||||||
// process whole list again and verify nothing new is available
|
// filtering should leave only the new event
|
||||||
newProfilerEvents = profilerSession.FilterOldEvents(profilerEvents);
|
profilerSession.FilterOldEvents(profilerEvents);
|
||||||
Assert.Equal(newProfilerEvents.Count, 0);
|
Assert.Equal(profilerEvents.Count, 1);
|
||||||
|
Assert.True(profilerEvents[0].Equals(newEvent));
|
||||||
|
|
||||||
|
//poll again with no new events
|
||||||
|
profilerEvents.AddRange(allEvents);
|
||||||
|
|
||||||
|
// filter should now filter all the events since they've been seen before
|
||||||
|
profilerSession.FilterOldEvents(profilerEvents);
|
||||||
|
Assert.Equal(profilerEvents.Count, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user