Ejemplo n.º 1
0
        public void InitializationTest()
        {
            var mockServiceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices();

            mockServiceProvider.AddService(typeof(SVsShellDebugger), _mocks.MockDebugger.Object, false);
            mockServiceProvider.AddService(typeof(SDTE), _mocks.MockDTE.Object, false);

            var package = new ReAttachPackage() as IVsPackage;

            Assert.IsNotNull(package, "The object does not implement IVsPackage");

            Assert.AreEqual(0, package.SetSite(mockServiceProvider), "SetSite did not return S_OK");
            Assert.AreEqual(0, package.SetSite(null), "SetSite(null) did not return S_OK");

            var reAttachPackage = (ReAttachPackage)package;

            Assert.IsNotNull(reAttachPackage.Reporter);
            Assert.IsNotNull(reAttachPackage.Ui);
            Assert.IsNotNull(reAttachPackage.History);
            Assert.IsNotNull(reAttachPackage.Debugger);

            // Check for warnings/error. Note that one warning for empty registry on first load is expected.
            Assert.AreEqual(0, reAttachPackage.Reporter.ErrorCount, "ReAttach encountered errors during initialization.");
            Assert.AreEqual(1, reAttachPackage.Reporter.WarningCount, "ReAttach encountered warnings during initialization.");
        }
Ejemplo n.º 2
0
        public async Task InitializeAsync(ReAttachPackage package, ReAttachHistory history, CancellationToken cancellationToken)
        {
            _history = history;
            await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);


            _ui = (await package.GetServiceAsync(typeof(ReAttachUi))) as ReAttachUi;
            if (_ui == null)
            {
                ReAttachUtils.ShowStartupError("Unable to obtain reference to UI.");
                return;
            }

            var debugger = (await package.GetServiceAsync(typeof(IVsDebugger))) as IVsDebugger;

            if (debugger == null)
            {
                ReAttachUtils.ShowStartupError("Unable to obtain reference to debugger.");
                return;
            }

            if (debugger.AdviseDebugEventCallback(this) != VSConstants.S_OK)
            {
                ReAttachUtils.ShowStartupError("Unable to subscribe on debug events.");
                return;
            }

            if (debugger.AdviseDebuggerEvents(this, out _cookie) != VSConstants.S_OK)
            {
                ReAttachUtils.ShowStartupError("Unable to subscribe on debugger mode changes.");
                return;
            }


            var dte = await package.GetServiceAsync(typeof(EnvDTE.DTE)) as DTE2;

            if (dte == null)
            {
                ReAttachUtils.ShowStartupError("Unable to get obtain reference to automation object model (DTE2).");
                return;
            }

            _dteDebugger = dte.Debugger as Debugger2;
            if (_dteDebugger == null)
            {
                ReAttachUtils.ShowStartupError("Unable to get reference to debugger from automation object.");
                return;
            }

            _engines = GetTransportEngines();
        }
Ejemplo n.º 3
0
        public void InitializationTest()
        {
            var mockServiceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices();
            mockServiceProvider.AddService(typeof(SVsShellDebugger), _mocks.MockDebugger.Object, false);
            mockServiceProvider.AddService(typeof(SDTE), _mocks.MockDTE.Object, false);

            var package = new ReAttachPackage() as IVsPackage;
            Assert.IsNotNull(package, "The object does not implement IVsPackage");

            Assert.AreEqual(0, package.SetSite(mockServiceProvider), "SetSite did not return S_OK");
            Assert.AreEqual(0, package.SetSite(null), "SetSite(null) did not return S_OK");

            var reAttachPackage = (ReAttachPackage) package;
            Assert.IsNotNull(reAttachPackage.Reporter);
            Assert.IsNotNull(reAttachPackage.Ui);
            Assert.IsNotNull(reAttachPackage.History);
            Assert.IsNotNull(reAttachPackage.Debugger);

            // Check for warnings/error. Note that one warning for empty registry on first load is expected.
            Assert.AreEqual(0, reAttachPackage.Reporter.ErrorCount, "ReAttach encountered errors during initialization.");
            Assert.AreEqual(1, reAttachPackage.Reporter.WarningCount, "ReAttach encountered warnings during initialization.");
        }
Ejemplo n.º 4
0
 public ReAttachHistory(ReAttachPackage package)
 {
     _package = package;
     Load();
 }
Ejemplo n.º 5
0
 public ReAttachOptions(ReAttachPackage package)
 {
     _package = package;
     Load();
 }
Ejemplo n.º 6
0
 public ReAttachDialog(ReAttachPackage package, ReAttachTarget target)
 {
     InitializeComponent();
 }