public void CanRetrieveLogFiltersByType()
        {
            ICollection<ILogFilter> filters = new List<ILogFilter>();

            ICollection<string> categories = new List<string>();
            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority", 100));
            filters.Add(new LogEnabledFilter("enable", true));

            LogFilterHelper helper = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            CategoryFilter categoryFilter = helper.GetFilter<CategoryFilter>();
            PriorityFilter priorityFilter = helper.GetFilter<PriorityFilter>();
            LogEnabledFilter enabledFilter = helper.GetFilter<LogEnabledFilter>();

            Assert.IsNotNull(categoryFilter);
            Assert.AreEqual(4, categoryFilter.CategoryFilters.Count);
            Assert.IsNotNull(priorityFilter);
            Assert.AreEqual(100, priorityFilter.MinimumPriority);
            Assert.IsNotNull(enabledFilter);
            Assert.IsTrue(enabledFilter.Enabled);
        }
Пример #2
0
        public void HandlerReturnFalseWhenOthersFilterFailIsFailure()
        {
            ICollection <ILogFilter> filters = new List <ILogFilter>();

            ICollection <string> categories = new List <string>();

            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new ExceptionThrowingLogFilter("exception1"));
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority", 100));

            filters.Add(new LogEnabledFilter("enable", true));

            MockLogFilterErrorHandler handler      = new MockLogFilterErrorHandler(false);
            LogFilterHelper           filterHelper = new LogFilterHelper(filters, handler);

            LogEntry log = CommonUtil.GetDefaultLogEntry();

            log.Priority = 1;

            Assert.IsFalse(filterHelper.CheckFilters(log));
            Assert.AreEqual(1, handler.failingFilters.Count);
        }
Пример #3
0
        public void CanRetrieveLogFiltersByType()
        {
            ICollection <ILogFilter> filters = new List <ILogFilter>();

            ICollection <string> categories = new List <string>();

            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority", 100));
            filters.Add(new LogEnabledFilter("enable", true));

            LogFilterHelper  helper         = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            CategoryFilter   categoryFilter = helper.GetFilter <CategoryFilter>();
            PriorityFilter   priorityFilter = helper.GetFilter <PriorityFilter>();
            LogEnabledFilter enabledFilter  = helper.GetFilter <LogEnabledFilter>();

            Assert.IsNotNull(categoryFilter);
            Assert.AreEqual(4, categoryFilter.CategoryFilters.Count);
            Assert.IsNotNull(priorityFilter);
            Assert.AreEqual(100, priorityFilter.MinimumPriority);
            Assert.IsNotNull(enabledFilter);
            Assert.IsTrue(enabledFilter.Enabled);
        }
Пример #4
0
        public void MultipleErrorForFiltersResultsInMatchingNotificationsIfHandlerReturnsTrue()
        {
            ICollection <ILogFilter> filters = new List <ILogFilter>();

            ICollection <string> categories = new List <string>();

            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new ExceptionThrowingLogFilter("exception1"));
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new ExceptionThrowingLogFilter("exception2"));
            filters.Add(new PriorityFilter("priority", 100));

            filters.Add(new LogEnabledFilter("enable", true));

            MockLogFilterErrorHandler handler      = new MockLogFilterErrorHandler(true);
            LogFilterHelper           filterHelper = new LogFilterHelper(filters, handler);

            LogEntry log = CommonUtil.GetDefaultLogEntry();

            filterHelper.CheckFilters(log);
            Assert.AreEqual(2, handler.failingFilters.Count);
        }
        internal void ReplaceStructureHolder(LogWriterStructureHolder newStructureHolder)
        {
            try
            {
                structureHolderLock.AcquireWriterLock(writerLockAcquireTimeout);
                try
                {
                    // Switch old and new structures.
                    LogWriterStructureHolder oldStructureHolder = structureHolder;
                    structureHolder = newStructureHolder;
                    filter          = new LogFilterHelper(structureHolder.Filters, this);

                    // Dispose has to be fully performed before allowing the new structure to be used.
                    oldStructureHolder.Dispose();
                }
                finally
                {
                    structureHolderLock.ReleaseWriterLock();
                }
            }
            catch (ApplicationException)
            {
                TryLogLockAcquisitionFailure(Resources.ExceptionFailedToAcquireLockToUpdate);
            }
        }
        internal LogWriter(LogWriterStructureHolder structureHolder, ILogWriterStructureUpdater structureUpdater)
        {
            this.structureHolder  = structureHolder;
            this.filter           = new LogFilterHelper(structureHolder.Filters, this);
            this.structureUpdater = structureUpdater;

            instrumentationProvider = new LoggingInstrumentationProvider();
        }
        public void NonExistentFilterReturnsNullByType()
        {
            ICollection<ILogFilter> filters = new List<ILogFilter>();
            filters.Add(new CategoryFilter("category", new List<string>(), CategoryFilterMode.AllowAllExceptDenied));

            LogFilterHelper helper = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            CategoryFilter categoryFilter = helper.GetFilter<CategoryFilter>();
            PriorityFilter priorityFilter = helper.GetFilter<PriorityFilter>();
            LogEnabledFilter enabledFilter = helper.GetFilter<LogEnabledFilter>();

            Assert.IsNotNull(categoryFilter);
            Assert.IsNull(priorityFilter);
            Assert.IsNull(enabledFilter);
        }
