Skip to content

Commit

Permalink
Add test for updating workloads in workload set mode with no workload…
Browse files Browse the repository at this point in the history
… sets available
  • Loading branch information
dsplaisted committed Mar 27, 2024
1 parent 4a553e1 commit 6bbd2b7
Showing 1 changed file with 38 additions and 14 deletions.
52 changes: 38 additions & 14 deletions src/Tests/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using System.Text;
using System.Threading.Tasks;
using Microsoft.DotNet.MsiInstallerTests.Framework;
using Microsoft.NET.Sdk.WorkloadManifestReader;

namespace Microsoft.DotNet.MsiInstallerTests
{
Expand Down Expand Up @@ -65,11 +66,8 @@ public void DoesNotUseWorkloadSetsByDefault()

}

[Fact]
public void UpdateWithWorkloadSets()
void UpdateAndSwitchToWorkloadSetMode(out string updatedWorkloadVersion, out WorkloadSet rollbackAfterUpdate)
{
InstallSdk();

var originalWorkloadVersion = GetWorkloadVersion();
originalWorkloadVersion.Should().StartWith("8.0.200-manifests.");

Expand All @@ -78,17 +76,11 @@ public void UpdateWithWorkloadSets()
.Should()
.Pass();

var originalRollback = GetRollback();
var updatedWorkloadVersion = GetWorkloadVersion();
rollbackAfterUpdate = GetRollback();
updatedWorkloadVersion = GetWorkloadVersion();
updatedWorkloadVersion.Should().StartWith("8.0.200-manifests.");
updatedWorkloadVersion.Should().NotBe(originalWorkloadVersion);

VM.CreateRunCommand("dotnet", "nuget", "add", "source", @"c:\SdkTesting\WorkloadSets")
.WithDescription("Add WorkloadSets to NuGet.config")
.Execute()
.Should()
.Pass();

GetUpdateMode().Should().Be("manifests");

VM.CreateRunCommand("dotnet", "workload", "config", "--update-mode", "workload-set")
Expand All @@ -100,18 +92,50 @@ public void UpdateWithWorkloadSets()
GetWorkloadVersion().Should().Be(updatedWorkloadVersion);

GetUpdateMode().Should().Be("workload-set");
}

VM.CreateRunCommand("dotnet", "workload", "update")
[Fact]
public void UpdateWithWorkloadSets()
{
InstallSdk();

UpdateAndSwitchToWorkloadSetMode(out string _, out WorkloadSet rollbackAfterUpdate);

VM.CreateRunCommand("dotnet", "nuget", "add", "source", @"c:\SdkTesting\WorkloadSets")
.WithDescription("Add WorkloadSets to NuGet.config")
.Execute()
.Should()
.Pass();

VM.CreateRunCommand("dotnet", "workload", "update")
.Execute()
.Should()
.Pass();

var newRollback = GetRollback();

newRollback.ManifestVersions.Should().NotBeEquivalentTo(originalRollback.ManifestVersions);
newRollback.ManifestVersions.Should().NotBeEquivalentTo(rollbackAfterUpdate.ManifestVersions);

GetWorkloadVersion().Should().Be("8.0.201");
}

[Fact]
public void UpdateInWorkloadSetModeWithNoAvailableWorkloadSet()
{
InstallSdk();

UpdateAndSwitchToWorkloadSetMode(out string updatedWorkloadVersion, out WorkloadSet rollbackAfterUpdate);

VM.CreateRunCommand("dotnet", "workload", "update")
.Execute()
.Should()
.Pass();

var newRollback = GetRollback();

newRollback.ManifestVersions.Should().BeEquivalentTo(rollbackAfterUpdate.ManifestVersions);

GetWorkloadVersion().Should().Be(updatedWorkloadVersion);
}

string GetWorkloadVersion()
Expand Down

0 comments on commit 6bbd2b7

Please sign in to comment.