public void Setup() { _serviceBusNamespace = A.Fake <IServiceBusNamespace>(); _queueClient = A.Fake <IQueueClient>(); var serviceBusNamespaceFactory = A.Fake <IServiceBusNamespaceFactory>(); var queueClientFactory = A.Fake <IQueueClientFactory>(); A.CallTo(() => serviceBusNamespaceFactory.Create()) .Returns(_serviceBusNamespace); A.CallTo(() => queueClientFactory.Create(A <string> .Ignored)) .Returns(_queueClient); _commandQueueClient = new ServiceBusCommandQueueClient( new Dictionary <string, Type>() { { typeof(TestingCommand).Name, typeof(TestingCommand) } }, serviceBusNamespaceFactory, queueClientFactory); A.CallTo(() => _queueClient.RegisterMessageHandler( A <Func <Message, CancellationToken, Task> > .Ignored, A <MessageHandlerOptions> .Ignored)) .Invokes((Func <Message, CancellationToken, Task> callback, MessageHandlerOptions options) => _messageHandler = callback); }
static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); IConfigurationRoot configuration = builder.Build(); var serviceBusConfiguration = new ServiceBusConfiguration(); var section = configuration.GetSection("ServiceBus"); section.Bind(serviceBusConfiguration); var orderQueueClient = new ServiceBusCommandQueueClient( new Dictionary <string, Type>(), new ServiceBusNamespaceFactory(serviceBusConfiguration), new QueueClientFactory(serviceBusConfiguration)); var rfqQueueClient = new ServiceBusCommandQueueClient( new Dictionary <string, Type>(), new ServiceBusNamespaceFactory(serviceBusConfiguration), new QueueClientFactory(serviceBusConfiguration)); Dictionary <string, ICommandQueueClient> ccqs = new Dictionary <string, ICommandQueueClient> { { "order-service", orderQueueClient }, { "rfq-service", rfqQueueClient } }; MainAsync(ccqs).GetAwaiter().GetResult(); }
public async Task Setup() { _configuration = new ServiceBusTestConfiguration(); _serviceBusNamespace = await GetNamespace(_configuration); _commandQueueClient = new ServiceBusCommandQueueClient( new Dictionary <string, Type>(), new ServiceBusNamespaceFactory(_configuration), new QueueClientFactory(_configuration)); }
private void ConfigureServiceBus(IServiceCollection services) { var serviceBusConfiguration = new ServiceBusConfiguration(); Configuration.GetSection("ServiceBus").Bind(serviceBusConfiguration); services.AddSingleton <IServiceBusConfiguration>(serviceBusConfiguration); services.AddSingleton <IServiceBusManagementConfiguration>(serviceBusConfiguration); var commandQueueClient = new ServiceBusCommandQueueClient( null, new ServiceBusNamespaceFactory(serviceBusConfiguration), new QueueClientFactory(serviceBusConfiguration)); services.AddSingleton <ICommandQueueClient>(commandQueueClient); }
public void Setup() { _serviceBusNamespace = A.Fake <IServiceBusNamespace>(); _queueClient = A.Fake <IQueueClient>(); var serviceBusNamespaceFactory = A.Fake <IServiceBusNamespaceFactory>(); var queueClientFactory = A.Fake <IQueueClientFactory>(); A.CallTo(() => serviceBusNamespaceFactory.Create()) .Returns(_serviceBusNamespace); A.CallTo(() => queueClientFactory.Create(A <string> .Ignored)) .Returns(_queueClient); _commandQueueClient = new ServiceBusCommandQueueClient( new Dictionary <string, Type>(), serviceBusNamespaceFactory, queueClientFactory); }
public void ConfigureServices(IServiceCollection services) { // Configuration: ServiceBus var serviceBusConfiguration = new ServiceBusConfiguration(); Configuration.GetSection("ServiceBus").Bind(serviceBusConfiguration); services.AddSingleton <IServiceBusConfiguration>(serviceBusConfiguration); services.AddSingleton <IServiceBusManagementConfiguration>(serviceBusConfiguration); // Configuration: EventStore var eventStoreConfiguration = new EventStoreConfiguration(); Configuration.GetSection("EventStore").Bind(eventStoreConfiguration); services.AddSingleton <IEventStoreConfiguration>(eventStoreConfiguration); // ServiceBus registration var commandQueueClient = new ServiceBusCommandQueueClient( CommandTypes, new ServiceBusNamespaceFactory(serviceBusConfiguration), new QueueClientFactory(serviceBusConfiguration)); services.AddSingleton <ICommandQueueClient>(commandQueueClient); // EventStore registrations var eventStoreClient = new EventStoreClient( EventTypes, new EventStoreConnectionFactory(eventStoreConfiguration)); services.AddSingleton <IEventStreamingClient>(eventStoreClient); services.AddSingleton <IEventPersistenceClient>(eventStoreClient); // Register the AggregateWriter as the implementation of both IAggregateWriter and IAggregateReader services.AddSingleton <OrderAggregateWriter>(); services.AddSingleton <IAggregateWriter <Domain.Aggregate.Order> >(i => i.GetService <OrderAggregateWriter>()); services.AddSingleton <IAggregateReader <Domain.Aggregate.Order> >(i => i.GetService <OrderAggregateWriter>()); // Retrieve and register all implementations of ISubscriber<> GetImplementations(typeof(ISubscriber <ICommand, IEvent>)) .ForEach(type => { services.Add(new ServiceDescriptor(typeof(ISubscriber <ICommand, IEvent>), type, ServiceLifetime.Transient)); }); services.AddSingleton <StartupHostedServiceHealthCheck>(); services.AddSingleton <IHostedService, OrderSubscriber>(); // ASP.NET addons services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials()); }); services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "Order Management Service API", Version = "v1" }); }); services.AddHealthChecks() .AddCheck("self", () => HealthCheckResult.Healthy()) .AddCheck <StartupHostedServiceHealthCheck>("OrderSubscriber", tags: new [] { "dependency" }); }