public void WhenStaleLocksAreExpired_TheLocksAreRemoved() { var thePackage = CreatePackageIdentity("Package", "1.0"); var packageLocks = new PackageLocks { new UsageDetails(new ServerTaskId("Deployment-1"), new CacheAge(1), new DateTime(2021, 1, 1)) }; var journalEntry = new JournalEntry(thePackage, 1, packageLocks); var journalEntries = new Dictionary <PackageIdentity, JournalEntry>() { { thePackage, journalEntry } }; var testJournal = new PackageJournal(new InMemoryJournalRepository(journalEntries), Substitute.For <ILog>(), Substitute.For <ICalamariFileSystem>(), Substitute.For <IRetentionAlgorithm>(), Substitute.For <ISemaphoreFactory>()); testJournal.ExpireStaleLocks(TimeSpan.FromDays(14)); Assert.IsFalse(journalRepository.HasLock(thePackage)); }
public void OnlyStaleLocksAreExpired() { var packageOne = CreatePackageIdentity("PackageOne", "1.0"); var packageTwo = CreatePackageIdentity("PackageTwo", "1.0"); var packageOneLocks = new PackageLocks { new UsageDetails(new ServerTaskId("Deployment-1"), new CacheAge(1), new DateTime(2021, 1, 1)), }; var packageTwoLocks = new PackageLocks { new UsageDetails(new ServerTaskId("Deployment-2"), new CacheAge(1), DateTime.Now), }; var packageOneJournalEntry = new JournalEntry(packageOne, 1, packageOneLocks); var packageTwoJournalEntry = new JournalEntry(packageTwo, 1, packageTwoLocks); var journalEntries = new Dictionary <PackageIdentity, JournalEntry>() { { packageOne, packageOneJournalEntry }, { packageTwo, packageTwoJournalEntry } }; var testJournalRepository = new InMemoryJournalRepository(journalEntries); var testJournal = new PackageJournal(testJournalRepository, Substitute.For <ILog>(), Substitute.For <ICalamariFileSystem>(), Substitute.For <IRetentionAlgorithm>(), Substitute.For <ISemaphoreFactory>()); testJournal.ExpireStaleLocks(TimeSpan.FromDays(14)); Assert.IsFalse(testJournalRepository.HasLock(packageOne)); Assert.IsTrue(testJournalRepository.HasLock(packageTwo)); }