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); 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>"; Assert.AreEqual(s, Encoding.UTF8.GetString(xmlStm.ToArray())); mr.VerifyAll(); }
public void Mfi_Save() { Given_Loader(); Given_MainFormInteractor(); Given_LoadPreferences(); Given_DecompilerInstance(); 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.UserProcedures.Add(Address.Ptr32(0x12345), p); interactor.Save(); string s = @"<?xml version=""1.0"" encoding=""utf-16""?> <project xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns=""http://schemata.jklnet.org/Decompiler/v2""> <input> <filename>foo.exe</filename> <address>00010000</address> <procedure name=""MyProc""> <address>00012345</address> </procedure> <options> <HeuristicScanning>false</HeuristicScanning> </options> </input> <output /> </project>"; Assert.AreEqual(s, interactor.Test_SavedProjectXml); mr.VerifyAll(); }