public void Should_be_called_during_the_final_execution_state()
        {
            string expected = "47";
            string called = null;

            Feather<string> logger = new LogFeather<string>(Console.Out, x =>
                {
                    called = x.Data;
                    return x.Data;
                });

            Feather<string> profiler = new ProfilerFeather<string>(Console.Error, TimeSpan.FromMilliseconds(2));

            Vane<string> vane = VaneFactory.Success(profiler, logger);

            vane.Execute(expected);

            Assert.IsFalse(string.IsNullOrEmpty(called));
            Assert.AreEqual(expected, called);
        }
        public void Setup()
        {
            var messageConsumerVane = new MessageConsumerFeather<A, WorkingConsumer>(x => x.Consume);
            Vane<Tuple<Message<A>, WorkingConsumer>> consumerVane = VaneFactory.Success(messageConsumerVane);

            var messageConsumerVaneB = new MessageConsumerFeather<B, WorkingConsumer>(x => x.Consume);
            Vane<Tuple<Message<B>, WorkingConsumer>> consumerVaneB = VaneFactory.Success(messageConsumerVaneB);

            var factoryVane = new FactorySourceVane<WorkingConsumer>(() => new WorkingConsumer());
            var loggerVane = new LogFeather<WorkingConsumer>(Console.Out, x => "Logging");
            var profilerVane = new ProfilerFeather<WorkingConsumer>(Console.Out, TimeSpan.FromMilliseconds(1));

            var sourceVane = VaneFactory.Source(factoryVane, loggerVane, profilerVane);
            var spliceVane = new SpliceFeather<Message<A>, WorkingConsumer>(consumerVane, sourceVane);

            var messageVane = new MessageTypeFeather<A>(VaneFactory.Success(spliceVane));

            var spliceVaneB = new SpliceFeather<Message<B>, WorkingConsumer>(consumerVaneB, sourceVane);
            var messageVaneB = new MessageTypeFeather<B>(VaneFactory.Success(spliceVaneB));

            var fanOutVane = new FanoutFeather<Message>(new Feather<Message>[] { messageVane, messageVaneB });

            _vane = VaneFactory.Success(fanOutVane);
        }