Exemplo n.º 1
0
 public void ReAttachAttachFailsTest()
 {
     var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);
     _mocks.MockProcessList[0].Setup(p => p.Attach()).Throws(new Exception("I'm failing. For testing purposes. :)"));
     Assert.IsFalse(debugger.ReAttach(new ReAttachTarget(1, "name1", "user1")));
     Assert.AreEqual(1, _mocks.MockReAttachReporter.ErrorCount);
     Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
 }
Exemplo n.º 2
0
        public void ReAttachInvalidTargetTest()
        {
            var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);
            Assert.IsFalse(debugger.ReAttach(null));

            Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
        }
Exemplo n.º 3
0
 public void ReAttachHighestPidTest()
 {
     var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);
     Assert.IsTrue(debugger.ReAttach(new ReAttachTarget(5, "name1", "user1")));
     _mocks.MockProcessList[1].Verify(p => p.Attach(), Times.Once());
     Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
     Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
 }
Exemplo n.º 4
0
        public async Task ReAttachAttachFailsTest()
        {
            var debugger = await ReAttachDebugger.InitAsync(_mocks.MockReAttachPackage.Object);

            _mocks.MockProcessList[0].Setup(p => p.Attach()).Throws(new Exception("I'm failing. For testing purposes. :)"));
            Assert.IsFalse(debugger.ReAttach(new ReAttachTarget(1, "name1", "user1")));
            Assert.AreEqual(1, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
        }
Exemplo n.º 5
0
        public async Task ReAttachExactPidTest()
        {
            var debugger = await ReAttachDebugger.InitAsync(_mocks.MockReAttachPackage.Object);

            Assert.IsTrue(debugger.ReAttach(new ReAttachTarget(1, "name1", "user1")));
            _mocks.MockProcessList[0].Verify(p => p.Attach(), Times.Once());
            Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
        }
Exemplo n.º 6
0
        public async Task InvalidTargetTest()
        {
            var debugger = await ReAttachDebugger.InitAsync(_mocks.MockReAttachPackage.Object);

            Assert.IsFalse(debugger.ReAttach(null));

            Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
        }
Exemplo n.º 7
0
        public void ReAttachHighestPidTest()
        {
            var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);

            Assert.IsTrue(debugger.ReAttach(new ReAttachTarget(5, "name1", "user1")));
            _mocks.MockProcessList[1].Verify(p => p.Attach(), Times.Once());
            Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
        }
Exemplo n.º 8
0
        public void ReAttachInvalidTargetTest()
        {
            var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);

            Assert.IsFalse(debugger.ReAttach(null));

            Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
        }
Exemplo n.º 9
0
 public void ReAttachNoCandidatesTest()
 {
     var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);
     Assert.IsFalse(debugger.ReAttach(new ReAttachTarget(123, "not-name1", "user1")));
     Assert.IsFalse(debugger.ReAttach(new ReAttachTarget(123, "name1", "not-user1")));
     Assert.IsTrue(debugger.ReAttach(new ReAttachTarget(123, "name1", "user1")));
     Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
     Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
 }
Exemplo n.º 10
0
        public async Task ReAttachRemoteTest()
        {
            var debugger = await ReAttachDebugger.InitAsync(_mocks.MockReAttachPackage.Object);

            Assert.IsTrue(debugger.ReAttach(new ReAttachTarget(1, "name1", "user1", "server1")));
            Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
            _mocks.MockDTEDebugger.Verify(d => d.GetProcesses(_mocks.MockDefaultTransport.Object, "server1"), Times.Once());
        }
Exemplo n.º 11
0
        public async Task ReAttachNoCandidatesTest()
        {
            var debugger = await ReAttachDebugger.InitAsync(_mocks.MockReAttachPackage.Object);

            Assert.IsFalse(debugger.ReAttach(new ReAttachTarget(123, "not-name1", "user1")));
            Assert.IsFalse(debugger.ReAttach(new ReAttachTarget(123, "name1", "not-user1")));
            Assert.IsTrue(debugger.ReAttach(new ReAttachTarget(123, "name1", "user1")));
            Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
        }
