public void Behaviour_should_also_work_with_method_calls() { var SUT = new YakShayBus(); SUT.RegisterType<SomeTestClass>(); var resultingMessages = new List<Message>(); var msg = new { SomePartOfTheUID = "A", AnotherPartOfTheUID = "B", SomeFlag = true, SomeString = "ABC" }; SUT.Handle( Message.FromAction(x => x.MethodToInvoke(SomePartOfTheUID: "A", AnotherPartOfTheUID: "B", SomeFlag: true, SomeString: "ABC")) , x => resultingMessages.Add(x)); resultingMessages.Count.ShouldBe(1); resultingMessages.First().ToFriendlyString().ShouldBe(new Message("OnMethodWasInvoked", new { SomePartOfTheUID = "A", AnotherPartOfTheUID = "B", SomeString = "ABC", AnotherInt = 123 }).ToFriendlyString()); }
public void Invoking_a_message_that_does_not_have_the_unique_ids_should_not_generate_events() { var SUT = new YakShayBus(); SUT.RegisterType<SomeTestClass>(); var resultingMessages = new List<Message>(); var msg = new Message("MethodToInvoke", new { NotPartOfTheKey = "A", AnotherPartOfTheUID = "B", SomeFlag = true, SomeString = "ABC" }); SUT.Handle(msg, x => resultingMessages.Add(x)); resultingMessages.ShouldBeEmpty(); }
public void Message_should_get_processed_and_generate_a_single_InterceptThis_message_with_the_correct_parameters() { var SUT = new YakShayBus(); SUT.RegisterType<SomeTestClass>(); var ms = new MessageStore(); var msg = new Message("MethodToInvoke", new { SomePartOfTheUID = "A", AnotherPartOfTheUID = "B", SomeFlag = true, SomeString = "ABC" }); SUT.Handle(msg, ms.Add); ms.msgs.Count.ShouldBe(1); ms.msgs.First().ToFriendlyString().ShouldBe(new Message("OnMethodWasInvoked", new { SomePartOfTheUID = "A", AnotherPartOfTheUID = "B", SomeString = "ABC", AnotherInt = 123 }).ToFriendlyString()); var ArInstance = new SomeTestClass { SomePartOfTheUID = "A", AnotherPartOfTheUID = "B" }; var AnotherArInstance = new SomeTestClass { SomePartOfTheUID = "X", AnotherPartOfTheUID = "Y" }; SUT.ApplyHistory(ArInstance, ms.Filter); SUT.ApplyHistory(AnotherArInstance, ms.Filter); ArInstance.HasMethodBeenCalled.ShouldBe(true); AnotherArInstance.HasMethodBeenCalled.ShouldBe(false); }