public async Task Should_properly_use_the_original_specification_plus_more()
        {
            var specification = new SendPipeSpecification();

            specification.GetMessageSpecification <MyMessage>()
            .UseExecute(context => Console.WriteLine("Hello, World."));

            specification.GetMessageSpecification <IMyMessage>()
            .UseExecute(context =>
            {
            });

            var endpointSpecification = new SendPipeSpecification();

            endpointSpecification.ConnectSendPipeSpecificationObserver(new ParentSendPipeSpecificationObserver(specification));

            endpointSpecification.GetMessageSpecification <IMyMessage>()
            .UseConcurrencyLimit(1);

            endpointSpecification.GetMessageSpecification <ITraceableMessage>()
            .UsePartitioner(8, x => NewId.NextGuid());

            IPipe <SendContext <MyMessage> > pipe = endpointSpecification.GetMessageSpecification <MyMessage>().BuildMessagePipe();

            var sendContext = new MessageSendContext <MyMessage>(new MyMessage());

            await pipe.Send(sendContext).ConfigureAwait(false);
        }
        public async Task Should_properly_use_the_original_specification_plus_topology_on_type()
        {
            var sendTopology = new SendTopology();

            sendTopology.GetMessageTopology <IMyMessage>()
            .Add(new TestMessageSendTopology <IMyMessage>());

            var specification = new SendPipeSpecification();

            specification.Connect(new TopologySendPipeSpecificationObserver(sendTopology));

            specification.GetMessageSpecification <MyMessage>()
            .UseConsoleLog(context => Task.FromResult("Hello, World."));

            specification.GetMessageSpecification <IMyMessage>()
            .UseExecute(context =>
            {
            });

            var endpointSpecification = new SendPipeSpecification();

            endpointSpecification.Connect(new ParentSendPipeSpecificationObserver(specification));

            endpointSpecification.GetMessageSpecification <IMyMessage>()
            .UseConcurrencyLimit(1);

            endpointSpecification.GetMessageSpecification <ITraceableMessage>()
            .UsePartitioner(8, x => NewId.NextGuid());

            IPipe <SendContext <MyMessage> > pipe = endpointSpecification.GetMessageSpecification <MyMessage>().BuildMessagePipe();

            var sendContext = new InMemorySendContext <MyMessage>(new MyMessage());

            await pipe.Send(sendContext).ConfigureAwait(false);
        }
        public async Task Should_properly_delegate_the_specifications()
        {
            var specification = new SendPipeSpecification();

            specification.GetMessageSpecification <MyMessage>()
            .UseExecute(context => Console.WriteLine("Hello, World."));

            specification.GetMessageSpecification <IMyMessage>()
            .UseExecute(context =>
            {
            });

            IPipe <SendContext <MyMessage> > pipe = specification.GetMessageSpecification <MyMessage>().BuildMessagePipe();

            var sendContext = new MessageSendContext <MyMessage>(new MyMessage());

            await pipe.Send(sendContext).ConfigureAwait(false);
        }
        public async Task Should_properly_use_the_original_specification()
        {
            var specification = new SendPipeSpecification();

            specification.GetMessageSpecification <MyMessage>()
            .UseExecute(context => Console.WriteLine("Hello, World."));

            specification.GetMessageSpecification <IMyMessage>()
            .UseExecute(context =>
            {
            });

            var endpointSpecification = new SendPipeSpecification();

            endpointSpecification.ConnectSendPipeSpecificationObserver(new ParentSendPipeSpecificationObserver(specification));

            IPipe <SendContext <MyMessage> > pipe = endpointSpecification.GetMessageSpecification <MyMessage>().BuildMessagePipe();

            var sendContext = new InMemorySendContext <MyMessage>(new MyMessage());

            await pipe.Send(sendContext).ConfigureAwait(false);
        }
Esempio n. 5
0
 public SendPipeConfiguration(ISendPipeSpecification parentSpecification)
 {
     _specification = new SendPipeSpecification();
     _specification.Connect(new ParentSendPipeSpecificationObserver(parentSpecification));
 }
Esempio n. 6
0
 public SendPipeConfiguration(ISendTopology sendTopology)
 {
     _specification = new SendPipeSpecification();
     _specification.Connect(new TopologySendPipeSpecificationObserver(sendTopology));
 }