Exemplo n.º 12
0
        public async Task ReAttachRemoteNotFoundTest()
        {
            // TODO: Find out what happens with GetProcesses when machine is down.
            var debugger = await ReAttachDebugger.InitAsync(_mocks.MockReAttachPackage.Object);

            Assert.IsFalse(debugger.ReAttach(new ReAttachTarget(1, "not-name1", "not-user1", "not-server1")));
            Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);

            _mocks.MockDTEDebugger.Verify(d => d.GetProcesses(_mocks.MockDefaultTransport.Object, "not-server1"), Times.Once());
        }
Exemplo n.º 13
0
        public void ReAttachRemoteNotFoundTest()
        {
            // TODO: Find out what happens with GetProcesses when machine is down.
            var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);

            Assert.IsFalse(debugger.ReAttach(new ReAttachTarget(1, "not-name1", "not-user1", "not-server1")));
            Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
            Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);

            _mocks.MockDTEDebugger.Verify(d => d.GetProcesses(_mocks.MockDefaultTransport.Object, "not-server1"), Times.Once());
        }
Exemplo n.º 14
0
        public WaitingDialog(ReAttachDebugger debugger, ReAttachTarget target)
        {
            _debugger = debugger;
            _target   = target;

            InitializeComponent();

            var name = target.ProcessName;

            if (name.Length > 50)
            {
                name = name.Substring(0, 50);
            }

            ProcessName.Text = name;
            Dots.Text        = "";
            _timer.Tick     += TimerOnTick;
            _timer.Interval  = new TimeSpan(0, 0, 1);
            _timer.Start();
        }
Exemplo n.º 15
0
        public async Task RecordRemoteAttachTest()
        {
            var debugger = await ReAttachDebugger.InitAsync(_mocks.MockReAttachPackage.Object);

            _mocks.MockReAttachUi.Setup(ui => ui.Update());

            var processCreateEvent = new Mock <IDebugProcessCreateEvent2>(MockBehavior.Strict);
            var process            = new Mock <IDebugProcess3>(MockBehavior.Strict);

            process.Setup(p => p.GetEngineFilter(It.IsAny <GUID_ARRAY[]>())).Returns(null);

            var process2 = process.As <IDebugProcess2>();

            process2.Setup(p => p.GetPhysicalProcessId(It.IsAny <AD_PROCESS_ID[]>())).Returns(123);

            var serverMock = new Mock <IDebugCoreServer3>(MockBehavior.Strict);
            var server     = serverMock.As <IDebugCoreServer2>().Object;

            serverMock.Setup(s => s.QueryIsLocal()).Returns(VSConstants.S_FALSE);
            var serverName = "server:1234";

            serverMock.Setup(s => s.GetServerFriendlyName(out serverName)).Returns(VSConstants.S_OK);
            process2.Setup(p => p.GetServer(out server)).Returns(VSConstants.S_OK);

            string processName;

            process2.Setup(p => p.GetName(It.IsAny <enum_GETNAME_TYPE>(), out processName)).Returns(VSConstants.S_OK);

            var        eventGuid  = Guid.Empty;
            const uint attributes = 0;

            Assert.AreEqual(VSConstants.S_OK, debugger.Event(null, process.Object, null, null,
                                                             processCreateEvent.As <IDebugEvent2>().Object, ref eventGuid, attributes));
            Assert.AreEqual("server:1234", _mocks.MockReAttachHistoryItems[0].ServerName,
                            "Invalid server name, server name not set when remote ReAttaching.");

            _mocks.MockReAttachHistory.Verify(h => h.Items);
            _mocks.MockReAttachUi.Verify(ui => ui.Update());
            Assert.AreEqual(1, _mocks.MockReAttachHistoryItems.Count(i => i.IsAttached), "Invalid number of processes claimed to be attached.");
        }
