Exemplo n.º 1
0
        public async Task InstalledPackagesMultiLibsSamePackage()
        {
            // Install the same package in 2 different libraries
            using (var eval = await _workflow.RSession.BeginEvaluationAsync()) {
                await TestRepositories.SetLocalRepoAsync(eval, _repoPath);

                await TestLibraries.SetLocalLibsAsync(eval, _libPath);
                await InstallPackageAsync(eval, TestPackages.RtvsLib1Description.Package, _libPath);

                await TestLibraries.SetLocalLibsAsync(eval, _lib2Path);
                await InstallPackageAsync(eval, TestPackages.RtvsLib1Description.Package, _lib2Path);

                await TestLibraries.SetLocalLibsAsync(eval, _libPath, _lib2Path);
            }

            var result = await _workflow.Packages.GetInstalledPackagesAsync();

            ValidateRtvslib1Installed(result, _libPath);

            using (var eval = await _workflow.RSession.BeginEvaluationAsync()) {
                await TestLibraries.SetLocalLibsAsync(eval, _lib2Path, _libPath);
            }

            result = await _workflow.Packages.GetInstalledPackagesAsync();

            ValidateRtvslib1Installed(result, _lib2Path);
        }
Exemplo n.º 2
0
        public async Task LoadAndUnloadPackage()
        {
            using (var eval = await _workflow.RSession.BeginEvaluationAsync()) {
                await TestRepositories.SetLocalRepoAsync(eval, _repoPath);

                await TestLibraries.SetLocalLibsAsync(eval, _libPath);
                await InstallPackageAsync(eval, TestPackages.RtvsLib1Description.Package, _libPath);
            }

            await EvaluateCode("func1();", expectedError : "Error: could not find function \"func1\"");

            await _workflow.Packages.LoadPackageAsync(TestPackages.RtvsLib1Description.Package, null);

            await EvaluateCode("func1();", expectedResult : "func1");

            var loaded = await _workflow.Packages.GetLoadedPackagesAsync();

            loaded.Should().Contain("rtvslib1");

            await _workflow.Packages.UnloadPackageAsync(TestPackages.RtvsLib1Description.Package);

            await EvaluateCode("func1();", expectedError : "Error: could not find function \"func1\"");

            loaded = await _workflow.Packages.GetLoadedPackagesAsync();

            loaded.Should().NotContain("rtvslib1");
        }
 public PackageManagerIntegrationTest(IServiceContainer services, TestMethodFixture testMethod, TestFilesFixture testFiles)
 {
     _services         = services;
     _workflowProvider = _services.GetService <TestRInteractiveWorkflowProvider>();
     _repoPath         = TestRepositories.GetRepoPath(testFiles);
     _libPath          = Path.Combine(testFiles.LibraryDestinationPath, testMethod.MethodInfo.Name);
     _lib2Path         = Path.Combine(testFiles.Library2DestinationPath, testMethod.MethodInfo.Name);
     Directory.CreateDirectory(_libPath);
     Directory.CreateDirectory(_lib2Path);
 }
        public async Task LibraryPaths()
        {
            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _repoPath);

            await TestLibraries.SetLocalLibsAsync(_workflow.RSession, _libPath);

            var result = await _workflow.Packages.GetLibraryPathAsync();

            result.Should().Be(_libPath.ToRPath());
        }
Exemplo n.º 5
0
 public PackageManagerIntegrationTest(RComponentsMefCatalogFixture catalog, TestMethodFixture testMethod, TestFilesFixture testFiles)
 {
     _exportProvider   = catalog.CreateExportProvider();
     _workflowProvider = _exportProvider.GetExportedValue <TestRInteractiveWorkflowProvider>();
     _testMethod       = testMethod.MethodInfo;
     _repoPath         = TestRepositories.GetRepoPath(testFiles);
     _libPath          = Path.Combine(testFiles.LibraryDestinationPath, _testMethod.Name);
     _lib2Path         = Path.Combine(testFiles.Library2DestinationPath, _testMethod.Name);
     Directory.CreateDirectory(_libPath);
     Directory.CreateDirectory(_lib2Path);
 }
