示例#1
0
        public async Task PublishAsync_should_throw_if_message_null()
        {
            var repo = NSubstitute.Substitute.For <IOutboxRepository>();
            var sut  = new DefaultMessageBus(repo);

            await Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.PublishAsync <StartDummySaga>(null));
        }
示例#2
0
        public async Task PublishAsync_should_append_to_outbox()
        {
            var repo = NSubstitute.Substitute.For <IOutboxRepository>();
            var sut  = new DefaultMessageBus(repo);

            var message = StartDummySaga.New();
            await sut.PublishAsync(message);

            await repo.Received(1).AppendAsync(message, Arg.Any <CancellationToken>());
        }
示例#3
0
        public async Task PublishAsync_should_pass_transaction_if_set()
        {
            var repo = NSubstitute.Substitute.For <IOutboxRepository>();
            var sut  = new DefaultMessageBus(repo);

            var message = StartDummySaga.New();

            var transaction = NSubstitute.Substitute.For <ITransaction>();

            sut.SetTransaction(transaction);

            await sut.PublishAsync(message);

            await repo.Received(1).AppendAsync(message, transaction, Arg.Any <CancellationToken>());
        }