public DynamicMessageHandlerInvoker(Action <IMessage> handler, Type messageType, ICollection <BindingKey> bindingKeys) : base(typeof(DummyHandler), messageType, false) { _handler = handler; var messageTypeId = MessageUtil.GetTypeId(messageType); _predicates = bindingKeys.Select(x => BindingKeyUtil.BuildPredicate(messageTypeId, x)).ToList(); }
public void should_match_valid_message(ExpectedResult expectedResult) { // Arrange var messageTypeId = MessageUtil.TypeId <FakeRoutableCommand>(); // Act var predicate = BindingKeyUtil.BuildPredicate(messageTypeId, expectedResult.BindingKey); // Assert predicate(expectedResult.Message).ShouldEqual(expectedResult.Result); }
public void should_get_binding_key_parts_for_member() { // Arrange var bindingKeys = new[] { Subscription.Matching <StrangeRoutableMessage>(x => x.Id == 123).BindingKey, Subscription.Matching <StrangeRoutableMessage>(x => x.Code == "456").BindingKey, Subscription.Matching <StrangeRoutableMessage>(x => x.Id == 123 && x.Code == "456").BindingKey, Subscription.Any <StrangeRoutableMessage>().BindingKey, }; // Act var partsForId = BindingKeyUtil.GetPartsForMember(MessageUtil.TypeId <StrangeRoutableMessage>(), nameof(StrangeRoutableMessage.Id), bindingKeys); var partsForCode = BindingKeyUtil.GetPartsForMember(MessageUtil.TypeId <StrangeRoutableMessage>(), nameof(StrangeRoutableMessage.Code), bindingKeys); // Assert partsForId.ShouldBeEquivalentTo(BindingKeyPart.Parse("123"), BindingKeyPart.Star, BindingKeyPart.Parse("123"), BindingKeyPart.Star); partsForCode.ShouldBeEquivalentTo(BindingKeyPart.Star, BindingKeyPart.Parse("456"), BindingKeyPart.Parse("456"), BindingKeyPart.Star); }
public BindingKeyPart GetBindingKeyPartForMember(string memberName) { return BindingKeyUtil.GetPartForMember(MessageTypeId, memberName, BindingKey); }
public IReadOnlyList <BindingKeyPart> GetBindingKeyPartsForMember(string memberName) => BindingKeyUtil.GetPartsForMember(MessageTypeId, memberName, BindingKeys).ToList();