public void EventExclusionPlugin_ExceptionType(string settingKey, bool cancelled) {
            var client = CreateClient();
            if (settingKey != null)
                client.Configuration.Settings.Add(settingKey, Boolean.FalseString);
            
            var plugin = new EventExclusionPlugin();
            var context = new EventPluginContext(client, new Event());
            context.ContextData.SetException(GetException());
            plugin.Run(context);
            Assert.Equal(cancelled, context.Cancel);

            context.ContextData.SetException(GetNestedSimpleException());
            plugin.Run(context);
            Assert.Equal(cancelled, context.Cancel);
        }
        public void EventExclusionPlugin_SourceType(string type, string source, string settingKey, string settingValue, bool cancelled) {
            var client = CreateClient();
            if (settingKey != null)
                client.Configuration.Settings.Add(settingKey, settingValue);

            var ev = new Event { Type = type, Source = source };
            var context = new EventPluginContext(client, ev);
            var plugin = new EventExclusionPlugin();
            plugin.Run(context);
            Assert.Equal(cancelled, context.Cancel);
        }
        public void EventExclusionPlugin_LogLevelsWithInfoDefault(string source, string level, string settingKey, string settingValue, bool cancelled) {
            var client = CreateClient();
            client.Configuration.Settings.Add(SettingsDictionary.KnownKeys.LogLevelPrefix + "*", "Info");
            if (settingKey != null)
                client.Configuration.Settings.Add(settingKey, settingValue);

            var ev = new Event { Type = Event.KnownTypes.Log, Source = source };
            if (!String.IsNullOrEmpty(level))
                ev.SetProperty(Event.KnownDataKeys.Level, level);

            var context = new EventPluginContext(client, ev);
            var plugin = new EventExclusionPlugin();
            plugin.Run(context);
            Assert.Equal(cancelled, context.Cancel);
        }
        public void EventExclusionPlugin_EventExclusions() {
            var client = CreateClient();
            var plugin = new EventExclusionPlugin();

            // ignore any event that has a value of 2
            client.Configuration.AddEventExclusion(e => e.Value.GetValueOrDefault() != 2);
            
            var ev = new Event { Value = 1 };
            var context = new EventPluginContext(client, ev);
            plugin.Run(context);
            Assert.False(context.Cancel);
            
            ev.Value = 2;
            context = new EventPluginContext(client, ev);
            plugin.Run(context);
            Assert.True(context.Cancel);
        }