public void GetCodeContext()
        {
            const ulong newAddress = 0x123456789a;

            SbAddress address         = Substitute.For <SbAddress>();
            var       documentContext = Substitute.For <IDebugDocumentContext2>();
            var       newCodeContext  = Substitute.For <IDebugCodeContext2>();

            _mockTarget.ResolveLoadAddress(newAddress).Returns(address);
            _documentContextFactory.Create(address.GetLineEntry()).Returns(documentContext);
            _codeContextFactory
            .Create(newAddress, Arg.Any <Lazy <string> >(), documentContext, Guid.Empty)
            .Returns(newCodeContext);

            Assert.AreEqual(VSConstants.S_OK, _disassemblyStream.GetCodeContext(
                                newAddress, out IDebugCodeContext2 codeContext));
            Assert.AreEqual(newCodeContext, codeContext);
        }
        public void GetCodeContextFunctionNameResolution()
        {
            _disassemblyStream =
                (DebugDisassemblyStream) new DebugDisassemblyStream.Factory(
                    new DebugCodeContext.Factory(new DebugMemoryContext.Factory()),
                    _documentContextFactory).Create(_testScope, _mockCodeContext, _mockTarget);

            const ulong newAddress = 0x123456789a;

            var address = Substitute.For <SbAddress>();

            _mockTarget.ResolveLoadAddress(newAddress).Returns(address);
            address.GetFunction().GetName().Returns("funcName");

            Assert.That(
                _disassemblyStream.GetCodeContext(newAddress, out IDebugCodeContext2 codeContext),
                Is.EqualTo(VSConstants.S_OK));

            Assert.That(codeContext.GetName(out string name), Is.EqualTo(VSConstants.S_OK));
            Assert.That(name, Is.EqualTo("funcName"));
        }