Exemplo n.º 1
0
		public void Should_have_the_bits_without_the_message_first()
		{
			var engine = new DynamicRoutingEngine(new PoolFiber());
			var visualizer = new TraceRoutingEngineVisualizer();

			var received = new Future<A>();
			engine.Configure(x => x.Receive<A>(received.Complete));

			var block = new Future<int>();
			engine.Add(0, () =>
				{
					visualizer.Show(engine);
					block.Complete(0);
				});
			block.WaitUntilCompleted(2.Seconds());

			engine.Send(new A());
			received.WaitUntilCompleted(2.Seconds());

			engine.Send(new B());

			var receivedB = new Future<B>();
			engine.Configure(x => x.Receive<B>(receivedB.Complete));

			received.WaitUntilCompleted(8.Seconds()).ShouldBeTrue();
			receivedB.WaitUntilCompleted(8.Seconds()).ShouldBeTrue();

			//engine.Receive<A, B>(x => { });

			visualizer.Show(engine);
		}
Exemplo n.º 2
0
        public void Should_have_the_bits_without_the_message_first()
        {
            var engine     = new DynamicRoutingEngine(new PoolFiber());
            var visualizer = new TraceRoutingEngineVisualizer();

            var received = new Future <A>();

            engine.Configure(x => x.Receive <A>(received.Complete));

            var block = new Future <int>();

            engine.Add(0, () =>
            {
                visualizer.Show(engine);
                block.Complete(0);
            });
            block.WaitUntilCompleted(2.Seconds());

            engine.Send(new A());
            received.WaitUntilCompleted(2.Seconds());

            engine.Send(new B());

            var receivedB = new Future <B>();

            engine.Configure(x => x.Receive <B>(receivedB.Complete));

            received.WaitUntilCompleted(8.Seconds()).ShouldBeTrue();
            receivedB.WaitUntilCompleted(8.Seconds()).ShouldBeTrue();

            //engine.Receive<A, B>(x => { });

            visualizer.Show(engine);
        }