Пример #8
0
        public void NonExistentFilterReturnsNullByType()
        {
            ICollection <ILogFilter> filters = new List <ILogFilter>();

            filters.Add(new CategoryFilter("category", new List <string>(), CategoryFilterMode.AllowAllExceptDenied));

            LogFilterHelper  helper         = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            CategoryFilter   categoryFilter = helper.GetFilter <CategoryFilter>();
            PriorityFilter   priorityFilter = helper.GetFilter <PriorityFilter>();
            LogEnabledFilter enabledFilter  = helper.GetFilter <LogEnabledFilter>();

            Assert.IsNotNull(categoryFilter);
            Assert.IsNull(priorityFilter);
            Assert.IsNull(enabledFilter);
        }
Пример #9
0
        public void SetUp()
        {
            ICollection <string> categoryFilters = new string[] { "foo" };

            categoryFilter = new CategoryFilter("category", categoryFilters, CategoryFilterMode.DenyAllExceptAllowed);
            priorityFilter = new PriorityFilter("priority", 5);
            enabledFilter  = new LogEnabledFilter("enable", true);
            ICollection <ILogFilter> filters = new List <ILogFilter>(3);

            filters.Add(enabledFilter);
            filters.Add(categoryFilter);
            filters.Add(priorityFilter);
            handler      = new MockLogFilterErrorHandler(true);
            filterHelper = new LogFilterHelper(filters, handler);
            log          = CommonUtil.GetDefaultLogEntry();
        }
        public void SetUp()
        {
            ICollection<string> categoryFilters = new string[] { "foo" };
            categoryFilter = new CategoryFilter("category", categoryFilters, CategoryFilterMode.DenyAllExceptAllowed);
            priorityFilter = new PriorityFilter("priority", 5);
            enabledFilter = new LogEnabledFilter("enable", true);
            ICollection<ILogFilter> filters = new List<ILogFilter>(3);
            filters.Add(enabledFilter);
            filters.Add(categoryFilter);
            filters.Add(priorityFilter);

            handler = new MockLogFilterErrorHandler(true);

            filterHelper = new LogFilterHelper(filters, handler);

            log = CommonUtil.GetDefaultLogEntry();
        }
Пример #11
0
        public void CanRetrieveLogFiltersByName()
        {
            ICollection<ILogFilter> filters = new List<ILogFilter>();

            ICollection<string> categories = new List<string>();
            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority", 100));
            filters.Add(new LogEnabledFilter("enabled", true));

            LogFilterHelper helper = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            ILogFilter categoryFilter = helper.GetFilter("category");

            Assert.AreEqual(4, ((CategoryFilter)categoryFilter).CategoryFilters.Count);
        }
Пример #12
0
        public void CanRetrieveLogFiltersByName()
        {
            ICollection <ILogFilter> filters = new List <ILogFilter>();

            ICollection <string> categories = new List <string>();

            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority", 100));
            filters.Add(new LogEnabledFilter("enabled", true));

            LogFilterHelper helper         = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            ILogFilter      categoryFilter = helper.GetFilter("category");

            Assert.AreEqual(4, ((CategoryFilter)categoryFilter).CategoryFilters.Count);
        }
