public async Task Should_ignore_exceptions() { var @event = new AssetFolderDeleted { AppId = appId, AssetFolderId = DomainId.NewGuid() }; var childId1 = DomainId.NewGuid(); var childId2 = DomainId.NewGuid(); A.CallTo(() => commandBus.PublishAsync(A <DeleteAsset> .That.Matches(x => x.AssetId == childId1))) .Throws(new InvalidOperationException()); A.CallTo(() => assetRepository.QueryChildIdsAsync(appId.Id, @event.AssetFolderId)) .Returns(new List <DomainId> { childId1, childId2 }); await sut.On(Envelope.Create(@event)); A.CallTo(() => commandBus.PublishAsync(A <DeleteAsset> .That.Matches(x => x.AssetId == childId2))) .MustHaveHappened(); A.CallTo(() => log.Log(A <SemanticLogLevel> ._, A <Exception?> ._, A <LogFormatter> ._ !)) .MustHaveHappened(); }
public async Task Should_ignore_exceptions() { var @event = new AssetFolderDeleted { AppId = appId, AssetFolderId = DomainId.NewGuid() }; var childId1 = DomainId.NewGuid(); var childId2 = DomainId.NewGuid(); A.CallTo(() => commandBus.PublishAsync(A <DeleteAsset> .That.Matches(x => x.AssetId == childId1))) .Throws(new InvalidOperationException()); A.CallTo(() => assetRepository.QueryChildIdsAsync(appId.Id, @event.AssetFolderId, A <CancellationToken> ._)) .Returns(new List <DomainId> { childId1, childId2 }); await sut.On(Envelope.Create(@event)); A.CallTo(() => commandBus.PublishAsync(A <DeleteAsset> .That.Matches(x => x.AssetId == childId2))) .MustHaveHappened(); A.CallTo(log).Where(x => x.Method.Name == "Log") .MustHaveHappened(); }
public async Task Should_ignore_exceptions() { var @event = new AssetFolderDeleted { AppId = appId, AssetFolderId = Guid.NewGuid() }; var childId1 = Guid.NewGuid(); var childId2 = Guid.NewGuid(); A.CallTo(() => commandBus.PublishAsync(A <DeleteAsset> .That.Matches(x => x.AssetId == childId1))) .Throws(new InvalidOperationException()); A.CallTo(() => assetRepository.QueryChildIdsAsync(appId.Id, @event.AssetFolderId)) .Returns(new List <Guid> { childId1, childId2 }); await sut.On(Envelope.Create(@event)); A.CallTo(() => commandBus.PublishAsync(A <DeleteAsset> .That.Matches(x => x.AssetId == childId2))) .MustHaveHappened(); A.CallTo(() => log.Log(SemanticLogLevel.Error, None.Value, A <Action <None, IObjectWriter> > .Ignored)) .MustHaveHappened(); }
public async Task Should_Not_invoke_delete_commands_if_event_restored() { var @event = new AssetFolderDeleted { AppId = appId, AssetFolderId = DomainId.NewGuid() }; await sut.On(Envelope.Create(@event).SetRestored()); A.CallTo(() => commandBus.PublishAsync(A <ICommand> ._)) .MustNotHaveHappened(); }
public async Task Should_invoke_delete_commands_for_all_assets() { var @event = new AssetFolderDeleted { AppId = appId, AssetFolderId = DomainId.NewGuid() }; var childId1 = DomainId.NewGuid(); var childId2 = DomainId.NewGuid(); A.CallTo(() => assetRepository.QueryChildIdsAsync(appId.Id, @event.AssetFolderId)) .Returns(new List <DomainId> { childId1, childId2 }); await sut.On(Envelope.Create(@event)); A.CallTo(() => commandBus.PublishAsync(A <DeleteAsset> .That.Matches(x => x.AssetId == childId1))) .MustHaveHappened(); A.CallTo(() => commandBus.PublishAsync(A <DeleteAsset> .That.Matches(x => x.AssetId == childId2))) .MustHaveHappened(); }