public void Integrative_test_of_finding_all_handlers_in_complex_scenario()
        {
            var setup = new FlexibleSubscribeAdapter();
            setup
                .ByInterface(typeof(IClassicIHandleStuffI<>))
                .RegisterMethods("Handle")
                .RegisterMethods("Schmandle");

            var handler = new SomeCrazyHandler();
            var simpleResolver = new SimpleResolver();
            ((IAdapterServices) setup).WireUpSubscriber(simpleResolver, handler);

            var subs = simpleResolver.ToList();

            subs.ShouldHaveCount(5);

            subs.Where(s=>s.Handles(typeof(MessageASpecialization))).Each(s=>s.Push(new MessageASpecialization()));
            handler.MessageACount.ShouldBeEqualTo(1);
            handler.MsgSpecialACount.ShouldBeEqualTo(1);

            subs.Where(s => s.Handles(typeof(MessageB))).Each(s => s.Push(new MessageB()));
            handler.MessageBCount.ShouldBeEqualTo(2); //There are 2 handle methods for MsgB :)

            subs.Where(s => s.Handles(typeof(MessageC))).Each(s => s.Push(new MessageC()));
            handler.MessageCCount.ShouldBeEqualTo(1);
        }
Esempio n. 2
0
        public void Integrative_test_of_finding_all_handlers_in_complex_scenario()
        {
            var setup = new FlexibleSubscribeAdapter();

            setup
            .ByInterface(typeof(IClassicIHandleStuffI <>))
            .RegisterMethods("Handle")
            .RegisterMethods("Schmandle");

            var handler        = new SomeCrazyHandler();
            var simpleResolver = new SimpleResolver();

            ((IAdapterServices)setup).WireUpSubscriber(simpleResolver, handler);

            var subs = simpleResolver.ToList();

            subs.ShouldHaveCount(5);

            subs.Where(s => s.Handles(typeof(MessageASpecialization))).Each(s => s.Push(new MessageASpecialization()));
            handler.MessageACount.ShouldBeEqualTo(1);
            handler.MsgSpecialACount.ShouldBeEqualTo(1);

            subs.Where(s => s.Handles(typeof(MessageB))).Each(s => s.Push(new MessageB()));
            handler.MessageBCount.ShouldBeEqualTo(2); //There are 2 handle methods for MsgB :)

            subs.Where(s => s.Handles(typeof(MessageC))).Each(s => s.Push(new MessageC()));
            handler.MessageCCount.ShouldBeEqualTo(1);
        }