void TestCreateInterface (string interfacecode, string outputString, string stubString = null) { var project = new UnknownProject (); project.FileName = "test.csproj"; TypeSystemService.LoadProject (project); TypeSystemService.ParseFile (project, "program.cs", "text/x-csharp", interfacecode); TypeSystemService.ParseFile (project, "stub.cs", "text/x-csharp", "class Stub {\n "+stubString+"}\n"); var wrapper = TypeSystemService.GetProjectContentWrapper (project); wrapper.UpdateContent (c => c.AddAssemblyReferences (new [] { Mscorlib, SystemCore })); var pctx = TypeSystemService.GetCompilation (project); var stubType = pctx.MainAssembly.GetTypeDefinition ("", "Stub", 0); var iface = pctx.MainAssembly.GetTypeDefinition ("", "ITest", 0); var gen = new CSharpCodeGenerator (); gen.EolMarker = "\n"; gen.Compilation = pctx; string generated = gen.CreateInterfaceImplementation (stubType, stubType.Parts.First (), iface, false); Assert.IsNotEmpty (generated); // crop #region generated = generated.Substring (generated.IndexOf ("implementation") + "implementation".Length); generated = generated.Substring (0, generated.LastIndexOf ("#")); generated = generated.Trim (); if (outputString != generated) Console.WriteLine (generated); Assert.AreEqual (outputString, generated); }
void TestCreateInterface (string interfacecode, string outputString) { var dom = new SimpleProjectDom (); var parser = new McsParser (); var unit = parser.Parse (dom, "Interface.cs", interfacecode); DomType stubType = new DomType ("Stub"); stubType.SourceProjectDom = dom; stubType.CompilationUnit = new CompilationUnit ("Stub.cs"); var iface = unit.CompilationUnit.Types[0]; var gen = new CSharpCodeGenerator (); gen.EolMarker = "\n"; string generated = gen.CreateInterfaceImplementation (stubType, iface, false); // crop #region generated = generated.Substring (generated.IndexOf ("implementation") + "implementation".Length); generated = generated.Substring (0, generated.LastIndexOf ("#")); generated = generated.Trim (); System.Console.WriteLine (generated); Assert.AreEqual (outputString, generated); }