public async Task CantRemoveMessageWithoutSavingAsync() { // Arrange var ctx = _ctx; var msg = new OutboxMessage { Body = "test", MessageType = Abstractions.Models.OutboxMessageType.ProcessingDataMessage, OccurredOn = DateTime.UtcNow }; ctx.OutboxMessages.Add(msg); ctx.SaveChanges(); var logger = new Mock <ILogger <OutboxUnitOfWork> >(); var outbox = new OutboxUnitOfWork(ctx, logger.Object); // Act var exception = await Record.ExceptionAsync(async() => { await outbox.RemoveOutboxMessageAsync(new TestMessage { MessageId = msg.MessageId }, CancellationToken.None); }); // Assert exception.Should().BeNull(); ctx.OutboxMessages.Should().NotBeEmpty(); }
public async Task CantRemoveEmptyMessageAsync() { // Arrange var ctx = _ctx; var logger = new Mock <ILogger <OutboxUnitOfWork> >(); var outbox = new OutboxUnitOfWork(ctx, logger.Object); // Act var exception = await Record.ExceptionAsync(async() => await outbox.RemoveOutboxMessageAsync(null !, CancellationToken.None)); // Assert exception.Should().NotBeNull().And.BeOfType <ArgumentNullException>(); }
public async Task CantSaveWithDisposedObjectAsync2() { // Arrange var ctx = _ctx; var logger = new Mock <ILogger <OutboxUnitOfWork> >(); var outbox = new OutboxUnitOfWork(ctx, logger.Object); await outbox.DisposeAsync(); // Act var exception = await Record.ExceptionAsync(async() => await outbox.SaveAsync(CancellationToken.None)); // Assert exception.Should().NotBeNull().And.BeOfType <ObjectDisposedException>(); }
public async Task CanRemoveMessageAsync() { // Arrange var ctx = _ctx; var msg1 = new OutboxMessage { Body = "test1", MessageType = Abstractions.Models.OutboxMessageType.ProcessingDataMessage, OccurredOn = DateTime.UtcNow }; var msg2 = new OutboxMessage { Body = "test2", MessageType = Abstractions.Models.OutboxMessageType.ProcessingDataMessage, OccurredOn = DateTime.UtcNow.AddDays(1) }; ctx.OutboxMessages.Add(msg1); ctx.OutboxMessages.Add(msg2); ctx.SaveChanges(); var logger = new Mock <ILogger <OutboxUnitOfWork> >(); var outbox = new OutboxUnitOfWork(ctx, logger.Object); // Act var exception = await Record.ExceptionAsync(async() => { await outbox.RemoveOutboxMessageAsync(new TestMessage { MessageId = msg1.MessageId }, CancellationToken.None); await outbox.SaveAsync(CancellationToken.None); }); // Assert exception.Should().BeNull(); ctx.OutboxMessages.Should().HaveCount(1); ctx.OutboxMessages.Single().Should().Be(msg2); }