Exemple #1
0
        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);
        }
Exemple #2
0
        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");
        }
Exemple #4
0
        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");
        }
Exemple #5
0
        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"));
        }
Exemple #6
0
        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"));
        }
Exemple #7
0
        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");
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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");
        }
Exemple #12
0
        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");
        }
Exemple #13
0
        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) });