public Output(TestMethodFixture testMethod) { _testMethod = testMethod.MethodInfo; _brokerConnector = new RHostBrokerConnector(); _brokerConnector.SwitchToLocalBroker(nameof(RSessionTest) + nameof(Output)); _session = new RSession(0, _brokerConnector, () => { }); }
public IntellisenseTest(REditorApplicationMefCatalogFixture catalog, EditorHostMethodFixture editorHost) : base(catalog) { _editorHost = editorHost; _brokerConnector = new RHostBrokerConnector(); _brokerConnector.SwitchToLocalBroker(nameof(IntellisenseTest)); _sessionProvider = _exportProvider.GetExportedValue <IRSessionProvider>(); }
public TestRInteractiveWorkflowProvider(IRSessionProvider sessionProvider , IConnectionManagerProvider connectionManagerProvider , IRHistoryProvider historyProvider , IRPackageManagerProvider packagesProvider , IRPlotManagerProvider plotsProvider , IActiveWpfTextViewTracker activeTextViewTracker , IDebuggerModeTracker debuggerModeTracker // Required for the tests that create TestRInteractiveWorkflowProvider explicitly , [Import(AllowDefault = true)] IRHostBrokerConnector brokerConnector , ICoreShell shell , IRSettings settings , [Import(AllowDefault = true)] IWorkspaceServices wss ) { _sessionProvider = sessionProvider; _connectionManagerProvider = connectionManagerProvider; _historyProvider = historyProvider; _packagesProvider = packagesProvider; _plotsProvider = plotsProvider; _activeTextViewTracker = activeTextViewTracker; _debuggerModeTracker = debuggerModeTracker; _brokerConnector = brokerConnector; _shell = shell; _settings = settings; _wss = wss; }
public static IRInteractiveWorkflowProvider Create(string brokerConnectorName , IRSessionProvider sessionProvider = null , IConnectionManagerProvider connectionsProvider = null , IRHistoryProvider historyProvider = null , IRPackageManagerProvider packagesProvider = null , IRPlotManagerProvider plotsProvider = null , IActiveWpfTextViewTracker activeTextViewTracker = null , IDebuggerModeTracker debuggerModeTracker = null , IRHostBrokerConnector brokerConnector = null , ICoreShell shell = null , IRSettings settings = null , IWorkspaceServices wss = null) { sessionProvider = sessionProvider ?? new RSessionProviderMock(); connectionsProvider = connectionsProvider ?? ConnectionManagerProviderStubFactory.CreateDefault(); historyProvider = historyProvider ?? RHistoryProviderStubFactory.CreateDefault(); packagesProvider = packagesProvider ?? RPackageManagerProviderStubFactory.CreateDefault(); plotsProvider = plotsProvider ?? RPlotManagerProviderStubFactory.CreateDefault(); activeTextViewTracker = activeTextViewTracker ?? new ActiveTextViewTrackerMock(string.Empty, RContentTypeDefinition.ContentType); debuggerModeTracker = debuggerModeTracker ?? new VsDebuggerModeTracker(); brokerConnector = brokerConnector ?? new RHostBrokerConnectorMock(); shell = shell ?? VsAppShell.Current; settings = settings ?? RToolsSettings.Current; return(new TestRInteractiveWorkflowProvider( sessionProvider, connectionsProvider, historyProvider, packagesProvider, plotsProvider, activeTextViewTracker, debuggerModeTracker, brokerConnector, shell, settings, wss) { BrokerName = brokerConnectorName }); }
public IdeGraphicsDeviceTest(GraphicsDeviceTestFilesFixture files, TestMethodFixture testMethod) { _files = files; _testMethod = testMethod.MethodInfo; _brokerConnector = new RHostBrokerConnector(); _brokerConnector.SwitchToLocalBroker(nameof(IdeGraphicsDeviceTest)); }
public async Task <IRSessionEvaluation> BeginEvaluationAsync(IRHostBrokerConnector brokerConnector, RHostStartupInfo startupInfo, CancellationToken cancellationToken = default(CancellationToken)) { var session = GetOrCreate(Guid.NewGuid(), brokerConnector); cancellationToken.ThrowIfCancellationRequested(); try { await session.StartHostAsync(new RHostStartupInfo { Name = "IsolatedRHost" + session.Id, CranMirrorName = startupInfo.CranMirrorName, CodePage = startupInfo.CodePage }, null); cancellationToken.ThrowIfCancellationRequested(); var evaluation = await session.BeginEvaluationAsync(cancellationToken); cancellationToken.ThrowIfCancellationRequested(); return(new IsolatedRSessionEvaluation(session, evaluation)); } finally { if (cancellationToken.IsCancellationRequested) { await session.StopHostAsync(); } } }
public ConnectionManager(IStatusBar statusBar, IRSessionProvider sessionProvider, IRSettings settings, IRInteractiveWorkflow interactiveWorkflow) { _statusBar = statusBar; _sessionProvider = sessionProvider; _brokerConnector = interactiveWorkflow.BrokerConnector; _settings = settings; _shell = interactiveWorkflow.Shell; _statusBarViewModel = new ConnectionStatusBarViewModel(this, interactiveWorkflow.Shell); _disposableBag = DisposableBag.Create <ConnectionManager>() .Add(_statusBarViewModel) .Add(() => _brokerConnector.BrokerChanged -= BrokerChanged) .Add(() => interactiveWorkflow.RSession.Connected -= RSessionOnConnected) .Add(() => interactiveWorkflow.RSession.Disconnected -= RSessionOnDisconnected); _brokerConnector.BrokerChanged += BrokerChanged; // TODO: Temporary solution - need to separate RHost errors and network connection issues interactiveWorkflow.RSession.Connected += RSessionOnConnected; interactiveWorkflow.RSession.Disconnected += RSessionOnDisconnected; _shell.DispatchOnUIThread(() => _disposableBag.Add(_statusBar.AddItem(new ConnectionStatusBar { DataContext = _statusBarViewModel }))); // Get initial values var connections = GetConnectionsFromSettings(); _connections = new ConcurrentDictionary <Uri, IConnection>(connections); UpdateRecentConnections(); SwitchBrokerToLastConnection(); }
public RInteractiveWorkflow(IRSessionProvider sessionProvider , IConnectionManagerProvider connectionsProvider , IRHistoryProvider historyProvider , IRPackageManagerProvider packagesProvider , IRPlotManagerProvider plotsProvider , IActiveWpfTextViewTracker activeTextViewTracker , IDebuggerModeTracker debuggerModeTracker , IRHostBrokerConnector brokerConnector , ICoreShell coreShell , IRSettings settings , Action onDispose) { _activeTextViewTracker = activeTextViewTracker; _debuggerModeTracker = debuggerModeTracker; _settings = settings; _onDispose = onDispose; Shell = coreShell; BrokerConnector = brokerConnector; RSession = sessionProvider.GetOrCreate(GuidList.InteractiveWindowRSessionGuid, brokerConnector); Connections = connectionsProvider.CreateConnectionManager(this); History = historyProvider.CreateRHistory(this); Packages = packagesProvider.CreateRPackageManager(sessionProvider, settings, this); Plots = plotsProvider.CreatePlotManager(settings, this); _operations = new RInteractiveWorkflowOperations(this, _debuggerModeTracker, Shell); _activeTextViewTracker.LastActiveTextViewChanged += LastActiveTextViewChanged; RSession.Disconnected += RSessionDisconnected; _debuggerModeTracker.EnterBreakMode += DebuggerEnteredBreakMode; _debuggerModeTracker.LeaveBreakMode += DebuggerLeftBreakMode; }
public ViewersTest() { _sessionProvider = VsAppShell.Current.ExportProvider.GetExportedValue <IRSessionProvider>(); _aggregator = VsAppShell.Current.ExportProvider.GetExportedValue <IObjectDetailsViewerAggregator>(); _workflow = VsAppShell.Current.ExportProvider.GetExportedValue <IRInteractiveWorkflowProvider>().GetOrCreate(); _brokerConnector = _workflow.BrokerConnector; }
public BlobsTest(TestMethodFixture testMethod) { _testMethod = testMethod.MethodInfo; _brokerConnector = new RHostBrokerConnector(); _brokerConnector.SwitchToLocalBroker(nameof(BlobsTest)); _sessionProvider = new RSessionProvider(); _session = _sessionProvider.GetOrCreate(Guid.NewGuid(), _brokerConnector); }
public Blobs(TestMethodFixture testMethod, TaskObserverMethodFixture taskObserver) { _taskObserver = taskObserver; _testMethod = testMethod.MethodInfo; _brokerConnector = new RHostBrokerConnector(); _brokerConnector.SwitchToLocalBroker(nameof(RSessionTest) + nameof(Blobs)); _session = new RSession(0, _brokerConnector, () => { }); }
public ReadInput(TestMethodFixture testMethod, TaskObserverMethodFixture taskObserver) { _taskObserver = taskObserver; _testMethod = testMethod.MethodInfo; _brokerConnector = new RHostBrokerConnector(); _brokerConnector.SwitchToLocalBroker(nameof(RSessionTest) + nameof(ReadInput)); _session = new RSession(0, _brokerConnector, () => { }); _callback = new RSessionCallbackStub(); }
public IRSession GetOrCreate(Guid guid, IRHostBrokerConnector brokerConnector) { IRSession session; if (!_sessions.TryGetValue(guid, out session)) { session = new RSessionMock(); _sessions[guid] = session; } return(session); }
public RHostScript(IRSessionProvider sessionProvider, IRHostBrokerConnector brokerConnector, IRSessionCallback clientApp = null) { SessionProvider = sessionProvider; Session = SessionProvider.GetOrCreate(GuidList.InteractiveWindowRSessionGuid, brokerConnector); if (Session.IsHostRunning) { Session.StopHostAsync().Wait(); } Session.StartHostAsync(new RHostStartupInfo { Name = "RHostScript", CranMirrorName = RToolsSettings.Current.CranMirror, CodePage = RToolsSettings.Current.RCodePage, RHostCommandLineArguments = RToolsSettings.Current.LastActiveConnection.RCommandLineArguments }, clientApp ?? new RHostClientTestApp(), 50000).Wait(); }
public RSession(int id, IRHostBrokerConnector brokerConnector, Action onDispose) { Id = id; BrokerConnector = brokerConnector; _onDispose = onDispose; _disposeToken = DisposeToken.Create <RSession>(); _disableMutatingOnReadConsole = new CountdownDisposable(() => { if (!_delayedMutatedOnReadConsole) { return; } _delayedMutatedOnReadConsole = false; Task.Run(() => Mutated?.Invoke(this, EventArgs.Empty)); }); _afterHostStartedTask = TaskUtilities.CreateCanceled(new RHostDisconnectedException()); }
public IRSession GetOrCreate(Guid guid, IRHostBrokerConnector brokerConnector) { _disposeToken.ThrowIfDisposed(); return(_sessions.GetOrAdd(guid, id => new RSession(Interlocked.Increment(ref _sessionCounter), brokerConnector, () => DisposeSession(guid)))); }
public BrokerFixture() { BrokerConnector = new RHostBrokerConnector(); BrokerConnector.SwitchToLocalBroker(this.GetType().Name); }
private void DisposeInstance(IRHostBrokerConnector brokerConnector) { brokerConnector.Dispose(); _instanceLazy = null; }
public VsRHostScript(IRSessionProvider sessionProvider, IRHostBrokerConnector brokerConnector, IRSessionCallback clientApp = null) : base(sessionProvider, brokerConnector, clientApp) { }
public RSessionTest(TestMethodFixture testMethod) { _testMethod = testMethod.MethodInfo; _brokerConnector = new RHostBrokerConnector(); _brokerConnector.SwitchToLocalBroker(nameof(RSessionTest)); }
public RHostScript(IExportProvider exportProvider, IRHostBrokerConnector brokerConnector, IRSessionCallback clientApp = null) : this(exportProvider.GetExportedValue <IRSessionProvider>(), brokerConnector, clientApp) { }
public IntelliSenseRSession(ICoreShell coreShell, IRSessionProvider sessionProvider, IRInteractiveWorkflowProvider workflowProvider) { _coreShell = coreShell; _sessionProvider = sessionProvider; _brokerConnector = workflowProvider.GetOrCreate().BrokerConnector; }
public XamlGraphicsDeviceTest(TestMethodFixture testMethod) { _testMethod = testMethod.MethodInfo; _brokerConnector = new RHostBrokerConnector(); _brokerConnector.SwitchToLocalBroker(nameof(XamlGraphicsDeviceTest)); }
public HostBasedInteractiveTest(IRHostBrokerConnector brokerConnector, IRSessionCallback callback = null) { HostScript = new VsRHostScript(SessionProvider, brokerConnector, callback); }
public VariableRHostScript(IRSessionProvider sessionProvider, IRHostBrokerConnector brokerConnector) : base(sessionProvider, brokerConnector) { }
public Task <IRSessionEvaluation> BeginEvaluationAsync(IRHostBrokerConnector hostFactory, RHostStartupInfo startupInfo, CancellationToken cancellationToken = new CancellationToken()) => new RSessionMock().BeginEvaluationAsync(cancellationToken);
public RSessionProviderTest() { _brokerConnector = new RHostBrokerConnector(); _brokerConnector.SwitchToLocalBroker(nameof(RSessionProviderTest)); }
public static bool IsRemoteConnection(this IRHostBrokerConnector brokerConnector) { // Any URI the does not start with 'file' is remote. return(!brokerConnector.BrokerUri.Scheme.StartsWithIgnoreCase("file")); }