示例#1
0
 public WhenDispatchingMessage(ITestOutputHelper outputHelper)
 {
     _outputHelper   = outputHelper;
     _loggerFactory  = TestLoggerFactory.Create(lb => lb.AddXUnit(outputHelper));
     _messageMonitor = new TrackingLoggingMonitor(_loggerFactory.CreateLogger <TrackingLoggingMonitor>());
     _middlewareMap  = new MiddlewareMap();
 }
示例#2
0
 public MessageDispatcher(
     IMessageSerializationRegister serializationRegister,
     IMessageMonitor messagingMonitor,
     MiddlewareMap middlewareMap,
     ILoggerFactory loggerFactory)
 {
     _serializationRegister = serializationRegister;
     _messagingMonitor      = messagingMonitor;
     _middlewareMap         = middlewareMap;
     _logger = loggerFactory.CreateLogger("JustSaying");
 }
示例#3
0
    public InterrogationResult Interrogate()
    {
        var publisherDescriptions =
            _publishersByType.ToDictionary(x => x.Key.Name, x => x.Value.Interrogate());

        return(new InterrogationResult(new
        {
            Config.Region,
            Middleware = MiddlewareMap.Interrogate(),
            PublishedMessageTypes = publisherDescriptions,
            SubscriptionGroups = SubscriptionGroups?.Interrogate()
        }));
    }
        protected override async Task WhenAsync()
        {
            MiddlewareMap.Add <SimpleMessage>(_queue.QueueName, Middleware);

            var cts = new CancellationTokenSource();

            var completion = SystemUnderTest.RunAsync(cts.Token);

            await Patiently.AssertThatAsync(OutputHelper,
                                            () => Handler.ReceivedMessages.Any());

            cts.Cancel();
            await Assert.ThrowsAnyAsync <OperationCanceledException>(() => completion);
        }
示例#5
0
        public InterrogationResult Interrogate()
        {
            var publisherDescriptions =
                _publishersByType.Select(publisher =>
                                         publisher.Key.Name).ToArray();

            return(new InterrogationResult(new
            {
                Config.Region,
                Middleware = MiddlewareMap.Interrogate(),
                PublishedMessageTypes = publisherDescriptions,
                SubscriptionGroups = SubscriptionGroups?.Interrogate()
            }));
        }
示例#6
0
        private void GivenInternal()
        {
            Queues  = new List <ISqsQueue>();
            Handler = new InspectableHandler <SimpleMessage>();

            var testResolver = new FakeServiceResolver(sc => sc
                                                       .AddLogging(l => l.AddXUnit(OutputHelper)));

            Middleware            = new HandlerMiddlewareBuilder(testResolver, testResolver).UseHandler(ctx => Handler).Build();
            Monitor               = new TrackingLoggingMonitor(LoggerFactory.CreateLogger <TrackingLoggingMonitor>());
            SerializationRegister = new FakeSerializationRegister();
            MiddlewareMap         = new MiddlewareMap();

            Given();
        }
        private void GivenInternal()
        {
            Queues  = new List <ISqsQueue>();
            Handler = new InspectableHandler <SimpleMessage>();
            Monitor = new TrackingLoggingMonitor(LoggerFactory.CreateLogger <TrackingLoggingMonitor>());
            SerializationRegister = new FakeSerializationRegister();
            MiddlewareMap         = new MiddlewareMap();
            CompletionMiddleware  = new AwaitableMiddleware(OutputHelper);

            var testResolver = new InMemoryServiceResolver(OutputHelper, Monitor,
                                                           sc => sc.AddSingleton <IHandlerAsync <SimpleMessage> >(Handler));

            Middleware = new HandlerMiddlewareBuilder(testResolver, testResolver)
                         .Use(CompletionMiddleware)
                         .UseDefaults <SimpleMessage>(typeof(InspectableHandler <SimpleMessage>))
                         .Build();

            Given();
        }
示例#8
0
        public JustSayingBus(
            IMessagingConfig config,
            IMessageSerializationRegister serializationRegister,
            ILoggerFactory loggerFactory)
        {
            _loggerFactory = loggerFactory;
            _startupTasks  = new List <Func <Task> >();
            _log           = _loggerFactory.CreateLogger("JustSaying");

            Config  = config;
            Monitor = new NullOpMessageMonitor();
            MessageContextAccessor = new MessageContextAccessor();
            SerializationRegister  = serializationRegister;
            MiddlewareMap          = new MiddlewareMap();

            _publishersByType          = new Dictionary <Type, IMessagePublisher>();
            _subscriptionGroupSettings =
                new ConcurrentDictionary <string, SubscriptionGroupConfigBuilder>(StringComparer.Ordinal);
            _defaultSubscriptionGroupSettings = new SubscriptionGroupSettingsBuilder();
        }
示例#9
0
    public JustSayingBus(
        IMessagingConfig config,
        IMessageSerializationRegister serializationRegister,
        ILoggerFactory loggerFactory,
        IMessageMonitor monitor)
    {
        _loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
        _monitor       = monitor ?? throw new ArgumentNullException(nameof(monitor));

        _startupTasks = new List <Func <CancellationToken, Task> >();
        _log          = _loggerFactory.CreateLogger("JustSaying");

        Config = config;
        SerializationRegister = serializationRegister;
        MiddlewareMap         = new MiddlewareMap();

        _publishersByType          = new Dictionary <Type, IMessagePublisher>();
        _subscriptionGroupSettings =
            new ConcurrentDictionary <string, SubscriptionGroupConfigBuilder>(StringComparer.Ordinal);
        _defaultSubscriptionGroupSettings = new SubscriptionGroupSettingsBuilder();
    }
示例#10
0
 public void AddMessageMiddleware <T>(string queueName, HandleMessageMiddleware middleware)
     where T : Message
 {
     SerializationRegister.AddSerializer <T>();
     MiddlewareMap.Add <T>(queueName, middleware);
 }