public void CreateExchangeReturnsCorrectType() { var services = new ServiceCollection(); RabbitListenerDeclareAtrributeProcessor.ProcessDeclareAttributes(services, null, typeof(TestTarget)); var exchanges = services.BuildServiceProvider().GetServices <IExchange>(); Assert.Contains(exchanges, (ex) => ex.Type == ExchangeType.DIRECT); Assert.Contains(exchanges, (ex) => ex.Type == ExchangeType.TOPIC); Assert.Contains(exchanges, (ex) => ex.Type == ExchangeType.FANOUT); Assert.Contains(exchanges, (ex) => ex.Type == ExchangeType.HEADERS); Assert.Contains(exchanges, (ex) => ex.Type == ExchangeType.SYSTEM); }
public static IServiceCollection AddRabbitListeners(this IServiceCollection services, IConfiguration config, params Type[] listenerServices) { if (services == null) { throw new ArgumentNullException(nameof(services)); } foreach (var t in listenerServices) { var metadata = RabbitListenerMetadata.BuildMetadata(services, t); if (metadata != null) { services.AddSingleton(metadata); } RabbitListenerDeclareAtrributeProcessor.ProcessDeclareAttributes(services, config, t); } return(services); }