Пример #1
0
        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();
        }
Пример #2
0
        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();
        }
Пример #3
0
        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();
        }
Пример #4
0
        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();
        }
Пример #5
0
        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();
        }