Skip to content

Commit e6e20ad

Browse files
committed
Fix tests
1 parent 0742587 commit e6e20ad

File tree

4 files changed

+44
-21
lines changed

4 files changed

+44
-21
lines changed

src/Tests/dotnet-workload-install.Tests/GivenWorkloadManifestUpdater.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,9 @@ public void GivenAdvertisedManifestsItCalculatesCorrectUpdates()
181181
}
182182

183183
var manifestInfo = expectedManifestUpdates.Select(
184-
manifest => (manifest.ManifestId.ToString(), Path.Combine(testDir, "dotnet", "sdk-manifests", manifest.ExistingFeatureBand, manifest.ManifestId.ToString(), "WorkloadManifest.json"), manifest.ExistingFeatureBand))
184+
manifest => (manifest.ManifestId.ToString(), Path.Combine(testDir, "dotnet", "sdk-manifests", manifest.ExistingFeatureBand, manifest.ManifestId.ToString(), "WorkloadManifest.json"), manifest.ExistingVersion.ToString(), manifest.ExistingFeatureBand))
185185
.Concat(expectedManifestNotUpdated.Select(
186-
manifestId => (manifestId.ToString(), Path.Combine(testDir, "dotnet", "sdk-manifests", currentFeatureBand, manifestId.ToString(), "WorkloadManifest.json"), currentFeatureBand)))
186+
manifestId => (manifestId.ToString(), Path.Combine(testDir, "dotnet", "sdk-manifests", currentFeatureBand, manifestId.ToString(), "WorkloadManifest.json"), "2.0.0", currentFeatureBand)))
187187
.ToArray();
188188

189189
var workloadManifestProvider = new MockManifestProvider(manifestInfo);
@@ -224,7 +224,7 @@ public void ItCanFallbackAndAdvertiseCorrectUpdate(bool useOfflineCache)
224224

225225
string manifestPath = Path.Combine(installedManifestDir6_0_200, testManifestName, _manifestFileName);
226226

227-
var workloadManifestProvider = new MockManifestProvider((testManifestName, manifestPath, "6.0.200"))
227+
var workloadManifestProvider = new MockManifestProvider((testManifestName, manifestPath, "1.0.0", "6.0.200"))
228228
{
229229
SdkFeatureBand = new SdkFeatureBand(sdkFeatureBand)
230230
};
@@ -302,7 +302,7 @@ public void ItCanFallbackWithNoUpdates(bool useOfflineCache)
302302
Directory.CreateDirectory(Path.Combine(emptyInstalledManifestsDir, testManifestName));
303303
File.WriteAllText(Path.Combine(emptyInstalledManifestsDir, testManifestName, _manifestFileName), GetManifestContent(new ManifestVersion("1.0.0")));
304304

305-
var workloadManifestProvider = new MockManifestProvider((testManifestName, Path.Combine(emptyInstalledManifestsDir, testManifestName, _manifestFileName), "6.0.200"))
305+
var workloadManifestProvider = new MockManifestProvider((testManifestName, Path.Combine(emptyInstalledManifestsDir, testManifestName, _manifestFileName), "1.0.0", "6.0.200"))
306306
{
307307
SdkFeatureBand = new SdkFeatureBand(sdkFeatureBand)
308308
};

