public void CanRegisterAndFind() { var sl = new SessionLog(); var time = DateTime.Now; var m1 = sl.Register(new LogMessage { Code = "a", Level = LogLevel.Error, Time = time.AddSeconds(10), RequireAccept = true }); var m2 = sl.Register(new LogMessage { Code = "a", Level = LogLevel.Warn, Time = time.AddSeconds(20) }); var m3 = sl.Register(new LogMessage { Code = "a", Level = LogLevel.Error, Time = time.AddSeconds(30) }); var m4 = sl.Register(new LogMessage { Code = "a", Level = LogLevel.Warn, Time = time.AddSeconds(40), RequireAccept = true, Accepted = true }); var m5 = sl.Register(new LogMessage { Code = "a", Level = LogLevel.Warn, Time = time.AddSeconds(50), RequireAccept = true, Active = false }); Assert.AreEqual(4, sl.Get().Count()); Assert.AreEqual(4, sl.Get(new SessionLogQuery { StartLevel = LogLevel.Warn }).Count()); Assert.AreEqual(2, sl.Get(new SessionLogQuery { StartLevel = LogLevel.Error }).Count()); Assert.AreEqual(0, sl.Get(new SessionLogQuery { StartLevel = LogLevel.Fatal }).Count()); Assert.AreEqual(3, sl.Get(new SessionLogQuery { StartTimestamp = m1.Timestamp }).Count()); Assert.AreEqual(2, sl.Get(new SessionLogQuery { StartTimestamp = m2.Timestamp }).Count()); Assert.AreEqual(1, sl.Get(new SessionLogQuery { StartTimestamp = m3.Timestamp }).Count()); Assert.AreEqual(0, sl.Get(new SessionLogQuery { StartTimestamp = m4.Timestamp }).Count()); Assert.AreEqual(2, sl.Get(new SessionLogQuery { OnlyRequests = true }).Count()); Assert.AreEqual(1, sl.Get(new SessionLogQuery { OnlyAccepted = true }).Count()); Assert.AreEqual(1, sl.Get(new SessionLogQuery { OnlyNotAccepted = true }).Count()); }