示例#1
0
        public void Set_Breakpoint_By_Mask_Correctly()
        {
            // arrange
            var facade  = new BreakpointFacade();
            var builder = new DebugEngineProxyBuilder();

            facade.DebugEngineProxy = builder.Build();

            // act
            facade.SetBreakpointByMask("kernel32", "createprocess*");

            // assert
            builder.Mock.Verify(proxy => proxy.Execute("bm kernel32!createprocess*"), Times.Once);
        }
示例#2
0
        public void Set_Write_Breakpoint_Correctly()
        {
            // arrange
            var facade  = new BreakpointFacade();
            var builder = new DebugEngineProxyBuilder();

            builder.WithExecuteResult("");
            facade.DebugEngineProxy = builder.Build();

            // act
            facade.SetWriteAccessBreakpoint(8, 0x100);

            // assert
            builder.Mock.Verify(proxy => proxy.Execute("ba w8 100"), Times.Once);
        }
示例#3
0
        public void Clear_Breakpoints()
        {
            // arrange
            var facade  = new BreakpointFacade();
            var builder = new DebugEngineProxyBuilder();

            builder.WithExecuteResult("");
            facade.DebugEngineProxy = builder.Build();

            // act
            facade.ClearBreakpoints();

            // assert
            builder.Mock.Verify(proxy => proxy.Execute("bc *"), Times.Once);
        }
示例#4
0
        public void Enforce_Length_Restrictions()
        {
            // arrange
            var facade  = new BreakpointFacade();
            var builder = new DebugEngineProxyBuilder();

            builder.WithExecuteResult("");
            facade.DebugEngineProxy = builder.Build();
            Action shouldThrow  = () => facade.SetReadAccessBreakpoint(10, 0x100);
            Action shouldThrow2 = () => facade.SetWriteAccessBreakpoint(10, 0x100);

            // act
            // assert
            shouldThrow.Should().Throw <ArgumentOutOfRangeException>();
            shouldThrow2.Should().Throw <ArgumentOutOfRangeException>();
        }