public static TMsg Message <TMsg>(this IWaitResult res, Predicate <TMsg> selector = null) where TMsg : class { var sel = selector ?? (m => true); var msg = res.All.OfType <TMsg>().FirstOrDefault(t => sel(t)); return(msg ?? MessageWithMetadata(res, selector)?.Message); }
public static IMessageMetadataEnvelop <TMsg> MessageWithMetadata <TMsg>(this IWaitResult res, Predicate <TMsg> selector = null) { var sel = selector ?? (m => true); var loosyTypedEnvelop = res.All.OfType <IMessageMetadataEnvelop>().First(t => t.Message is TMsg && sel((TMsg)t.Message)); return(new MessageMetadataEnvelop <TMsg>((TMsg)loosyTypedEnvelop.Message, loosyTypedEnvelop.Metadata)); }
public async Task When_expect_more_than_one_messages() { var cmd = new InflateCopyCommand(100, Guid.NewGuid().ToString()); _result = await Node.Prepare(cmd) .Expect <BalloonTitleChanged>(e => e.SourceId == cmd.AggregateId) .And <BalloonCreated>(e => e.SourceId == cmd.AggregateId) .Execute(); await Task.Delay(1000); //waiting for logs //Then_recieve_something() Assert.NotNull(_result); //Then_recieve_non_empty_collection() Assert.NotEmpty(_result.All); //Then_recieved_collection_of_expected_messages() Assert.True(_result.Message <BalloonTitleChanged>() != null && _result.Message <BalloonCreated>() != null); //Then_recieve_only_expected_messages() Assert.True(_result.All.Count == 2); }
public WaitEndInfo(IWaitResult result, object lastMessage) { Result = result; LastMessage = lastMessage; }