public void PerformContentVersionCleanup_HasVersionsToDelete_CallsDeleteOnRepositoryWithFilteredSet( [Frozen] Mock <IScopedNotificationPublisher> eventAggregator, [Frozen] Mock <IContentVersionCleanupPolicy> policy, [Frozen] Mock <IDocumentVersionRepository> documentVersionRepository, List <ContentVersionMeta> someHistoricVersions, DateTime aDateTime, ContentVersionService sut) { documentVersionRepository.Setup(x => x.GetDocumentVersionsEligibleForCleanup()) .Returns(someHistoricVersions); eventAggregator .Setup(x => x.PublishCancelable(It.IsAny <ICancelableNotification>())) .Returns(false); var filteredSet = someHistoricVersions.Take(1); policy.Setup(x => x.Apply(It.IsAny <DateTime>(), It.IsAny <IEnumerable <ContentVersionMeta> >())) .Returns <DateTime, IEnumerable <ContentVersionMeta> >((_, items) => filteredSet); // # Act sut.PerformContentVersionCleanup(aDateTime); Debug.Assert(someHistoricVersions.Any()); var expectedId = filteredSet.First().VersionId; documentVersionRepository.Verify( x => x.DeleteVersions(It.Is <IEnumerable <int> >(y => y.Single() == expectedId)), Times.Once); }
public void PerformContentVersionCleanup_Always_RespectsDeleteRevisionsCancellation( [Frozen] Mock <IScopedNotificationPublisher> eventAggregator, [Frozen] Mock <IContentVersionCleanupPolicy> policy, [Frozen] Mock <IDocumentVersionRepository> documentVersionRepository, List <ContentVersionMeta> someHistoricVersions, DateTime aDateTime, ContentVersionService sut) { documentVersionRepository.Setup(x => x.GetDocumentVersionsEligibleForCleanup()) .Returns(someHistoricVersions); eventAggregator.Setup(x => x.PublishCancelable(It.IsAny <ContentDeletingVersionsNotification>())) .Returns(true); policy.Setup(x => x.Apply(aDateTime, someHistoricVersions)) .Returns(someHistoricVersions); // # Act var report = sut.PerformContentVersionCleanup(aDateTime); Assert.Multiple(() => { eventAggregator.Verify( x => x.PublishCancelable( It.IsAny <ContentDeletingVersionsNotification>()), Times.Exactly(someHistoricVersions.Count)); Assert.AreEqual(0, report.Count); }); }
public void PerformContentVersionCleanup_Always_AdheresToCleanupPolicy( [Frozen] Mock <IScopedNotificationPublisher> eventAggregator, [Frozen] Mock <IContentVersionCleanupPolicy> policy, [Frozen] Mock <IDocumentVersionRepository> documentVersionRepository, List <ContentVersionMeta> someHistoricVersions, DateTime aDateTime, ContentVersionService sut) { documentVersionRepository.Setup(x => x.GetDocumentVersionsEligibleForCleanup()) .Returns(someHistoricVersions); eventAggregator .Setup(x => x.PublishCancelable(It.IsAny <ICancelableNotification>())) .Returns(false); policy.Setup(x => x.Apply(It.IsAny <DateTime>(), It.IsAny <IEnumerable <ContentVersionMeta> >())) .Returns <DateTime, IEnumerable <ContentVersionMeta> >((_, items) => items.Take(1)); // # Act var report = sut.PerformContentVersionCleanup(aDateTime); Debug.Assert(someHistoricVersions.Count > 1); Assert.Multiple(() => { policy.Verify(x => x.Apply(aDateTime, someHistoricVersions), Times.Once); Assert.AreEqual(someHistoricVersions.First(), report.Single()); }); }
public void PerformContentVersionCleanup_Always_FiresDeletedVersionsForEachDeletedVersion( [Frozen] Mock <IScopedNotificationPublisher> eventAggregator, [Frozen] Mock <IContentVersionCleanupPolicy> policy, [Frozen] Mock <IDocumentVersionRepository> documentVersionRepository, List <ContentVersionMeta> someHistoricVersions, DateTime aDateTime, ContentVersionService sut) { documentVersionRepository.Setup(x => x.GetDocumentVersionsEligibleForCleanup()) .Returns(someHistoricVersions); eventAggregator .Setup(x => x.PublishCancelable(It.IsAny <ICancelableNotification>())) .Returns(false); policy.Setup(x => x.Apply(aDateTime, someHistoricVersions)) .Returns(someHistoricVersions); // # Act sut.PerformContentVersionCleanup(aDateTime); eventAggregator.Verify(x => x.Publish(It.IsAny <ContentDeletedVersionsNotification>()), Times.Exactly(someHistoricVersions.Count)); }
public void PerformContentVersionCleanup_Always_ReturnsReportOfDeletedItems( [Frozen] Mock <IScopedNotificationPublisher> eventAggregator, [Frozen] Mock <IContentVersionCleanupPolicy> policy, [Frozen] Mock <IDocumentVersionRepository> documentVersionRepository, List <ContentVersionMeta> someHistoricVersions, DateTime aDateTime, ContentVersionService sut) { documentVersionRepository.Setup(x => x.GetDocumentVersionsEligibleForCleanup()) .Returns(someHistoricVersions); eventAggregator .Setup(x => x.PublishCancelable(It.IsAny <ICancelableNotification>())) .Returns(false); // # Act var report = sut.PerformContentVersionCleanup(aDateTime); Assert.Multiple(() => { Assert.Greater(report.Count, 0); Assert.AreEqual(someHistoricVersions.Count, report.Count); }); }