Skip to content

Commit 40c42b7

Browse files
CopilotmarcpopMSFT
andcommitted
Add tests for advertising manifest message suppression
Co-authored-by: marcpopMSFT <[email protected]>
1 parent 2869d60 commit 40c42b7

File tree

1 file changed

+45
-2
lines changed

1 file changed

+45
-2
lines changed

test/dotnet.Tests/CommandTests/Workload/Install/GivenWorkloadManifestUpdater.cs

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ public async Task ItCanFallbackWithNoUpdates(bool useOfflineCache)
318318
var workloadResolver = WorkloadResolver.CreateForTests(workloadManifestProvider, dotnetRoot);
319319
var nugetDownloader = new MockNuGetPackageDownloader(dotnetRoot);
320320
var installationRepo = new MockInstallationRecordRepository();
321-
var manifestUpdater = new WorkloadManifestUpdater(_reporter, workloadResolver, nugetDownloader, Path.Combine(testDir, ".dotnet"), installationRepo, new MockPackWorkloadInstaller(dotnetRoot));
321+
var manifestUpdater = new WorkloadManifestUpdater(_reporter, workloadResolver, nugetDownloader, Path.Combine(testDir, ".dotnet"), installationRepo, new MockPackWorkloadInstaller(dotnetRoot), displayManifestUpdates: true);
322322

323323
var offlineCacheDir = "";
324324
if (useOfflineCache)
@@ -349,6 +349,49 @@ public async Task ItCanFallbackWithNoUpdates(bool useOfflineCache)
349349
_reporter.Lines.Should().Contain(string.Format(CliCommandStrings.AdManifestPackageDoesNotExist, testManifestName));
350350
}
351351

352+
[Fact]
353+
public async Task ItSuppressesMessagesWhenDisplayManifestUpdatesIsFalse()
354+
{
355+
// Test that advertising manifest messages are suppressed when displayManifestUpdates is false
356+
// This validates the fix for https://github.com/dotnet/sdk/issues/xxxxx
357+
358+
// Arrange
359+
string sdkFeatureBand = "6.0.300";
360+
var testDir = _testAssetsManager.CreateTestDirectory().Path;
361+
var dotnetRoot = Path.Combine(testDir, "dotnet");
362+
363+
var emptyInstalledManifestsDir = Path.Combine(dotnetRoot, "sdk-manifests", "6.0.200");
364+
Directory.CreateDirectory(emptyInstalledManifestsDir);
365+
366+
var adManifestDir = Path.Combine(testDir, ".dotnet", "sdk-advertising", sdkFeatureBand);
367+
Directory.CreateDirectory(adManifestDir);
368+
369+
string testManifestName = "test-manifest";
370+
Directory.CreateDirectory(Path.Combine(emptyInstalledManifestsDir, testManifestName));
371+
File.WriteAllText(Path.Combine(emptyInstalledManifestsDir, testManifestName, _manifestFileName), GetManifestContent(new ManifestVersion("1.0.0")));
372+
373+
var workloadManifestProvider = new MockManifestProvider((testManifestName, Path.Combine(emptyInstalledManifestsDir, testManifestName, _manifestFileName), "1.0.0", "6.0.200"))
374+
{
375+
SdkFeatureBand = new SdkFeatureBand(sdkFeatureBand)
376+
};
377+
378+
var workloadResolver = WorkloadResolver.CreateForTests(workloadManifestProvider, dotnetRoot);
379+
var nugetDownloader = new MockNuGetPackageDownloader(dotnetRoot);
380+
var installationRepo = new MockInstallationRecordRepository();
381+
// Create updater with displayManifestUpdates: false (simulating non-diagnostic verbosity)
382+
var manifestUpdater = new WorkloadManifestUpdater(_reporter, workloadResolver, nugetDownloader, Path.Combine(testDir, ".dotnet"), installationRepo, new MockPackWorkloadInstaller(dotnetRoot), displayManifestUpdates: false);
383+
384+
nugetDownloader.PackageIdsToNotFind.Add($"{testManifestName}.Manifest-6.0.300");
385+
nugetDownloader.PackageIdsToNotFind.Add($"{testManifestName}.Manifest-6.0.200");
386+
387+
// Act
388+
await manifestUpdater.UpdateAdvertisingManifestsAsync(includePreviews: true);
389+
390+
// Assert - messages should be suppressed
391+
_reporter.Lines.Should().NotContain(l => l.ToLowerInvariant().Contains("fail"));
392+
_reporter.Lines.Should().NotContain(string.Format(CliCommandStrings.AdManifestPackageDoesNotExist, testManifestName));
393+
}
394+
352395
[Theory]
353396
[InlineData(false)]
354397
[InlineData(true)]
@@ -384,7 +427,7 @@ public async Task GivenNoUpdatesAreAvailableAndNoRollbackItGivesAppropriateMessa
384427
var workloadResolver = WorkloadResolver.CreateForTests(workloadManifestProvider, dotnetRoot);
385428
var nugetDownloader = new MockNuGetPackageDownloader(dotnetRoot);
386429
var installationRepo = new MockInstallationRecordRepository();
387-
var manifestUpdater = new WorkloadManifestUpdater(_reporter, workloadResolver, nugetDownloader, Path.Combine(testDir, ".dotnet"), installationRepo, new MockPackWorkloadInstaller(dotnetRoot));
430+
var manifestUpdater = new WorkloadManifestUpdater(_reporter, workloadResolver, nugetDownloader, Path.Combine(testDir, ".dotnet"), installationRepo, new MockPackWorkloadInstaller(dotnetRoot), displayManifestUpdates: true);
388431

389432
var offlineCacheDir = "";
390433
if (useOfflineCache)

0 commit comments

Comments
 (0)