Exemplo n.º 16
0
        public void RecordAttachTest()
        {
            var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);

            _mocks.MockReAttachUi.Setup(ui => ui.Update());

            var processCreateEvent = new Mock <IDebugProcessCreateEvent2>(MockBehavior.Strict);
            var process            = new Mock <IDebugProcess3>(MockBehavior.Strict);

            process.Setup(p => p.GetEngineFilter(It.IsAny <GUID_ARRAY[]>())).Returns(null);

            var process2 = process.As <IDebugProcess2>();

            process2.Setup(p => p.GetPhysicalProcessId(It.IsAny <AD_PROCESS_ID[]>())).Returns(123);


            var serverMock = new Mock <IDebugCoreServer3>(MockBehavior.Strict);
            var server     = serverMock.As <IDebugCoreServer2>().Object;

            serverMock.Setup(s => s.QueryIsLocal()).Returns(VSConstants.S_OK);
            process2.Setup(p => p.GetServer(out server)).Returns(VSConstants.S_OK);

            string processName;

            process2.Setup(p => p.GetName(It.IsAny <uint>(), out processName)).Returns(VSConstants.S_OK);

            var        eventGuid  = Guid.Empty;
            const uint attributes = 0;

            Assert.AreEqual(VSConstants.S_OK, debugger.Event(null, process.Object, null, null,
                                                             processCreateEvent.As <IDebugEvent2>().Object, ref eventGuid, attributes));

            _mocks.MockReAttachHistory.Verify(h => h.Items);
            _mocks.MockReAttachUi.Verify(ui => ui.Update());
            Assert.AreEqual(1, _mocks.MockReAttachHistoryItems.Count(i => i.IsAttached), "Invalid number of processes claimed to be attached.");
        }
Exemplo n.º 17
0
        public void RecordRemoteAttachTest()
        {
            var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);
            _mocks.MockReAttachUi.Setup(ui => ui.Update());

            var processCreateEvent = new Mock<IDebugProcessCreateEvent2>(MockBehavior.Strict);
            var process = new Mock<IDebugProcess3>(MockBehavior.Strict);
            process.Setup(p => p.GetEngineFilter(It.IsAny<GUID_ARRAY[]>())).Returns(null);

            var process2 = process.As<IDebugProcess2>();
            process2.Setup(p => p.GetPhysicalProcessId(It.IsAny<AD_PROCESS_ID[]>())).Returns(123);

            var serverMock = new Mock<IDebugCoreServer3>(MockBehavior.Strict);
            var server = serverMock.As<IDebugCoreServer2>().Object;
            serverMock.Setup(s => s.QueryIsLocal()).Returns(VSConstants.S_FALSE);
            var serverName = "server:1234";
            serverMock.Setup(s => s.GetServerFriendlyName(out serverName)).Returns(VSConstants.S_OK);
            process2.Setup(p => p.GetServer(out server)).Returns(VSConstants.S_OK);

            string processName;
            process2.Setup(p => p.GetName(It.IsAny<uint>(), out processName)).Returns(VSConstants.S_OK);

            var eventGuid = Guid.Empty;
            const uint attributes = 0;
            Assert.AreEqual(VSConstants.S_OK, debugger.Event(null, process.Object, null, null,
                processCreateEvent.As<IDebugEvent2>().Object, ref eventGuid, attributes));
            Assert.AreEqual("server:1234", _mocks.MockReAttachHistoryItems[0].ServerName,
                "Invalid server name, server name not set when remote ReAttaching.");

            _mocks.MockReAttachHistory.Verify(h => h.Items);
            _mocks.MockReAttachUi.Verify(ui => ui.Update());
            Assert.AreEqual(1, _mocks.MockReAttachHistoryItems.Count(i => i.IsAttached), "Invalid number of processes claimed to be attached.");
        }
Exemplo n.º 18
0
 public void ReAttachRemoteTest()
 {
     var debugger = new ReAttachDebugger(_mocks.MockReAttachPackage.Object);
     Assert.IsTrue(debugger.ReAttach(new ReAttachTarget(1, "name1", "user1", "server1")));
     Assert.AreEqual(0, _mocks.MockReAttachReporter.ErrorCount);
     Assert.AreEqual(0, _mocks.MockReAttachReporter.WarningCount);
     _mocks.MockDTEDebugger.Verify(d => d.GetProcesses(_mocks.MockDefaultTransport.Object, "server1"), Times.Once());
 }