public void GetServiceCollection_WhenCalledWithKafka_ReturnsKafkaServices() { //Arrange var providers = new Providers(); providers.EventPublisher = "Kafka"; var selector = new EventPublisherSelector(configuration, providers); //Act var serviceCollection = selector.GetServiceCollection(); //Assert serviceCollection.Should().NotBeNull(); serviceCollection.Should().BeOfType <KafkaEventServices>(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); options.JsonSerializerOptions.IgnoreNullValues = true; });; var eventPublisherSelector = new EventPublisherSelector(Configuration, Providers); var eventServices = eventPublisherSelector.GetServiceCollection(); eventServices.Configure(services); var writeModelPersistenceSelector = new WriteModelPersistenceSelector(Configuration, Providers); var writeModelServices = writeModelPersistenceSelector.GetServiceCollection(); writeModelServices.Configure(services); var readModelPersistenceSelector = new ReadModelPersistenceSelector(Configuration, Providers); var readModelServices = readModelPersistenceSelector.GetServiceCollection(); readModelServices.Configure(services); services.AddTransient( typeof(Budget.Users.Domain.WriteModel.Factories.WriteModelUserFactory), typeof(Budget.Users.Domain.WriteModel.Factories.WriteModelUserFactory) ); services.AddTransient( typeof(Budget.Users.Domain.WriteModel.Services.ICryptService), typeof(Budget.Users.Domain.WriteModel.Services.Sha512CryptService) ); Assembly applicationLayerAssembly = typeof(Budget.Users.Application.Commands.Subscribe.SubscribeHandler).GetTypeInfo().Assembly; services.AddMediatR(applicationLayerAssembly); }