Exemplo n.º 6
0
        public async Task LibraryPaths()
        {
            using (var eval = await _workflow.RSession.BeginEvaluationAsync()) {
                await TestRepositories.SetLocalRepoAsync(eval, _repoPath);

                await TestLibraries.SetLocalLibsAsync(eval, _libPath);
            }

            var result = await _workflow.Packages.GetLibraryPathsAsync();

            result[0].Should().Be(_libPath.ToRPath());
        }
        public async Task InstallPackageDefaultLib()
        {
            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _repoPath);

            await TestLibraries.SetLocalLibsAsync(_workflow.RSession, _libPath);

            await _workflow.Packages.InstallPackageAsync(TestPackages.RtvsLib1Description.Package, null);

            var installed = await _workflow.Packages.GetInstalledPackagesAsync();

            ValidateRtvslib1Installed(installed, _libPath);
        }
        public async Task InstalledPackagesCustomLibPathOnePackage()
        {
            // Setup library path to point to the test folder, install a package into it
            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _repoPath);

            await TestLibraries.SetLocalLibsAsync(_workflow.RSession, _libPath);

            await InstallPackageAsync(_workflow.RSession, TestPackages.RtvsLib1Description.Package, _libPath);

            var result = await _workflow.Packages.GetInstalledPackagesAsync();

            ValidateRtvslib1Installed(result, _libPath);
        }
Exemplo n.º 9
0
        public async Task InitializeAsync()
        {
            var settings = _services.GetService <IRSettings>();
            await _workflow.RSessions.TrySwitchBrokerAsync(nameof(RPackageManagerViewModelTest));

            await _workflow.RSession.EnsureHostStartedAsync(new RHostStartupInfo(settings.CranMirror, codePage : settings.RCodePage), null, 50000);

            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _testFiles);

            await TestLibraries.SetLocalLibraryAsync(_workflow.RSession, _testMethod, _testFiles);

            _packageManagerToolWindow = (TestToolWindow) await InUI(() => ((IRInteractiveWorkflowVisual)_workflow).ToolWindows.Packages());

            _packageManagerViewModel = (IRPackageManagerViewModel)_packageManagerToolWindow.ViewModel;
        }
Exemplo n.º 10
0
        public async Task InitializeAsync()
        {
            var settings = _services.GetService <IRSettings>();
            await _workflow.RSessions.TrySwitchBrokerAsync(nameof(RPackageManagerViewModelTest));

            await _workflow.RSession.EnsureHostStartedAsync(new RHostStartupInfo(settings.CranMirror, codePage : settings.RCodePage), null, 50000);

            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _testFiles);

            await TestLibraries.SetLocalLibraryAsync(_workflow.RSession, _testMethod, _testFiles);

            var componentContainerFactory = _services.GetService <IRPackageManagerVisualComponentContainerFactory>();

            _packageManagerComponent = await InUI(() => _workflow.Packages.GetOrCreateVisualComponent(componentContainerFactory));

            _packageManagerViewModel = await InUI(() => _packageManagerComponent.Control.DataContext) as IRPackageManagerViewModel;
        }
Exemplo n.º 11
0
        public async Task SwitchFromInstalledToAvailableWhileLoadingInstalled()
        {
            // We need real repo for this test
            await TestRepositories.SetCranRepoAsync(_workflow.RSession);

            _packageManagerViewModel.SwitchToLoadedPackagesAsync().DoNotWait();
            var t1 = _packageManagerViewModel.SwitchToInstalledPackagesAsync();
            var t2 = _packageManagerViewModel.SwitchToAvailablePackagesAsync();

            await t1;

            _packageManagerViewModel.IsLoading.Should().BeTrue();

            await t2;

            _packageManagerViewModel.IsLoading.Should().BeFalse();
        }
Exemplo n.º 12
0
        public async Task GetLoadedPackages()
        {
            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _repoPath);

            await TestLibraries.SetLocalLibsAsync(_workflow.RSession, _libPath);

            await InstallPackageAsync(_workflow.RSession, TestPackages.RtvsLib1Description.Package, _libPath);

            var results = await _workflow.Packages.GetLoadedPackagesAsync();

            results.Should().NotContain(new[] {
                "rtvslib1", ".GlobalEnv", "Autoloads",
            });
            results.Should().Contain(new[] {
                "stats", "graphics", "grDevices", "grDevices",
                "utils", "datasets", "methods", "base",
            });
        }
