public void Execute_RegardlessOfContext_CallsFindCachedOnPatternElement() { string expected = IntPtr.Zero.ToString("X"); TestPatternResult result = new TestPatternResult(); Mock<IBotProcessContext> contextMock = new Mock<IBotProcessContext>(); contextMock.TargetProcessIsCurrent(); StubPatternElement patternElement = SetupAndCreatePatternMock(result); string actual = result.Execute(contextMock.Object); Assert.IsTrue(patternElement.WasCalled); Assert.AreEqual(expected, actual); }
private Mock<IBotProcessContext> SetupContextMock() { Mock<IBotProcessContext> contextMock = new Mock<IBotProcessContext>(); contextMock.TargetProcessIsCurrent(); contextMock.Setup(x => x.IsInProcess).Returns(true); return contextMock; }
public void FindCached_CachedOutdated_CachesResult() { IntPtr baseAddress = Process.GetCurrentProcess().MainModule.BaseAddress; IntPtr expected = baseAddress + 0x1337; TestPatternElement element = new TestPatternElement { Cached = new CachedElement { Value = 4, Build = "0.0.0" } }; Mock<IBotProcessContext> contextMock = new Mock<IBotProcessContext>(); contextMock.TargetProcessIsCurrent(); Mock<Pattern> patternMock = new Mock<Pattern>(new byte[0], (bool[])null, false); patternMock.Setup(x => x.Find(contextMock.Object, null)).Returns(expected); element.Pattern = patternMock.Object; element.FindCached(contextMock.Object); IntPtr actual = baseAddress + element.Cached.Value; Assert.AreEqual(expected, actual); }
public void FindCached_NotCached_ForwardsToPattern() { IntPtr expected = new IntPtr(0x1337); TestPatternElement element = new TestPatternElement(); Mock<IBotProcessContext> contextMock = new Mock<IBotProcessContext>(); contextMock.TargetProcessIsCurrent(); Mock<Pattern> patternMock = new Mock<Pattern>(new byte[0], (bool[])null, false); patternMock.Setup(x => x.Find(contextMock.Object, null)).Returns(expected); element.Pattern = patternMock.Object; IntPtr actual = element.FindCached(contextMock.Object); Assert.AreEqual(expected, actual); patternMock.Verify(x => x.Find(contextMock.Object, null)); }
public void FindCached_CachedUpToDate_ReturnsSameValueAsNotCached() { var info = Process.GetCurrentProcess().MainModule.FileVersionInfo; IntPtr expected = Process.GetCurrentProcess().MainModule.BaseAddress + 0x1337; TestPatternElement element = new TestPatternElement(); Mock<IBotProcessContext> contextMock = new Mock<IBotProcessContext>(); contextMock.TargetProcessIsCurrent(); Mock<Pattern> patternMock = new Mock<Pattern>(new byte[0], (bool[])null, false); patternMock.Setup(x => x.Find(contextMock.Object, null)).Returns(expected); element.Pattern = patternMock.Object; IntPtr actual1 = element.FindCached(contextMock.Object); IntPtr actual2 = element.FindCached(contextMock.Object); Assert.AreEqual(expected, actual1); Assert.AreEqual(expected, actual2); patternMock.Verify(x => x.Find(contextMock.Object, null), Times.Once()); }
public void FindCached_CachedUpToDate_ReturnsCachedValue() { var info = Process.GetCurrentProcess().MainModule.FileVersionInfo; int expected = 0x1337; TestPatternElement element = new TestPatternElement { Cached = new CachedElement { Value = expected, Build = info.FileVersion } }; Mock<IBotProcessContext> contextMock = new Mock<IBotProcessContext>(); contextMock.TargetProcessIsCurrent(); Mock<Pattern> patternMock = new Mock<Pattern>(new byte[0], (bool[])null, false); element.Pattern = patternMock.Object; element.FindCached(contextMock.Object); int actual = element.Cached.Value; Assert.AreEqual(expected, actual); patternMock.Verify(x => x.Find(contextMock.Object, null), Times.Never()); }