public ServiceManagerStub(IMetrics metrics, SLLDBShell lldbShell,
                           YetiVSIService yetiVsiService, SVsOutputWindow outputWindow,
                           IVsDebuggerSymbolSettingsManager120A symbolSettingsManager,
                           ISessionNotifier sessionNotifier = null)
 {
     _services = new Dictionary <Type, object>()
     {
         { typeof(YetiVSIService), yetiVsiService },
         { typeof(SLLDBShell), lldbShell },
         { typeof(SMetrics), metrics },
         { typeof(SVsOutputWindow), outputWindow },
         { typeof(SVsShellDebugger), symbolSettingsManager },
         { typeof(SSessionNotifier), sessionNotifier },
     };
 }
        DebugEngineFactoryCompRootStub CreateEngineFactoryCompRoot(
            IDebugSessionLauncherFactory debugSessionLauncherFactory, IRemoteDeploy remoteDeploy)
        {
            var compRoot = new DebugEngineFactoryCompRootStub(
                debugSessionLauncherFactory, remoteDeploy, Substitute.For <IGameLauncher>());

            _metrics = Substitute.For <IMetrics>();
            _metrics.NewDebugSessionId().Returns(_debugSessionId);
            ISessionNotifier sessionNotifier = Substitute.For <ISessionNotifier>();
            SLLDBShell       lldbShell       = TestDummyGenerator.Create <SLLDBShell>();
            var vsiService            = new YetiVSIService(OptionPageGrid.CreateForTesting());
            var vsOutputWindow        = new OutputWindowStub();
            var symbolSettingsManager = Substitute.For <IVsDebuggerSymbolSettingsManager120A>();

            compRoot.ServiceManager =
                new ServiceManagerStub(_metrics, lldbShell, vsiService, vsOutputWindow,
                                       symbolSettingsManager, sessionNotifier);
            return(compRoot);
        }