Пример #13
0
        public void ExistingNameForDifferentFilterTypeNameReturnNullByNameAndType()
        {
            ICollection <ILogFilter> filters = new List <ILogFilter>();

            ICollection <string> categories = new List <string>();

            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority", 100));
            filters.Add(new LogEnabledFilter("enabled", true));

            LogFilterHelper helper         = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            CategoryFilter  categoryFilter = helper.GetFilter <CategoryFilter>("priority");

            Assert.IsNull(categoryFilter);
        }
        public void MultipleFiltersOfSameTypeReturnsFirstByType()
        {
            ICollection<ILogFilter> filters = new List<ILogFilter>();

            ICollection<string> categories = new List<string>();
            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority1", 100));
            filters.Add(new PriorityFilter("priority2", 200));
            filters.Add(new LogEnabledFilter("enable", true));
            filters.Add(new PriorityFilter("priority2", 300));

            LogFilterHelper helper = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            PriorityFilter priorityFilter = helper.GetFilter<PriorityFilter>();

            Assert.IsNotNull(priorityFilter);
            Assert.AreEqual(100, priorityFilter.MinimumPriority);
        }
Пример #15
0
        public void MultipleFiltersOfSameTypeReturnsFirstByType()
        {
            ICollection <ILogFilter> filters = new List <ILogFilter>();

            ICollection <string> categories = new List <string>();

            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority1", 100));
            filters.Add(new PriorityFilter("priority2", 200));
            filters.Add(new LogEnabledFilter("enable", true));
            filters.Add(new PriorityFilter("priority2", 300));

            LogFilterHelper helper         = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            PriorityFilter  priorityFilter = helper.GetFilter <PriorityFilter>();

            Assert.IsNotNull(priorityFilter);
            Assert.AreEqual(100, priorityFilter.MinimumPriority);
        }
Пример #16
0
 internal void ReplaceStructureHolder(LogWriterStructureHolder newStructureHolder)
 {
     structureHolder = newStructureHolder;
     filter          = new LogFilterHelper(structureHolder.Filters, this);
 }
        public void MultipleErrorForFiltersResultsInMatchingNotificationsIfHandlerReturnsTrue()
        {
            ICollection<ILogFilter> filters = new List<ILogFilter>();

            ICollection<string> categories = new List<string>();
            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new ExceptionThrowingLogFilter("exception1"));
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new ExceptionThrowingLogFilter("exception2"));
            filters.Add(new PriorityFilter("priority", 100));

            filters.Add(new LogEnabledFilter("enable", true));

            MockLogFilterErrorHandler handler = new MockLogFilterErrorHandler(true);
            LogFilterHelper filterHelper = new LogFilterHelper(filters, handler);

            LogEntry log = CommonUtil.GetDefaultLogEntry();

            filterHelper.CheckFilters(log);
            Assert.AreEqual(2, handler.failingFilters.Count);
        }
        public void ExistingNameForDifferentFilterTypeNameReturnNullByNameAndType()
        {
            ICollection<ILogFilter> filters = new List<ILogFilter>();

            ICollection<string> categories = new List<string>();
            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority", 100));
            filters.Add(new LogEnabledFilter("enabled", true));

            LogFilterHelper helper = new LogFilterHelper(filters, new MockLogFilterErrorHandler(true));
            CategoryFilter categoryFilter = helper.GetFilter<CategoryFilter>("priority");

            Assert.IsNull(categoryFilter);
        }
        public void HandlerReturnFalseWhenOthersFilterFailIsFailure()
        {
            ICollection<ILogFilter> filters = new List<ILogFilter>();

            ICollection<string> categories = new List<string>();
            categories.Add("cat1");
            categories.Add("cat2");
            categories.Add("cat3");
            categories.Add("cat4");
            filters.Add(new ExceptionThrowingLogFilter("exception1"));
            filters.Add(new CategoryFilter("category", categories, CategoryFilterMode.AllowAllExceptDenied));
            filters.Add(new PriorityFilter("priority", 100));

            filters.Add(new LogEnabledFilter("enable", true));

            MockLogFilterErrorHandler handler = new MockLogFilterErrorHandler(false);
            LogFilterHelper filterHelper = new LogFilterHelper(filters, handler);

            LogEntry log = CommonUtil.GetDefaultLogEntry();
            log.Priority = 1;

            Assert.IsFalse(filterHelper.CheckFilters(log));
            Assert.AreEqual(1, handler.failingFilters.Count);
        }