예제 #1
0
        public void CreateColumns()
        {
            var psr = new ProcedureSearchResult(mr.Stub <IServiceProvider>(), procs);

            procs.Add(new ProcedureSearchHit(program, Address.Ptr32(0x00001), new Procedure("foo", new Frame(PrimitiveType.Word32))));
            procs.Add(new ProcedureSearchHit(program, Address.Ptr32(0x00002), new Procedure("bar", new Frame(PrimitiveType.Word32))));

            var view = mr.StrictMock <ISearchResultView>();

            view.Expect(s => view.AddColumn(
                            Arg <string> .Is.Equal("Program"),
                            Arg <int> .Is.Anything));
            view.Expect(s => view.AddColumn(
                            Arg <string> .Is.Equal("Address"),
                            Arg <int> .Is.Anything));
            view.Expect(s => view.AddColumn(
                            Arg <string> .Is.Equal("Procedure Name"),
                            Arg <int> .Is.Anything));

            mr.ReplayAll();

            psr.View = view;
            psr.CreateColumns();

            mr.VerifyAll();
        }
예제 #2
0
        public void CreateColumns()
        {
            var psr = new ProcedureSearchResult(new Mock <IServiceProvider>().Object, procs);

            var addr1 = Address.Ptr32(0x00001);
            var addr2 = Address.Ptr32(0x00002);

            procs.Add(new ProcedureSearchHit(program, addr1, new Procedure(program.Architecture, "foo", addr1, new Frame(PrimitiveType.Word32))));
            procs.Add(new ProcedureSearchHit(program, addr2, new Procedure(program.Architecture, "bar", addr2, new Frame(PrimitiveType.Word32))));

            var view = new Mock <ISearchResultView>();

            view.Setup(s => s.AddColumn(
                           "Program",
                           It.IsAny <int>())).Verifiable();
            view.Setup(s => s.AddColumn(
                           "Address",
                           It.IsAny <int>())).Verifiable();
            view.Setup(s => s.AddColumn(
                           "Procedure Name",
                           It.IsAny <int>())).Verifiable();

            psr.View = view.Object;
            psr.CreateColumns();

            view.VerifyAll();
        }
예제 #3
0
        public void Navigate()
        {
            var mvs    = AddService <ILowLevelViewService>();
            var cvs    = AddService <ICodeViewerService>();
            var decSvc = AddService <IDecompilerService>();
            var dec    = new Mock <IDecompiler>();

            cvs.Setup(c => c.DisplayProcedure(
                          It.IsAny <Program>(),
                          It.IsAny <Procedure>(),
                          true));
            mvs.Setup(s => s.ShowMemoryAtAddress(
                          It.IsNotNull <Program>(),
                          It.Is <Address>(a => a.ToLinear() == 0x4234))).Verifiable();
            decSvc.Setup(d => d.Decompiler).Returns(dec.Object);
            dec.Setup(d => d.Project).Returns(new Project {
                Programs = { new Program() }
            });

            ISearchResult psr  = new ProcedureSearchResult(sc, procs);
            var           addr = Address.Ptr32(0x4234);

            procs.Add(new ProcedureSearchHit(
                          program, addr,
                          new Procedure(program.Architecture, "foo", addr, new Frame(PrimitiveType.Word32))));
            psr.NavigateTo(0);

            mvs.VerifyAll();
        }
예제 #4
0
        public void Navigate()
        {
            var mvs    = AddService <ILowLevelViewService>();
            var cvs    = AddService <ICodeViewerService>();
            var decSvc = AddService <IDecompilerService>();
            var dec    = mr.StrictMock <IDecompiler>();

            cvs.Stub(c => c.DisplayProcedure(null, null, true)).IgnoreArguments();
            mvs.Expect(s => s.ShowMemoryAtAddress(
                           Arg <Program> .Is.NotNull,
                           Arg <Address> .Is.Equal(Address.Ptr32(0x4234))));
            decSvc.Stub(d => d.Decompiler).Return(dec);
            dec.Stub(d => d.Project).Return(new Project {
                Programs = { new Program() }
            });
            mr.ReplayAll();

            ISearchResult psr  = new ProcedureSearchResult(sc, procs);
            var           addr = Address.Ptr32(0x4234);

            procs.Add(new ProcedureSearchHit(
                          program, addr,
                          new Procedure(program.Architecture, "foo", addr, new Frame(PrimitiveType.Word32))));
            psr.NavigateTo(0);
            mr.VerifyAll();
        }
예제 #5
0
        public void GetItemData()
        {
            ISearchResult psr = new ProcedureSearchResult(mr.Stub <IServiceProvider>(), procs);

            procs.Add(new ProcedureSearchHit(program, Address.Ptr32(0x00001), new Procedure("foo", new Frame(PrimitiveType.Word32))));
            procs.Add(new ProcedureSearchHit(program, Address.Ptr32(0x00002), new Procedure("bar", new Frame(PrimitiveType.Word32))));

            Assert.AreEqual(-1, psr.GetItem(0).ImageIndex);
            string [] str = psr.GetItem(0).Items;
            Assert.AreEqual(3, str.Length);

            Assert.AreEqual("Proggie", str[0]);
            Assert.AreEqual("00000001", str[1]);
            Assert.AreEqual("foo", str[2]);
        }
예제 #6
0
        public void GetItemData()
        {
            ISearchResult psr = new ProcedureSearchResult(new Mock <IServiceProvider>().Object, procs);

            var addr1 = Address.Ptr32(0x00001);
            var addr2 = Address.Ptr32(0x00002);

            procs.Add(new ProcedureSearchHit(program, addr1, new Procedure(program.Architecture, "foo", addr1, new Frame(PrimitiveType.Word32))));
            procs.Add(new ProcedureSearchHit(program, addr2, new Procedure(program.Architecture, "bar", addr2, new Frame(PrimitiveType.Word32))));

            Assert.AreEqual(-1, psr.GetItem(0).ImageIndex);
            string [] str = psr.GetItem(0).Items;
            Assert.AreEqual(3, str.Length);

            Assert.AreEqual("Proggie", str[0]);
            Assert.AreEqual("00000001", str[1]);
            Assert.AreEqual("foo", str[2]);
        }