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

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

            var block = new Future<int>();
            engine.Add(() =>
                {
                    visualizer.Visit(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.Receive<B>(receivedB.Complete);

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

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

            visualizer.Visit(engine);
        }
Exemplo n.º 2
0
        public void Should_properly_invoke_the_message_receiver()
        {
            RoutingEngine engine = new DynamicRoutingEngine(new SynchronousFiber());

            Future<A> receivedA = new Future<A>();
            Future<B> receivedB = new Future<B>();

            engine.Receive<A>(receivedA.Complete);
            engine.Receive<B>(receivedB.Complete);

            engine.Send(new B());

            receivedA.WaitUntilCompleted(2.Seconds()).ShouldBeTrue("A not received");
            receivedB.WaitUntilCompleted(2.Seconds()).ShouldBeTrue("B not received");
        }
Exemplo n.º 3
0
		public void Should_upconvert_to_a_message_of_t()
		{
			var received = new Future<Message<Simple>>();

			var engine = new DynamicRoutingEngine(new SynchronousFiber());
			engine.Receive<Message<Simple>>(received.Complete);

			engine.Send(new SimpleImpl());

			received.WaitUntilCompleted(2.Seconds()).ShouldBeTrue();
			received.Value.ShouldNotBeNull();
		}
Exemplo n.º 4
0
        public void Should_display_the_empty_network()
        {
            var received = new Future<A>();

            var engine = new DynamicRoutingEngine(new PoolFiber());

            engine.Send(new A());

            Trace.WriteLine("Before Receive");
            var visualizer = new RoutingEngineTextVisualizer();
            visualizer.Visit(engine);

            engine.Receive<A>(received.Complete);

            Trace.WriteLine("After Receive");
            visualizer.Visit(engine);

            received.WaitUntilCompleted(2.Seconds()).ShouldBeTrue();
        }