Skip to content

Commit 7392300

Browse files
Log the number of dependency snapshots installed and how many snapshots to keep (#605)
* Log the number of dependency snapshots installed and how many we should keep * Add test case to validate log statement for dependency snapshots installed and snapshots to keep
1 parent 6551944 commit 7392300

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

src/DependencyManagement/DependencySnapshotPurger.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@ public void Purge(ILogger logger)
7373
.OrderBy(entry => entry.Item2)
7474
.ToArray();
7575

76+
var snapshotsLogmessage = string.Format(
77+
PowerShellWorkerStrings.LogDependencySnapshotsInstalledAndSnapshotsToKeep,
78+
pathSortedByAccessTime.Length,
79+
_minNumberOfSnapshotsToKeep);
80+
logger.Log(isUserOnlyLog: false, LogLevel.Trace, snapshotsLogmessage);
81+
7682
for (var i = 0; i < pathSortedByAccessTime.Length - _minNumberOfSnapshotsToKeep; ++i)
7783
{
7884
var creationTime = pathSortedByAccessTime[i].Item2;

src/resources/PowerShellWorkerStrings.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,4 +334,7 @@
334334
<data name="SettingCurrentDirectory" xml:space="preserve">
335335
<value>Setting current directory to '{0}'.</value>
336336
</data>
337+
<data name="LogDependencySnapshotsInstalledAndSnapshotsToKeep" xml:space="preserve">
338+
<value>Number of dependency snapshots installed: '{0}'. Dependency snapshots to keep: '{1}'.</value>
339+
</data>
337340
</root>

test/Unit/DependencyManagement/DependencySnapshotPurgerTests.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,5 +319,36 @@ public void SetCurrentlyUsedSnapshot_UpdatesCurrentSnapshotAccessTimeImmediately
319319

320320
_mockStorage.Verify(_ => _.SetSnapshotAccessTimeToUtcNow(It.IsAny<string>()), Times.Once);
321321
}
322+
323+
[Fact]
324+
public void LogDependencySnapshotsInstalledAndSnapshotsToKeep()
325+
{
326+
var mockLogger = new Mock<ILogger>(MockBehavior.Loose);
327+
var mockStorage = new Mock<IDependencyManagerStorage>();
328+
329+
mockStorage.Setup(_ => _.GetInstalledAndInstallingSnapshots()).Returns(new[] { "1", "2", "3" });
330+
331+
mockStorage.Setup(_ => _.GetSnapshotAccessTimeUtc("1")).Returns(DateTime.UtcNow - TimeSpan.FromMinutes(11));
332+
mockStorage.Setup(_ => _.GetSnapshotAccessTimeUtc("2")).Returns(DateTime.UtcNow);
333+
mockStorage.Setup(_ => _.GetSnapshotAccessTimeUtc("3")).Returns(DateTime.UtcNow - TimeSpan.FromMinutes(6));
334+
335+
using (var purger = new DependencySnapshotPurger(
336+
mockStorage.Object,
337+
heartbeatPeriod: TimeSpan.FromMinutes(10),
338+
oldHeartbeatAgeMargin: TimeSpan.FromMinutes(0),
339+
minNumberOfSnapshotsToKeep: 1))
340+
{
341+
purger.Purge(mockLogger.Object);
342+
}
343+
344+
mockLogger.Verify(
345+
_ => _.Log(
346+
false,
347+
LogLevel.Trace,
348+
It.Is<string>(
349+
message => message.Contains("Number of dependency snapshots installed: '3'. Dependency snapshots to keep: '1'.")),
350+
null),
351+
Times.Once);
352+
}
322353
}
323354
}

0 commit comments

Comments
 (0)