Ejemplo n.º 1
0
        public void Publish_Should_publish_to_multiple_receivers()
        {
            var concreteMessageB = new ConcreteMessageB();

            UnitUnderTest.Publish(concreteMessageB);

            concreteMessageB.Data.Should().Contain(new[]
            {
                "HandlerA.Handle<ConcreteMessageB>",
                "HandlerB.Handle<ConcreteMessageB>"
            });
        }
Ejemplo n.º 2
0
        public async Task PublishAsync_Should_publish_to_multiple_receivers()
        {
            var concreteMessageB = new ConcreteMessageB();

            await UnitUnderTest.PublishAsync(concreteMessageB);

            concreteMessageB.Data.Should().Contain(new[]
            {
                "HandlerA.HandleAsync<ConcreteMessageB>",
                "HandlerB.HandleAsync<ConcreteMessageB>"
            });
        }
Ejemplo n.º 3
0
        public async Task PublishAsync_Should_invoke_OnBeforeRouting_and_OnAfterRouter_and_pass_state_When_specified()
        {
            var theState = Guid.NewGuid();
            var interceptedMatchingState = false;

            UnitUnderTest.OnBeforeRouting = envelope => envelope.SetState("TheState", theState);
            UnitUnderTest.OnAfterRouted   = envelope => interceptedMatchingState = Equals(envelope.GetState("TheState"), theState);

            var concreteMessageB = new ConcreteMessageB();
            await UnitUnderTest.PublishAsync(concreteMessageB);

            interceptedMatchingState.Should().BeTrue();
        }
        public async Task Should_route()
        {
            var concreteMessageA = new ConcreteMessageA();
            var concreteMessageB = new ConcreteMessageB();

            await UnitUnderTest.RouteAsync(concreteMessageA);

            await UnitUnderTest.RouteAsync(concreteMessageB);

            concreteMessageA.Data.Should().Contain(new[]
            {
                "HandlerA.HandleAsync<ConcreteMessageA>",
                "HandlerB.HandleAsync<ConcreteMessageA>"
            });
            concreteMessageB.Data.Should().Contain(new[]
            {
                "HandlerA.HandleAsync<ConcreteMessageB>",
                "HandlerB.HandleAsync<ConcreteMessageB>"
            });
        }
 public Task HandleAsync(ConcreteMessageB message)
 {
     return(Task.FromResult(0));
 }
            public Task HandleAsync(ConcreteMessageB message)
            {
                message.Data.Add($"{GetType().Name}.HandleAsync<{message.GetType().Name}>");

                return(Task.FromResult(0));
            }
Ejemplo n.º 7
0
 public void Handle(ConcreteMessageB message)
 {
     message.Data.Add($"{GetType().Name}.{nameof(Handle)}<{message.GetType().Name}>");
 }