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);
		}