public void It_Should_Get_Page_Async_By_Search_Filter()
        {
            var loggingMemoryPersistence = new LoggingMemoryPersistence();

            loggingMemoryPersistence.Configure(Model.ConfigParams);

            var filter = new FilterParams
            {
                { "search", "test" }
            };

            CreateTestLogMessages(loggingMemoryPersistence);

            var result = loggingMemoryPersistence.GetPageByFilterAsync(Model.CorrelationId, filter, null).Result;

            Assert.Equal(loggingMemoryPersistence.Messages.Count, result.Length);
        }
        public void It_Should_Get_Page_Async_By_Errors_Only_Filter()
        {
            var loggingMemoryPersistence = new LoggingMemoryPersistence();

            loggingMemoryPersistence.Configure(Model.ConfigParams);

            var filter = new FilterParams
            {
                { "errors_only", true.ToString() }
            };

            CreateTestLogMessages(loggingMemoryPersistence);

            var result = loggingMemoryPersistence.GetPageByFilterAsync(Model.CorrelationId, filter, null).Result;

            // 3 error messages
            Assert.Equal(3, result.Length);
        }
        public void It_Should_Get_Page_Async_By_Max_Level_Filter()
        {
            var loggingMemoryPersistence = new LoggingMemoryPersistence();

            loggingMemoryPersistence.Configure(Model.ConfigParams);

            var filter = new FilterParams
            {
                { "max_level", ((int)LogLevel.Error).ToString() }
            };

            CreateTestLogMessages(loggingMemoryPersistence);

            var result = loggingMemoryPersistence.GetPageByFilterAsync(Model.CorrelationId, filter, null).Result;

            // 2 fatals and 1 error
            Assert.Equal(3, result.Length);
        }
        public void It_Should_Get_Page_Async_By_DateTime_Filter()
        {
            var loggingMemoryPersistence = new LoggingMemoryPersistence();

            loggingMemoryPersistence.Configure(Model.ConfigParams);

            var filter = new FilterParams
            {
                { "from_time", Model.FourDaysAgo.ToString() },
                { "to_time", Model.TwoDaysAgo.ToString() }
            };

            CreateTestLogMessages(loggingMemoryPersistence);

            var result = loggingMemoryPersistence.GetPageByFilterAsync(Model.CorrelationId, filter, null).Result;

            // Just 2 x 3 days ago messages
            Assert.Equal(2, result.Length);
        }
        public void It_Should_Get_Page_Async_By_Paging()
        {
            Model.MaxPageSize = 2;

            Model.ConfigParams = new ConfigParams
            {
                { "options.max_page_size", Model.MaxPageSize.ToString() }
            };

            var loggingMemoryPersistence = new LoggingMemoryPersistence();

            loggingMemoryPersistence.Configure(Model.ConfigParams);

            var paging = new PagingParams();

            CreateTestLogMessages(loggingMemoryPersistence);

            var result = loggingMemoryPersistence.GetPageByFilterAsync(Model.CorrelationId, null, paging).Result;

            // Take only 2
            Assert.Equal(Model.MaxPageSize, result.Length);
        }