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")); }