Exemplo n.º 1
0
 public Output(TestMethodFixture testMethod)
 {
     _testMethod      = testMethod.MethodInfo;
     _brokerConnector = new RHostBrokerConnector();
     _brokerConnector.SwitchToLocalBroker(nameof(RSessionTest) + nameof(Output));
     _session = new RSession(0, _brokerConnector, () => { });
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 4
0
        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
            });
        }
Exemplo n.º 5
0
 public IdeGraphicsDeviceTest(GraphicsDeviceTestFilesFixture files, TestMethodFixture testMethod)
 {
     _files           = files;
     _testMethod      = testMethod.MethodInfo;
     _brokerConnector = new RHostBrokerConnector();
     _brokerConnector.SwitchToLocalBroker(nameof(IdeGraphicsDeviceTest));
 }
Exemplo n.º 6
0
        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();
                }
            }
        }
Exemplo n.º 7
0
        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();
        }
Exemplo n.º 8
0
        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;
        }
Exemplo n.º 9
0
        public ViewersTest()
        {
            _sessionProvider = VsAppShell.Current.ExportProvider.GetExportedValue <IRSessionProvider>();
            _aggregator      = VsAppShell.Current.ExportProvider.GetExportedValue <IObjectDetailsViewerAggregator>();

            _workflow        = VsAppShell.Current.ExportProvider.GetExportedValue <IRInteractiveWorkflowProvider>().GetOrCreate();
            _brokerConnector = _workflow.BrokerConnector;
        }
Exemplo n.º 10
0
 public BlobsTest(TestMethodFixture testMethod)
 {
     _testMethod      = testMethod.MethodInfo;
     _brokerConnector = new RHostBrokerConnector();
     _brokerConnector.SwitchToLocalBroker(nameof(BlobsTest));
     _sessionProvider = new RSessionProvider();
     _session         = _sessionProvider.GetOrCreate(Guid.NewGuid(), _brokerConnector);
 }
Exemplo n.º 11
0
 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, () => { });
 }
Exemplo n.º 12
0
 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();
 }
Exemplo n.º 13
0
        public IRSession GetOrCreate(Guid guid, IRHostBrokerConnector brokerConnector)
        {
            IRSession session;

            if (!_sessions.TryGetValue(guid, out session))
            {
                session         = new RSessionMock();
                _sessions[guid] = session;
            }
            return(session);
        }
Exemplo n.º 14
0
        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();
        }
Exemplo n.º 15
0
        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());
        }
Exemplo n.º 16
0
 public IRSession GetOrCreate(Guid guid, IRHostBrokerConnector brokerConnector)
 {
     _disposeToken.ThrowIfDisposed();
     return(_sessions.GetOrAdd(guid, id => new RSession(Interlocked.Increment(ref _sessionCounter), brokerConnector, () => DisposeSession(guid))));
 }
Exemplo n.º 17
0
 public BrokerFixture()
 {
     BrokerConnector = new RHostBrokerConnector();
     BrokerConnector.SwitchToLocalBroker(this.GetType().Name);
 }
 private void DisposeInstance(IRHostBrokerConnector brokerConnector)
 {
     brokerConnector.Dispose();
     _instanceLazy = null;
 }
Exemplo n.º 19
0
 public VsRHostScript(IRSessionProvider sessionProvider, IRHostBrokerConnector brokerConnector, IRSessionCallback clientApp = null)
     : base(sessionProvider, brokerConnector, clientApp)
 {
 }
Exemplo n.º 20
0
 public RSessionTest(TestMethodFixture testMethod)
 {
     _testMethod      = testMethod.MethodInfo;
     _brokerConnector = new RHostBrokerConnector();
     _brokerConnector.SwitchToLocalBroker(nameof(RSessionTest));
 }
Exemplo n.º 21
0
 public RHostScript(IExportProvider exportProvider, IRHostBrokerConnector brokerConnector, IRSessionCallback clientApp = null)
     : this(exportProvider.GetExportedValue <IRSessionProvider>(), brokerConnector, clientApp)
 {
 }
Exemplo n.º 22
0
 public IntelliSenseRSession(ICoreShell coreShell, IRSessionProvider sessionProvider, IRInteractiveWorkflowProvider workflowProvider)
 {
     _coreShell       = coreShell;
     _sessionProvider = sessionProvider;
     _brokerConnector = workflowProvider.GetOrCreate().BrokerConnector;
 }
Exemplo n.º 23
0
 public XamlGraphicsDeviceTest(TestMethodFixture testMethod)
 {
     _testMethod      = testMethod.MethodInfo;
     _brokerConnector = new RHostBrokerConnector();
     _brokerConnector.SwitchToLocalBroker(nameof(XamlGraphicsDeviceTest));
 }
Exemplo n.º 24
0
 public HostBasedInteractiveTest(IRHostBrokerConnector brokerConnector, IRSessionCallback callback = null)
 {
     HostScript = new VsRHostScript(SessionProvider, brokerConnector, callback);
 }
Exemplo n.º 25
0
 public VariableRHostScript(IRSessionProvider sessionProvider, IRHostBrokerConnector brokerConnector)
     : base(sessionProvider, brokerConnector)
 {
 }
Exemplo n.º 26
0
 public Task <IRSessionEvaluation> BeginEvaluationAsync(IRHostBrokerConnector hostFactory, RHostStartupInfo startupInfo, CancellationToken cancellationToken = new CancellationToken())
 => new RSessionMock().BeginEvaluationAsync(cancellationToken);
Exemplo n.º 27
0
 public RSessionProviderTest()
 {
     _brokerConnector = new RHostBrokerConnector();
     _brokerConnector.SwitchToLocalBroker(nameof(RSessionProviderTest));
 }
Exemplo n.º 28
0
 public static bool IsRemoteConnection(this IRHostBrokerConnector brokerConnector)
 {
     // Any URI the does not start with 'file' is remote.
     return(!brokerConnector.BrokerUri.Scheme.StartsWithIgnoreCase("file"));
 }