void TestMultiplePackRoots(bool defaultExists, bool additionalExists) { var testDirectory = _testAssetsManager.CreateTestDirectory(identifier: defaultExists.ToString() + "_" + additionalExists.ToString()).Path; var dotnetRoot = Path.Combine(testDirectory, "dotnet"); Directory.CreateDirectory(dotnetRoot); var additionalRoot = Path.Combine(testDirectory, "additionalPackRoot"); Directory.CreateDirectory(additionalRoot); var defaultPackPath = Path.Combine(dotnetRoot, "packs", "Xamarin.Android.Sdk", "8.4.7"); var additionalPackPath = Path.Combine(additionalRoot, "packs", "Xamarin.Android.Sdk", "8.4.7"); if (defaultExists) { Directory.CreateDirectory(defaultPackPath); } if (additionalExists) { Directory.CreateDirectory(additionalPackPath); } var manifestProvider = new FakeManifestProvider(ManifestPath); var resolver = WorkloadResolver.CreateForTests(manifestProvider, new[] { additionalRoot, dotnetRoot }); var pack = resolver.TryGetPackInfo("Xamarin.Android.Sdk"); pack.Should().NotBeNull(); string expectedPath = additionalExists ? additionalPackPath : defaultPackPath; pack.Path.Should().Be(expectedPath); }
public void UnresolvedAliasedPackPath() { var manifestProvider = new FakeManifestProvider(ManifestPath); var resolver = WorkloadResolver.CreateForTests(manifestProvider, fakeRootPath, currentRuntimeIdentifiers: new[] { "fake-platform" }); resolver.ReplaceFilesystemChecksForTest(_ => true, _ => true); var buildToolsPack = resolver.GetInstalledWorkloadPacksOfKind(WorkloadPackKind.Sdk).FirstOrDefault(pack => pack.Id == "Xamarin.Android.BuildTools"); buildToolsPack.Should().BeNull(); }
public void CanSuggestSimpleWorkload() { var manifestProvider = new FakeManifestProvider(Path.Combine("Manifests", "Sample.json")); var resolver = WorkloadResolver.CreateForTests(manifestProvider, fakeRootPath, ManifestTests.TEST_RUNTIME_IDENTIFIER_CHAIN); FakeFileSystemChecksSoThesePackagesAppearInstalled(resolver, "Xamarin.Android.Sdk", "Xamarin.Android.BuildTools"); var suggestions = resolver.GetWorkloadSuggestionForMissingPacks(new[] { "Mono.Android.Sdk" }); suggestions.Count().Should().Be(1); suggestions.First().Id.Should().Be("xamarin-android-build"); }
public void CanSuggestSimpleWorkload() { var manifestProvider = new FakeManifestProvider(ManifestPath); var resolver = WorkloadResolver.CreateForTests(manifestProvider, new[] { fakeRootPath }); FakeFileSystemChecksSoThesePackagesAppearInstalled(resolver, "Xamarin.Android.Sdk", "Xamarin.Android.BuildTools"); var suggestions = resolver.GetWorkloadSuggestionForMissingPacks(new[] { "Mono.Android.Sdk" }); suggestions.Count().Should().Be(1); suggestions.First().Id.Should().Be("xamarin-android-build"); }
public void AliasedPackPath() { var manifestProvider = new FakeManifestProvider(ManifestPath); var resolver = WorkloadResolver.CreateForTests(manifestProvider, fakeRootPath); resolver.ReplaceFilesystemChecksForTest(_ => true, _ => true); var buildToolsPack = resolver.GetInstalledWorkloadPacksOfKind(WorkloadPackKind.Sdk).FirstOrDefault(pack => pack.Id == "Xamarin.Android.BuildTools"); buildToolsPack.Should().NotBeNull(); buildToolsPack !.Id.ToString().Should().Be("Xamarin.Android.BuildTools"); buildToolsPack.Version.Should().Be("8.4.7"); buildToolsPack.Path.Should().Be(Path.Combine(fakeRootPath, "packs", "Xamarin.Android.BuildTools.Win64Host", "8.4.7")); }
public void AliasedPackPath() { var manifestProvider = new FakeManifestProvider(Path.Combine("Manifests", "Sample.json")); var resolver = new WorkloadResolver(manifestProvider, fakeRootPath); resolver.ReplaceFilesystemChecksForTest(_ => true, _ => true); resolver.ReplacePlatformIdsForTest(new[] { "win-x64", "*" }); var buildToolsPack = resolver.GetInstalledWorkloadPacksOfKind(WorkloadPackKind.Sdk).FirstOrDefault(pack => pack.Id == "Xamarin.Android.BuildTools"); buildToolsPack.Should().NotBeNull(); buildToolsPack.Id.Should().Be("Xamarin.Android.BuildTools"); buildToolsPack.Version.Should().Be("8.4.7"); buildToolsPack.Path.Should().Be(Path.Combine(fakeRootPath, "packs", "Xamarin.Android.BuildTools.Win64Host", "8.4.7")); }
public void CanSuggestSimpleWorkload() { var manifestProvider = new FakeManifestProvider(ManifestPath); var resolver = WorkloadResolver.CreateForTests(manifestProvider, fakeRootPath); FakeFileSystemChecksSoThesePackagesAppearInstalled(resolver, "Xamarin.Android.Sdk", "Xamarin.Android.BuildTools"); var suggestions = resolver.GetWorkloadSuggestionForMissingPacks( new[] { "Mono.Android.Sdk" }.Select(s => new WorkloadPackId(s)).ToList(), out var unsatisfiable); unsatisfiable.Count().Should().Be(0); suggestions.Should().NotBeNull(); suggestions !.Count().Should().Be(1); suggestions !.First().Id.ToString().Should().Be("xamarin-android-build"); }
public void CanSuggestWorkloadThatFulfillsTwoRequirements() { var manifestProvider = new FakeManifestProvider(Path.Combine("Manifests", "Sample.json")); var resolver = WorkloadResolver.CreateForTests(manifestProvider, fakeRootPath, ManifestTests.TEST_RUNTIME_IDENTIFIER_CHAIN); FakeFileSystemChecksSoThesePackagesAppearInstalled(resolver, //xamarin-android-build is fully installed "Xamarin.Android.Sdk", "Xamarin.Android.BuildTools", "Xamarin.Android.Framework", "Xamarin.Android.Runtime", "Mono.Android.Sdk"); var suggestions = resolver.GetWorkloadSuggestionForMissingPacks(new[] { "Xamarin.Android.Templates", "Xamarin.Android.LLVM.Aot.armv7a" }); suggestions.Count().Should().Be(1); suggestions.First().Id.Should().Be("xamarin-android-complete"); }
public void CanSuggestTwoWorkloadsToFulfilTwoRequirements() { var manifestProvider = new FakeManifestProvider(Path.Combine("Manifests", "Sample.json")); var resolver = WorkloadResolver.CreateForTests(manifestProvider, fakeRootPath, ManifestTests.TEST_RUNTIME_IDENTIFIER_CHAIN); FakeFileSystemChecksSoThesePackagesAppearInstalled(resolver, //xamarin-android-build is fully installed "Xamarin.Android.Sdk", "Xamarin.Android.BuildTools", "Xamarin.Android.Framework", "Xamarin.Android.Runtime", "Mono.Android.Sdk"); var suggestions = resolver.GetWorkloadSuggestionForMissingPacks(new[] { "Mono.Android.Runtime.x86", "Mono.Android.Runtime.Armv7a" }); suggestions.Count().Should().Be(2); suggestions.Should().Contain(s => s.Id == "xamarin-android-build-armv7a"); suggestions.Should().Contain(s => s.Id == "xamarin-android-build-x86"); }
public void GivenNonExistentPackRoot_ItIgnoresIt() { var testDirectory = _testAssetsManager.CreateTestDirectory().Path; var dotnetRoot = Path.Combine(testDirectory, "dotnet"); Directory.CreateDirectory(dotnetRoot); var additionalRoot = Path.Combine(testDirectory, "additionalPackRoot"); var defaultPackPath = Path.Combine(dotnetRoot, "packs", "Xamarin.Android.Sdk", "8.4.7"); Directory.CreateDirectory(defaultPackPath); var manifestProvider = new FakeManifestProvider(Path.Combine("Manifests", "Sample.json")); var resolver = WorkloadResolver.CreateForTests(manifestProvider, new[] { additionalRoot, dotnetRoot }); var pack = resolver.TryGetPackInfo("Xamarin.Android.Sdk"); pack.Should().NotBeNull(); pack.Path.Should().Be(defaultPackPath); }
public void CanSuggestWorkloadThatFulfillsTwoRequirements() { var manifestProvider = new FakeManifestProvider(ManifestPath); var resolver = WorkloadResolver.CreateForTests(manifestProvider, fakeRootPath); FakeFileSystemChecksSoThesePackagesAppearInstalled(resolver, //xamarin-android-build is fully installed "Xamarin.Android.Sdk", "Xamarin.Android.BuildTools", "Xamarin.Android.Framework", "Xamarin.Android.Runtime", "Mono.Android.Sdk"); var suggestions = resolver.GetWorkloadSuggestionForMissingPacks( new[] { "Xamarin.Android.Templates", "Xamarin.Android.LLVM.Aot.armv7a" }.Select(s => new WorkloadPackId(s)).ToList(), out var unsatisfiable); unsatisfiable.Count().Should().Be(0); suggestions.Should().NotBeNull(); suggestions !.Count().Should().Be(1); suggestions !.First().Id.ToString().Should().Be("xamarin-android-complete"); }
public void CanSuggestTwoWorkloadsToFulfilTwoRequirements() { var manifestProvider = new FakeManifestProvider(ManifestPath); var resolver = WorkloadResolver.CreateForTests(manifestProvider, fakeRootPath); FakeFileSystemChecksSoThesePackagesAppearInstalled(resolver, //xamarin-android-build is fully installed "Xamarin.Android.Sdk", "Xamarin.Android.BuildTools", "Xamarin.Android.Framework", "Xamarin.Android.Runtime", "Mono.Android.Sdk"); var suggestions = resolver.GetWorkloadSuggestionForMissingPacks( new[] { "Mono.Android.Runtime.x86", "Mono.Android.Runtime.Armv7a" }.Select(s => new WorkloadPackId(s)).ToList(), out var unsatisfiable); unsatisfiable.Count().Should().Be(0); suggestions.Should().NotBeNull(); suggestions !.Count().Should().Be(2); suggestions !.Should().Contain(s => s.Id == "xamarin-android-build-armv7a"); suggestions !.Should().Contain(s => s.Id == "xamarin-android-build-x86"); }
void TestMultiplePackRoots(bool defaultExists, bool additionalExists) { var testDirectory = _testAssetsManager.CreateTestDirectory(identifier: defaultExists.ToString() + "_" + additionalExists.ToString()).Path; var dotnetRoot = Path.Combine(testDirectory, "dotnet"); Directory.CreateDirectory(dotnetRoot); var additionalRoot = Path.Combine(testDirectory, "additionalPackRoot"); Directory.CreateDirectory(additionalRoot); var defaultPackPath = Path.Combine(dotnetRoot, "packs", "Xamarin.Android.Sdk", "8.4.7"); var additionalPackPath = Path.Combine(additionalRoot, "packs", "Xamarin.Android.Sdk", "8.4.7"); if (defaultExists) { Directory.CreateDirectory(defaultPackPath); } if (additionalExists) { Directory.CreateDirectory(additionalPackPath); } var manifestProvider = new FakeManifestProvider(ManifestPath); var resolver = WorkloadResolver.CreateForTests(manifestProvider, new[] { (additionalRoot, false), (dotnetRoot, true), ("other", true) });