public void Mfi_Save() { Given_Loader(); Given_MainFormInteractor(); Given_LoadPreferences(); Given_DecompilerInstance(); Given_XmlWriter(); fsSvc.Stub(f => f.MakeRelativePath("foo.dcproject", "foo.exe")).Return("foo.exe"); fsSvc.Stub(f => f.MakeRelativePath(Arg <string> .Is.Equal("foo.dcproject"), Arg <string> .Is.Null)).Return(null); uiSvc.Expect(u => u.ShowSaveFileDialog("foo.dcproject")).Return("foo.dcproject"); mr.ReplayAll(); When_CreateMainFormInteractor(); Assert.IsNotNull(loader); dcSvc.Decompiler.Load("foo.exe"); var p = new Reko.Core.Serialization.Procedure_v1 { Address = "12345", Name = "MyProc", }; var program = dcSvc.Decompiler.Project.Programs[0]; program.User.Procedures.Add(Address.Ptr32(0x12345), p); program.User.Heuristics.Add("shingle"); interactor.Save(); string s = @"<?xml version=""1.0"" encoding=""utf-8""?> <project xmlns=""http://schemata.jklnet.org/Reko/v4""> <arch>x86-protected-32</arch> <platform>TestPlatform</platform> <input> <filename>foo.exe</filename> <user> <processor /> <procedure name=""MyProc""> <address>00012345</address> </procedure> <heuristic name=""shingle"" /> <registerValues /> </user> </input> </project>"; var res = Encoding.UTF8.GetString(xmlStm.ToArray()); Assert.AreEqual(s, res); mr.VerifyAll(); }
public void Mfi_AddMetadata() { Given_Loader(); Given_MainFormInteractor(); Given_DecompilerInstance(); decompiler.Expect(d => d.LoadMetadata("foo.def")).Return(new TypeLibrary()); services.AddService(typeof(IDecompilerService), dcSvc); uiSvc.Expect(u => u.ShowOpenFileDialog(null)).IgnoreArguments().Return("foo.def"); Given_CommandNotHandledBySubwindow(); this.tcHostSvc.Stub(t => t.Execute(null)).IgnoreArguments().Return(false); mr.ReplayAll(); When_MainFormInteractorWithLoader(); interactor.Execute(new CommandID(CmdSets.GuidReko, CmdIds.FileAddMetadata)); mr.VerifyAll(); }
public void DviGotoAddress() { var dlg = repository.Stub <IAddressPromptDialog>(); dlg.Stub(x => dlg.Address).Return(Address.Ptr32(0x41104110)); dlgFactory.Stub(x => x.CreateAddressPromptDialog()).Return(dlg); uiSvc.Expect(x => uiSvc.ShowModalDialog( Arg <IAddressPromptDialog> .Is.Same(dlg))) .Return(DialogResult.OK); dlg.Expect(x => x.Dispose()); repository.ReplayAll(); Initialize(); interactor.Execute(new CommandID(CmdSets.GuidReko, CmdIds.ViewGoToAddress)); repository.VerifyAll(); Assert.AreEqual(0x41104110ul, interactor.StartAddress.ToLinear()); }
private void Expect_OpenFileDialog() { uiSvc.Expect(u => u.ShowOpenFileDialog(null)).IgnoreArguments().Return("foo.h"); }