public void ManualExpirationCausesRecordsToExpire() { var maxIncomplete = new TimeSpan(0, 0, 5); var maxComplete = new TimeSpan(0, 0, 1); int expiredIncomplete = 0; int expiredComplete = 0; var coll = new ExpiringCompositeEventCollection <int, TestCompositeEvent>(maxIncomplete, maxComplete, ec => { ++expiredIncomplete; }, ec => { ++expiredComplete; Assert.IsTrue(ec.IsComplete); }); var start = DateTime.Now; coll.ProcessEvent(1, CreateStartEvent(start)); coll.ProcessEvent(1, CreateEndEvent(start)); coll.ProcessEvent(2, CreateAnyEvent(start)); coll.Expire(start); Assert.AreEqual(0, expiredIncomplete); Assert.AreEqual(0, expiredComplete); coll.Expire(start + new TimeSpan(0, 0, 2)); Assert.AreEqual(0, expiredIncomplete); Assert.AreEqual(1, expiredComplete); coll.Expire(start + new TimeSpan(0, 0, 6)); Assert.AreEqual(1, expiredIncomplete); Assert.AreEqual(1, expiredComplete); }
public void ExpiredRecordsAreNotFoundByTryGetValue() { var maxIncomplete = new TimeSpan(0, 0, 5); var maxComplete = new TimeSpan(0, 0, 1); int expiredRecords = 0; var coll = new ExpiringCompositeEventCollection <int, TestCompositeEvent>(maxIncomplete, maxComplete, ec => { ++expiredRecords; }, ec => { ++expiredRecords; Assert.IsTrue(ec.IsComplete); }); var start = DateTime.Now; coll.ProcessEvent(1, CreateStartEvent(start)); coll.ProcessEvent(1, CreateEndEvent(start)); coll.Expire(start + maxComplete + new TimeSpan(0, 0, 1)); Assert.AreEqual(1, expiredRecords); TestCompositeEvent val; Assert.IsFalse(coll.TryGetValue(1, out val)); coll.ProcessEvent(2, CreateAnyEvent(start)); coll.Expire(start + maxIncomplete + new TimeSpan(0, 0, 1)); Assert.AreEqual(2, expiredRecords); Assert.IsFalse(coll.TryGetValue(2, out val)); }
public void NegativeExpirationValuesAreTreatedAsPositive() { var maxIncomplete = new TimeSpan(0, 0, -5); Assert.IsTrue(0 > maxIncomplete.TotalSeconds); var maxComplete = new TimeSpan(0, 0, -1); Assert.IsTrue(0 > maxComplete.TotalSeconds); int expiredIncomplete = 0; int expiredComplete = 0; var coll = new ExpiringCompositeEventCollection <int, TestCompositeEvent>(maxIncomplete, maxComplete, ec => { ++expiredIncomplete; }, ec => { ++expiredComplete; Assert.IsTrue(ec.IsComplete); }); var start = DateTime.Now; coll.ProcessEvent(1, CreateStartEvent(start)); coll.ProcessEvent(1, CreateEndEvent(start)); coll.ProcessEvent(2, CreateAnyEvent(start)); coll.Expire(start); Assert.AreEqual(0, expiredIncomplete); Assert.AreEqual(0, expiredComplete); coll.Expire(start + new TimeSpan(0, 0, 2)); Assert.AreEqual(0, expiredIncomplete); Assert.AreEqual(1, expiredComplete); coll.Expire(start + new TimeSpan(0, 0, 6)); Assert.AreEqual(1, expiredIncomplete); Assert.AreEqual(1, expiredComplete); }
public void NegativeExpirationValuesAreTreatedAsPositive() { var maxIncomplete = new TimeSpan(0, 0, -5); Assert.IsTrue(0 > maxIncomplete.TotalSeconds); var maxComplete = new TimeSpan(0, 0, -1); Assert.IsTrue(0 > maxComplete.TotalSeconds); int expiredIncomplete = 0; int expiredComplete = 0; var coll = new ExpiringCompositeEventCollection<int, TestCompositeEvent>(maxIncomplete, maxComplete, ec => { ++expiredIncomplete; }, ec => { ++expiredComplete; Assert.IsTrue(ec.IsComplete); }); var start = DateTime.Now; coll.ProcessEvent(1, CreateStartEvent(start)); coll.ProcessEvent(1, CreateEndEvent(start)); coll.ProcessEvent(2, CreateAnyEvent(start)); coll.Expire(start); Assert.AreEqual(0, expiredIncomplete); Assert.AreEqual(0, expiredComplete); coll.Expire(start + new TimeSpan(0, 0, 2)); Assert.AreEqual(0, expiredIncomplete); Assert.AreEqual(1, expiredComplete); coll.Expire(start + new TimeSpan(0, 0, 6)); Assert.AreEqual(1, expiredIncomplete); Assert.AreEqual(1, expiredComplete); }
public void ManualExpirationCausesRecordsToExpire() { var maxIncomplete = new TimeSpan(0, 0, 5); var maxComplete = new TimeSpan(0, 0, 1); int expiredIncomplete = 0; int expiredComplete = 0; var coll = new ExpiringCompositeEventCollection<int, TestCompositeEvent>(maxIncomplete, maxComplete, ec => { ++expiredIncomplete; }, ec => { ++expiredComplete; Assert.IsTrue(ec.IsComplete); }); var start = DateTime.Now; coll.ProcessEvent(1, CreateStartEvent(start)); coll.ProcessEvent(1, CreateEndEvent(start)); coll.ProcessEvent(2, CreateAnyEvent(start)); coll.Expire(start); Assert.AreEqual(0, expiredIncomplete); Assert.AreEqual(0, expiredComplete); coll.Expire(start + new TimeSpan(0, 0, 2)); Assert.AreEqual(0, expiredIncomplete); Assert.AreEqual(1, expiredComplete); coll.Expire(start + new TimeSpan(0, 0, 6)); Assert.AreEqual(1, expiredIncomplete); Assert.AreEqual(1, expiredComplete); }
public void ExpiredRecordsAreNotFoundByTryGetValue() { var maxIncomplete = new TimeSpan(0, 0, 5); var maxComplete = new TimeSpan(0, 0, 1); int expiredRecords = 0; var coll = new ExpiringCompositeEventCollection<int, TestCompositeEvent>(maxIncomplete, maxComplete, ec => { ++expiredRecords; }, ec => { ++expiredRecords; Assert.IsTrue(ec.IsComplete); }); var start = DateTime.Now; coll.ProcessEvent(1, CreateStartEvent(start)); coll.ProcessEvent(1, CreateEndEvent(start)); coll.Expire(start + maxComplete + new TimeSpan(0, 0, 1)); Assert.AreEqual(1, expiredRecords); TestCompositeEvent val; Assert.IsFalse(coll.TryGetValue(1, out val)); coll.ProcessEvent(2, CreateAnyEvent(start)); coll.Expire(start + maxIncomplete + new TimeSpan(0, 0, 1)); Assert.AreEqual(2, expiredRecords); Assert.IsFalse(coll.TryGetValue(2, out val)); }