Exemplo n.º 13
0
        public async Task InstallAndUninstallPackageSpecifiedLib()
        {
            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _repoPath);

            await _workflow.Packages.InstallPackageAsync(TestPackages.RtvsLib1Description.Package, _libPath);

            await TestLibraries.SetLocalLibsAsync(_workflow.RSession, _libPath);

            var installed = await _workflow.Packages.GetInstalledPackagesAsync();

            ValidateRtvslib1Installed(installed, _libPath);

            await _workflow.Packages.UninstallPackageAsync(TestPackages.RtvsLib1Description.Package, _libPath);

            installed = await _workflow.Packages.GetInstalledPackagesAsync();

            installed.Should().NotContain(pkg => pkg.Package == TestPackages.RtvsLib1Description.Package && pkg.LibPath == _libPath.ToRPath());
        }
Exemplo n.º 14
0
        public async Task AvailablePackagesLocalRepo()
        {
            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _repoPath);

            var result = await _workflow.Packages.GetAvailablePackagesAsync();

            result.Should().HaveCount(3);

            var rtvslib1Expected = TestPackages.CreateRtvsLib1();

            rtvslib1Expected.Title       = null;
            rtvslib1Expected.Built       = null;
            rtvslib1Expected.Author      = null;
            rtvslib1Expected.Description = null;
            rtvslib1Expected.Repository  = $"file:///{_repoPath.ToRPath()}/src/contrib";

            var rtvslib1Actual = result.SingleOrDefault(pkg => pkg.Package == TestPackages.RtvsLib1Description.Package);

            rtvslib1Actual.ShouldBeEquivalentTo(rtvslib1Expected);
        }
Exemplo n.º 15
0
        public async Task InitializeAsync()
        {
            var settings = _exportProvider.GetExportedValue <IRSettings>();
            await _workflow.RSessions.TrySwitchBrokerAsync(settings.LastActiveConnection.Name, settings.LastActiveConnection.Path);

            await _workflow.RSession.StartHostAsync(new RHostStartupInfo {
                Name                      = _testMethod.Name,
                CranMirrorName            = settings.CranMirror,
                RHostCommandLineArguments = settings.LastActiveConnection.RCommandLineArguments,
                CodePage                  = settings.RCodePage,
            }, null, 50000);

            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _testFiles);

            await TestLibraries.SetLocalLibraryAsync(_workflow.RSession, _testMethod, _testFiles);

            var componentContainerFactory = _exportProvider.GetExportedValue <IRPackageManagerVisualComponentContainerFactory>();

            _packageManagerComponent = await InUI(() => _workflow.Packages.GetOrCreateVisualComponent(componentContainerFactory));

            _packageManagerViewModel = await InUI(() => _packageManagerComponent.Control.DataContext) as IRPackageManagerViewModel;
        }
Exemplo n.º 16
0
        public async Task InitializeAsync()
        {
            var settings = _exportProvider.GetExportedValue <IRSettings>();
            await _workflow.RSession.StartHostAsync(new RHostStartupInfo {
                Name      = _testMethod.Name,
                RBasePath = settings.RBasePath,
                RHostCommandLineArguments = settings.RCommandLineArguments,
                CranMirrorName            = settings.CranMirror,
                CodePage = settings.RCodePage,
            }, null, 50000);

            using (var eval = await _workflow.RSession.BeginEvaluationAsync()) {
                await TestRepositories.SetLocalRepoAsync(eval, _testFiles);

                await TestLibraries.SetLocalLibraryAsync(eval, _testMethod, _testFiles);
            }

            var componentContainerFactory = _exportProvider.GetExportedValue <IRPackageManagerVisualComponentContainerFactory>();

            _packageManagerComponent = await InUI(() => _workflow.Packages.GetOrCreateVisualComponent(componentContainerFactory));

            _packageManagerViewModel = await InUI(() => _packageManagerComponent.Control.DataContext) as IRPackageManagerViewModel;
        }