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); }
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); }