public void One_start_and_one_end_outside_window_closes_one_and_produces_one_after_close() { EventWindowCollector collector = new EventWindowCollector(); int eventId = 1; Guid instanceId = new Guid(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1); DateTime startTime = new DateTime(2000, 1, 2, 3, 4, 5, 6); DateTime endTime = new DateTime(2000, 1, 2, 3, 4, 6, 6); List<EventWindow> windows = new List<EventWindow>(); collector.WindowClosed += (o, e) => windows.Add(e.Window); collector.OnStart(eventId, instanceId, startTime); collector.OnEnd(eventId, instanceId, endTime); Assert.Equal(1, windows.Count); Assert.Equal(startTime, windows[0].StartTime); Assert.Equal(1, windows[0].GetPendingCount(eventId)); Assert.Equal(0, windows[0].GetCompletedCount(eventId)); collector.CloseWindow(); Assert.Equal(2, windows.Count); Assert.Equal(endTime, windows[1].StartTime); Assert.Equal(0, windows[1].GetPendingCount(eventId)); Assert.Equal(1, windows[1].GetCompletedCount(eventId)); }
public void One_start_and_one_end_two_intervals_outside_window_closes_one_and_produces_one_after_close() { EventWindowCollector collector = new EventWindowCollector(); int eventId = 1; Guid instanceId = new Guid(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1); DateTime startTime = new DateTime(2000, 1, 2, 3, 4, 5, 6); DateTime endTime = new DateTime(2000, 1, 2, 3, 4, 7, 8); List <EventWindow> windows = new List <EventWindow>(); collector.WindowClosed += (o, e) => windows.Add(e.Window); collector.OnStart(eventId, instanceId, startTime); collector.OnEnd(eventId, instanceId, endTime); Assert.Equal(1, windows.Count); Assert.Equal(startTime, windows[0].StartTime); Assert.Equal(1, windows[0].GetPendingCount(eventId)); Assert.Equal(0, windows[0].GetCompletedCount(eventId)); collector.CloseWindow(); Assert.Equal(2, windows.Count); Assert.Equal(new DateTime(2000, 1, 2, 3, 4, 7, 6), windows[1].StartTime); Assert.Equal(0, windows[1].GetPendingCount(eventId)); Assert.Equal(1, windows[1].GetCompletedCount(eventId)); }