public async Task PublishAsync_MessageChangingBehavior_BehaviorExecuted() { var behavior = new ChangeMessageBehavior <TestCommandOne>(_ => new[] { new TestCommandTwo(), new TestCommandTwo(), new TestCommandTwo() }); var publisher = GetPublisher(null, new[] { behavior }, _asyncSubscriber); await publisher.PublishAsync(new TestCommandOne()); await publisher.PublishAsync(new TestCommandTwo()); _asyncSubscriber.ReceivedMessagesCount.Should().Be(4); }
public async Task Publish_MessageChangingBehavior_BehaviorExecuted() { var receivedMessages = new List <object>(); var behavior = new ChangeMessageBehavior <TestCommandOne>(_ => new TestCommandTwo()); var serviceProvider = ServiceProviderHelper.GetServiceProvider( services => services .AddFakeLogger() .AddSilverback() .AddSingletonBehavior(behavior) .AddDelegateSubscriber((TestCommandTwo message) => receivedMessages.Add(message))); var publisher = serviceProvider.GetRequiredService <IPublisher>(); publisher.Publish(new TestCommandOne()); await publisher.PublishAsync(new TestCommandOne()); receivedMessages.Should().HaveCount(2); receivedMessages.Should().AllBeOfType <TestCommandTwo>(); }