/// <inheritdoc /> public void Initialize(ExtensionConfigContext context) { if (context == null) { throw new ArgumentNullException("context"); } context .AddConverter <Message, string>(new MessageToStringConverter()) .AddConverter <Message, byte[]>(new MessageToByteArrayConverter()) .AddOpenConverter <Message, OpenType.Poco>(typeof(MessageToPocoConverter <>)); // register our trigger binding provider ServiceBusTriggerAttributeBindingProvider triggerBindingProvider = new ServiceBusTriggerAttributeBindingProvider(_nameResolver, _options, _messagingProvider, _configuration, _loggerFactory, _converterManager); context.AddBindingRule <ServiceBusTriggerAttribute>() .BindToTrigger(triggerBindingProvider); // register our binding provider ServiceBusAttributeBindingProvider bindingProvider = new ServiceBusAttributeBindingProvider(_nameResolver, _options, _configuration, _messagingProvider); context.AddBindingRule <ServiceBusAttribute>().Bind(bindingProvider); }
public async Task Initialize_PerformsExpectedRegistrations() { JobHostConfiguration config = new JobHostConfiguration(); config.AddService <INameResolver>(new RandomNameResolver()); TestLoggerProvider loggerProvider = new TestLoggerProvider(); ILoggerFactory loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(loggerProvider); config.LoggerFactory = loggerFactory; ServiceBusConfiguration serviceBusConfig = new ServiceBusConfiguration(); ServiceBusExtensionConfig serviceBusExtensionConfig = new ServiceBusExtensionConfig(serviceBusConfig); IExtensionRegistry extensions = config.GetService <IExtensionRegistry>(); ITriggerBindingProvider[] triggerBindingProviders = extensions.GetExtensions <ITriggerBindingProvider>().ToArray(); Assert.Empty(triggerBindingProviders); IBindingProvider[] bindingProviders = extensions.GetExtensions <IBindingProvider>().ToArray(); Assert.Empty(bindingProviders); ExtensionConfigContext context = new ExtensionConfigContext { Config = config, }; serviceBusExtensionConfig.Initialize(context); // ensure the ServiceBusTriggerAttributeBindingProvider was registered triggerBindingProviders = extensions.GetExtensions <ITriggerBindingProvider>().ToArray(); Assert.Single(triggerBindingProviders); ServiceBusTriggerAttributeBindingProvider triggerBindingProvider = (ServiceBusTriggerAttributeBindingProvider)triggerBindingProviders[0]; Assert.NotNull(triggerBindingProvider); // ensure the ServiceBusAttributeBindingProvider was registered bindingProviders = extensions.GetExtensions <IBindingProvider>().ToArray(); Assert.Single(bindingProviders); ServiceBusAttributeBindingProvider bindingProvider = (ServiceBusAttributeBindingProvider)bindingProviders[0]; Assert.NotNull(bindingProvider); // ensure the default MessageOptions exception handler is wired up var messageOptions = serviceBusConfig.MessageOptions; var ex = new ServiceBusException(false); var args = new ExceptionReceivedEventArgs(ex, "TestAction", "TestEndpoint", "TestEntityPath", "TestClientId"); Assert.NotNull(serviceBusConfig.ExceptionHandler); // invoke the handler and make sure it logs await serviceBusConfig.MessageOptions.ExceptionReceivedHandler(args); string expectedMessage = "MessageReceiver error (Action=TestAction, ClientId=TestClientId, EntityPath=TestEntityPath, Endpoint=TestEndpoint)"; var logMessage = loggerProvider.GetAllLogMessages().Single(); Assert.Equal(LogLevel.Error, logMessage.Level); Assert.Equal(expectedMessage, logMessage.FormattedMessage); Assert.Same(ex, logMessage.Exception); }
/// <inheritdoc /> public void Initialize(ExtensionConfigContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } // Set the default exception handler for background exceptions // coming from MessageReceivers. Options.ExceptionHandler = (e) => { LogExceptionReceivedEvent(e, _loggerFactory); return(Task.CompletedTask); }; context .AddConverter(new MessageToStringConverter()) .AddConverter(new MessageToByteArrayConverter()) .AddOpenConverter <ServiceBusReceivedMessage, OpenType.Poco>(typeof(MessageToPocoConverter <>), _options.JsonSerializerSettings); // register our trigger binding provider ServiceBusTriggerAttributeBindingProvider triggerBindingProvider = new ServiceBusTriggerAttributeBindingProvider(_nameResolver, _options, _messagingProvider, _loggerFactory, _converterManager, _clientFactory); context.AddBindingRule <ServiceBusTriggerAttribute>() .BindToTrigger(triggerBindingProvider); // register our binding provider ServiceBusAttributeBindingProvider bindingProvider = new ServiceBusAttributeBindingProvider(_nameResolver, _messagingProvider, _clientFactory); context.AddBindingRule <ServiceBusAttribute>().Bind(bindingProvider); }
/// <inheritdoc /> public void Initialize(ExtensionConfigContext context) { if (context == null) { throw new ArgumentNullException("context"); } // Set the default exception handler for background exceptions // coming from MessageReceivers. Config.ExceptionHandler = (e) => { LogExceptionReceivedEvent(e, context.Config.LoggerFactory); }; // get the services we need to construct our binding providers INameResolver nameResolver = context.Config.GetService <INameResolver>(); IExtensionRegistry extensions = context.Config.GetService <IExtensionRegistry>(); // register our trigger binding provider ServiceBusTriggerAttributeBindingProvider triggerBindingProvider = new ServiceBusTriggerAttributeBindingProvider(nameResolver, _serviceBusConfig); extensions.RegisterExtension <ITriggerBindingProvider>(triggerBindingProvider); // register our binding provider ServiceBusAttributeBindingProvider bindingProvider = new ServiceBusAttributeBindingProvider(nameResolver, _serviceBusConfig); extensions.RegisterExtension <IBindingProvider>(bindingProvider); }
public ServiceBusAttributeBindingProviderTests() { _configuration = new ConfigurationBuilder() .AddEnvironmentVariables() .Build(); Mock <INameResolver> mockResolver = new Mock <INameResolver>(MockBehavior.Strict); ServiceBusOptions config = new ServiceBusOptions(); _provider = new ServiceBusAttributeBindingProvider(mockResolver.Object, config, _configuration, new MessagingProvider(new OptionsWrapper <ServiceBusOptions>(config))); }
public ServiceBusAttributeBindingProviderTests() { Mock <INameResolver> mockResolver = new Mock <INameResolver>(MockBehavior.Strict); ServiceBusConfiguration config = new ServiceBusConfiguration(); _mockMessagingProvider = new Mock <MessagingProvider>(MockBehavior.Strict, config); config.MessagingProvider = _mockMessagingProvider.Object; _provider = new ServiceBusAttributeBindingProvider(mockResolver.Object, config); }
/// <inheritdoc /> public void Initialize(ExtensionConfigContext context) { if (context == null) { throw new ArgumentNullException("context"); } // get the services we need to construct our binding providers INameResolver nameResolver = context.Config.GetService <INameResolver>(); IExtensionRegistry extensions = context.Config.GetService <IExtensionRegistry>(); // register our trigger binding provider ServiceBusTriggerAttributeBindingProvider triggerBindingProvider = new ServiceBusTriggerAttributeBindingProvider(nameResolver, _serviceBusConfig); extensions.RegisterExtension <ITriggerBindingProvider>(triggerBindingProvider); // register our binding provider ServiceBusAttributeBindingProvider bindingProvider = new ServiceBusAttributeBindingProvider(nameResolver, _serviceBusConfig); extensions.RegisterExtension <IBindingProvider>(bindingProvider); }
public void Initialize_PerformsExpectedRegistrations() { JobHostConfiguration config = new JobHostConfiguration(); config.AddService <INameResolver>(new RandomNameResolver()); ServiceBusConfiguration serviceBusConfig = new ServiceBusConfiguration(); ServiceBusExtensionConfig serviceBusExtensionConfig = new ServiceBusExtensionConfig(serviceBusConfig); IExtensionRegistry extensions = config.GetService <IExtensionRegistry>(); ITriggerBindingProvider[] triggerBindingProviders = extensions.GetExtensions <ITriggerBindingProvider>().ToArray(); Assert.Equal(0, triggerBindingProviders.Length); IBindingProvider[] bindingProviders = extensions.GetExtensions <IBindingProvider>().ToArray(); Assert.Equal(0, bindingProviders.Length); ExtensionConfigContext context = new ExtensionConfigContext { Config = config, Trace = new TestTraceWriter(TraceLevel.Verbose) }; serviceBusExtensionConfig.Initialize(context); // ensure the ServiceBusTriggerAttributeBindingProvider was registered triggerBindingProviders = extensions.GetExtensions <ITriggerBindingProvider>().ToArray(); Assert.Equal(1, triggerBindingProviders.Length); ServiceBusTriggerAttributeBindingProvider triggerBindingProvider = (ServiceBusTriggerAttributeBindingProvider)triggerBindingProviders[0]; Assert.NotNull(triggerBindingProvider); // ensure the ServiceBusAttributeBindingProvider was registered bindingProviders = extensions.GetExtensions <IBindingProvider>().ToArray(); Assert.Equal(1, bindingProviders.Length); ServiceBusAttributeBindingProvider bindingProvider = (ServiceBusAttributeBindingProvider)bindingProviders[0]; Assert.NotNull(bindingProvider); }
/// <inheritdoc /> public void Initialize(ExtensionConfigContext context) { if (context == null) { throw new ArgumentNullException("context"); } // Set the default exception handler for background exceptions // coming from MessageReceivers. Options.ExceptionHandler = (e) => { LogExceptionReceivedEvent(e, _loggerFactory); }; // register our trigger binding provider ServiceBusTriggerAttributeBindingProvider triggerBindingProvider = new ServiceBusTriggerAttributeBindingProvider(_nameResolver, _options, _messagingProvider, _configuration); context.AddBindingRule <ServiceBusTriggerAttribute>().BindToTrigger(triggerBindingProvider); // register our binding provider ServiceBusAttributeBindingProvider bindingProvider = new ServiceBusAttributeBindingProvider(_nameResolver, _options, _configuration, _messagingProvider); context.AddBindingRule <ServiceBusAttribute>().Bind(bindingProvider); }