public void PurgesTraceMessages() { using(var session = EmbeddedRavenProvider.DocumentStore.OpenSession()) { Mock<IEventReporter> eventReporter = new Mock<IEventReporter>(); var configuration = new LogPurgeJobConfiguration { TraceAgeMinutes = 1000 }; DateTime now = DateTime.UtcNow; DateTime cutoff = now.AddMinutes(0-configuration.TraceAgeMinutes.Value); for(int i = 0; i < 10; i++) { var oldMessage = new ServiceMessage { Level = EnumServiceMessageLevel.Trace, Message = Guid.NewGuid().ToString(), MessageDateTimeUtc = cutoff.AddMinutes(0-10) }; session.Store(oldMessage); var newMessage = new ServiceMessage { Level = EnumServiceMessageLevel.Trace, Message = Guid.NewGuid().ToString(), MessageDateTimeUtc = cutoff.AddMinutes(0+10) }; session.Store(newMessage); } session.SaveChanges(); var beforeMessages= session.Query<ServiceMessage>().OrderBy(i=>i.MessageDateTimeUtc).ToList(); int originalOldMesssageCount = session.Query<ServiceMessage>().Where(i=>i.MessageDateTimeUtc < cutoff).Count(); int originalNewMessageCount = session.Query<ServiceMessage>().Where(i=>i.MessageDateTimeUtc > cutoff).Count(); configuration.UtcNow = now; var logPurger = new LogPurger(eventReporter.Object, session); var sut = new LogPurgeJob(eventReporter.Object, logPurger); sut.Run(configuration); var afterMesages = session.Query<ServiceMessage>().OrderBy(i => i.MessageDateTimeUtc).ToList(); int newOldMesssageCount = session.Query<ServiceMessage>().Customize(i=>i.WaitForNonStaleResultsAsOfNow()).Where(i => i.MessageDateTimeUtc < cutoff).Count(); int newNewMessageCount = session.Query<ServiceMessage>().Customize(i=>i.WaitForNonStaleResultsAsOfNow()).Where(i=>i.MessageDateTimeUtc > cutoff).Count(); Assert.AreEqual(0, newOldMesssageCount); Assert.GreaterOrEqual(newNewMessageCount, originalNewMessageCount); } }
public void PurgesTraceMessages() { using (var session = EmbeddedRavenProvider.DocumentStore.OpenSession()) { Mock <IEventReporter> eventReporter = new Mock <IEventReporter>(); var configuration = new LogPurgeJobConfiguration { TraceAgeMinutes = 1000 }; DateTime now = DateTime.UtcNow; DateTime cutoff = now.AddMinutes(0 - configuration.TraceAgeMinutes.Value); for (int i = 0; i < 10; i++) { var oldMessage = new ServiceMessage { Level = EnumServiceMessageLevel.Trace, Message = Guid.NewGuid().ToString(), MessageDateTimeUtc = cutoff.AddMinutes(0 - 10) }; session.Store(oldMessage); var newMessage = new ServiceMessage { Level = EnumServiceMessageLevel.Trace, Message = Guid.NewGuid().ToString(), MessageDateTimeUtc = cutoff.AddMinutes(0 + 10) }; session.Store(newMessage); } session.SaveChanges(); var beforeMessages = session.Query <ServiceMessage>().OrderBy(i => i.MessageDateTimeUtc).ToList(); int originalOldMesssageCount = session.Query <ServiceMessage>().Where(i => i.MessageDateTimeUtc < cutoff).Count(); int originalNewMessageCount = session.Query <ServiceMessage>().Where(i => i.MessageDateTimeUtc > cutoff).Count(); configuration.UtcNow = now; var logPurger = new LogPurger(eventReporter.Object, session); var sut = new LogPurgeJob(eventReporter.Object, logPurger); sut.Run(configuration); var afterMesages = session.Query <ServiceMessage>().OrderBy(i => i.MessageDateTimeUtc).ToList(); int newOldMesssageCount = session.Query <ServiceMessage>().Customize(i => i.WaitForNonStaleResultsAsOfNow()).Where(i => i.MessageDateTimeUtc < cutoff).Count(); int newNewMessageCount = session.Query <ServiceMessage>().Customize(i => i.WaitForNonStaleResultsAsOfNow()).Where(i => i.MessageDateTimeUtc > cutoff).Count(); Assert.AreEqual(0, newOldMesssageCount); Assert.GreaterOrEqual(newNewMessageCount, originalNewMessageCount); } }