示例#1
0
 public ErrorFilter WithFilter(IErrorFilter filter)
 {
     if (filter == null)
     {
         throw new ArgumentNullException("filter");
     }
     _filters.Add(filter);
     return(this);
 }
示例#2
0
 public FileErrorLogger(
     IErrorFilter errorFilter,
     IExceptionSerializer exceptionSerializer,
     ILogFilePathGenerator logFilePathGenerator,
     IFileWriter fileWriter)
 {
     _errorFilter          = errorFilter;
     _exceptionSerializer  = exceptionSerializer;
     _logFilePathGenerator = logFilePathGenerator;
     _fileWriter           = fileWriter;
 }
示例#3
0
 public NybusHostConfigurationFactory(IEnumerable <IErrorFilterProvider> errorFilterProviders, DiscardErrorFilter fallbackErrorFilter)
 {
     _fallbackErrorFilter        = fallbackErrorFilter ?? throw new ArgumentNullException(nameof(fallbackErrorFilter));
     _errorFilterProvidersByName = CreateDictionary(errorFilterProviders ?? throw new ArgumentNullException(nameof(errorFilterProviders)));
 }
示例#4
0
        public async Task ExecuteEventHandlerAsync_executes_error_filter_on_fail([Frozen] IServiceProvider serviceProvider, [Frozen] IBusEngine engine, [Frozen] INybusConfiguration configuration, NybusHost sut, IDispatcher dispatcher, EventMessage <FirstTestEvent> eventMessage, IServiceScopeFactory scopeFactory, IEventHandler <FirstTestEvent> handler, Exception error, IErrorFilter errorFilter)
        {
            configuration.EventErrorFilters = new[] { errorFilter };

            var handlerType = handler.GetType();

            var context = new NybusEventContext <FirstTestEvent>(eventMessage);

            Mock.Get(serviceProvider).Setup(p => p.GetService(typeof(IServiceScopeFactory))).Returns(scopeFactory);

            Mock.Get(serviceProvider).Setup(p => p.GetService(handlerType)).Returns(handler);

            Mock.Get(handler).Setup(p => p.HandleAsync(It.IsAny <IDispatcher>(), It.IsAny <IEventContext <FirstTestEvent> >())).Throws(error);

            await sut.ExecuteEventHandlerAsync(dispatcher, context, handlerType);

            Mock.Get(errorFilter).Verify(p => p.HandleErrorAsync(context, error, It.IsAny <EventErrorDelegate <FirstTestEvent> >()));
        }