src/Tests/dotnet-workload-install.Tests/MockManifestProvider.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ namespace ManifestReaderTests
77
{
88
internal class MockManifestProvider : IWorkloadManifestProvider
99
{
10-
readonly (string name, string path, string featureBand)[] _manifests;
10+
readonly (string name, string path, string manifestVersion, string featureBand)[] _manifests;
1111

1212
public MockManifestProvider(params string[] manifestPaths)
1313
{
1414
_manifests = Array.ConvertAll(manifestPaths, mp =>
1515
{
1616
string manifestId = Path.GetFileNameWithoutExtension(Path.GetDirectoryName(mp));
17-
return (manifestId, mp, (string)null);
17+
return (manifestId, mp, (string)null, (string)null);
1818
});
1919
SdkFeatureBand = new SdkFeatureBand("6.0.100");
2020
}
2121

22-
public MockManifestProvider(params (string name, string path, string featureBand)[] manifests)
22+
public MockManifestProvider(params (string name, string path, string manifestVersion, string featureBand)[] manifests)
2323
{
2424
_manifests = manifests;
2525
SdkFeatureBand = new SdkFeatureBand("6.0.100");
@@ -33,14 +33,14 @@ public void RefreshWorkloadManifests() { }
3333

3434
public IEnumerable<ReadableWorkloadManifest> GetManifests()
3535
{
36-
foreach ((var id, var path, var featureBand) in _manifests)
36+
foreach ((var id, var path, var manifestVersion, var featureBand) in _manifests)
3737
{
3838
yield return new(
3939
id,
4040
Path.GetDirectoryName(path),
4141
path,
4242
featureBand ?? SdkFeatureBand.ToString(),
43-
string.Empty,
43+
manifestVersion,
4444
() => File.OpenRead(path),
4545
() => WorkloadManifestReader.TryOpenLocalizationCatalogForManifest(path)
4646
);

src/Tests/dotnet-workload-list.Tests/GivenDotnetWorkloadList.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public void GivenWorkloadsAreInstalledListIsNotEmpty()
5555
_reporter.Clear();
5656
var expectedWorkloads = new List<WorkloadId>() { new WorkloadId("mock-workload-1"), new WorkloadId("mock-workload-2"), new WorkloadId("mock-workload-3") };
5757
var workloadInstaller = new MockWorkloadRecordRepo(expectedWorkloads);
58-
var workloadResolver = WorkloadResolver.CreateForTests(new MockManifestProvider(("SampleManifest", _manifestPath, "6.0.100")), Directory.GetCurrentDirectory());
58+
var workloadResolver = WorkloadResolver.CreateForTests(new MockManifestProvider(("SampleManifest", _manifestPath, "5.0.0", "6.0.100")), Directory.GetCurrentDirectory());
5959
var command = new WorkloadListCommand(_parseResult, _reporter, workloadInstaller, "6.0.100", workloadResolver: workloadResolver);
6060
command.Execute();
6161

src/Tests/dotnet-workload-list.Tests/GivenWorkloadInstallerAndWorkloadsInstalled.cs

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using System.CommandLine;
5+
using System.Runtime.CompilerServices;
6+
using ManifestReaderTests;
57
using Microsoft.Deployment.DotNet.Releases;
68
using Microsoft.DotNet.Cli.NuGetPackageDownloader;
79
using Microsoft.DotNet.Cli.Workload.Install.Tests;
@@ -23,7 +25,7 @@ public class GivenInstalledWorkloadAndManifestUpdater : SdkTest
2325
private WorkloadListCommand _workloadListCommand;
2426
private string _testDirectory;
2527

26-
private List<ManifestUpdateWithWorkloads> _mockManifestUpdates;
28+
private List<(TestManifestUpdate update, WorkloadCollection workloads)> _mockManifestUpdates;
2729

2830
private MockNuGetPackageDownloader _nugetDownloader;
2931
private string _dotnetRoot;
@@ -32,7 +34,12 @@ public GivenInstalledWorkloadAndManifestUpdater(ITestOutputHelper log) : base(lo
3234
{
3335
}
3436

35-
private void Setup(string identifier)
37+
private IEnumerable<ManifestUpdateWithWorkloads> GetManifestUpdatesForMock()
38+
{
39+
return _mockManifestUpdates.Select(u => new ManifestUpdateWithWorkloads(u.update.ToManifestVersionUpdate(), u.workloads));
40+
}
41+
42+
private void Setup([CallerMemberName] string identifier = "")
3643
{
3744
_testDirectory = _testAssetsManager.CreateTestDirectory(identifier: identifier).Path;
3845
_dotnetRoot = Path.Combine(_testDirectory, "dotnet");
@@ -42,8 +49,10 @@ private void Setup(string identifier)
4249
_mockManifestUpdates = new()
4350
{
4451
new(
45-
new ManifestVersionUpdate(
52+
new TestManifestUpdate(
4653
new ManifestId("manifest1"),
54+
new ManifestVersion(CurrentSdkVersion),
55+
currentSdkFeatureBand.ToString(),
4756
new ManifestVersion(UpdateAvailableVersion),
4857
currentSdkFeatureBand.ToString()),
4958
new WorkloadCollection
@@ -56,8 +65,10 @@ private void Setup(string identifier)
5665
WorkloadDefinitionKind.Dev, null, null, null)
5766
}),
5867
new(
59-
new ManifestVersionUpdate(
68+
new TestManifestUpdate(
6069
new ManifestId("manifest-other"),
70+
new ManifestVersion(CurrentSdkVersion),
71+
currentSdkFeatureBand.ToString(),
6172
new ManifestVersion("7.0.101"),
6273
currentSdkFeatureBand.ToString()),
6374
new WorkloadCollection
@@ -68,8 +79,10 @@ private void Setup(string identifier)
6879
WorkloadDefinitionKind.Dev, null, null, null)
6980
}),
7081
new(
71-
new ManifestVersionUpdate(
82+
new TestManifestUpdate(
7283
new ManifestId("manifest-older-version"),
84+
new ManifestVersion(CurrentSdkVersion),
85+
currentSdkFeatureBand.ToString(),
7386
new ManifestVersion("6.0.100"),
7487
currentSdkFeatureBand.ToString()),
7588
new WorkloadCollection
@@ -86,21 +99,31 @@ private void Setup(string identifier)
8699
"dotnet", "workload", "list", "--machine-readable", InstallingWorkloadCommandParser.VersionOption.Name, "7.0.100"
87100
});
88101

102+
103+
var manifestProvider = new MockManifestProvider(_mockManifestUpdates.Select(u =>
104+
{
105+
string manifestFile = Path.Combine(_testDirectory, u.update.ManifestId.ToString() + ".json");
106+
File.WriteAllText(manifestFile, GivenWorkloadManifestUpdater.GetManifestContent(u.update.ExistingVersion));
107+
return (u.update.ManifestId.ToString(), manifestFile, u.update.ExistingVersion.ToString(), u.update.ExistingFeatureBand.ToString());
108+
}).ToArray());
109+
var workloadResolver = WorkloadResolver.CreateForTests(manifestProvider, _dotnetRoot);
110+
89111
_workloadListCommand = new WorkloadListCommand(
90112
listParseResult,
91113
_reporter,
92114
nugetPackageDownloader: _nugetDownloader,
93-
workloadManifestUpdater: new MockWorkloadManifestUpdater(_mockManifestUpdates),
115+
workloadManifestUpdater: new MockWorkloadManifestUpdater(GetManifestUpdatesForMock()),
94116
userProfileDir: _testDirectory,
95117
currentSdkVersion: CurrentSdkVersion,
96118
dotnetDir: _dotnetRoot,
97-
workloadRecordRepo: new MockMatchingFeatureBandInstallationRecordRepository());
119+
workloadRecordRepo: new MockMatchingFeatureBandInstallationRecordRepository(),
120+
workloadResolver: workloadResolver);
98121
}
99122

100123
[Fact]
101124
public void ItShouldGetAvailableUpdate()
102125
{
103-
Setup(nameof(ItShouldGetAvailableUpdate));
126+
Setup();
104127
WorkloadListCommand.UpdateAvailableEntry[] result =
105128
_workloadListCommand.GetUpdateAvailable(new List<WorkloadId> { new("xamarin-android") }).ToArray();
106129

@@ -114,7 +137,7 @@ public void ItShouldGetAvailableUpdate()
114137
[Fact]
115138
public void ItShouldGetListOfWorkloadWithCurrentSdkVersionBand()
116139
{
117-
Setup(nameof(ItShouldGetListOfWorkloadWithCurrentSdkVersionBand));
140+
Setup();
118141
_workloadListCommand.Execute();
119142
_reporter.Lines.Should().Contain(c => c.Contains("\"installed\":[\"xamarin-android\"]"));
120143
}
@@ -129,7 +152,7 @@ public void GivenLowerTargetVersionItShouldThrow()
129152
}),
130153
_reporter,
131154
nugetPackageDownloader: _nugetDownloader,
132-
workloadManifestUpdater: new MockWorkloadManifestUpdater(_mockManifestUpdates),
155+
workloadManifestUpdater: new MockWorkloadManifestUpdater(null),
133156
userProfileDir: _testDirectory,
134157
currentSdkVersion: CurrentSdkVersion,
135158
dotnetDir: _dotnetRoot,
@@ -149,7 +172,7 @@ public void GivenSameLowerTargetVersionBandItShouldNotThrow()
149172
}),
150173
_reporter,
151174
nugetPackageDownloader: _nugetDownloader,
152-
workloadManifestUpdater: new MockWorkloadManifestUpdater(_mockManifestUpdates),
175+
workloadManifestUpdater: new MockWorkloadManifestUpdater(null),
153176
userProfileDir: _testDirectory,
154177
currentSdkVersion: "6.0.101",
155178
dotnetDir: _dotnetRoot,

0 commit comments

Comments
 (0)