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); }
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()); }
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); }
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); }
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; }
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; }
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(); }
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", }); }
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()); }
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); }
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; }
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; }