public void FinalOutput() { Type[] types = new Type[] {typeof (SimpleEvent), typeof (ProtocolInfo)}; IGenerator rootGenerator = new RootGenerator(types, 0); TextWriter textWriter = new StringWriter(); rootGenerator.Write(new CodeWriter(textWriter)); using (StreamReader sr = File.OpenText("GeneratedTextSample.txt")) { Assert.AreEqual(sr.ReadToEnd(), textWriter.ToString()); } }
private static int Main(string[] args) { AppArguments parsedArgs = new AppArguments(); if (!Parser.ParseArgumentsWithUsage(args, parsedArgs)) { return 1; } List<string> referencedAssemblies = new List<string>(parsedArgs.ReferencedAssemblies); if ( !referencedAssemblies.Exists( delegate(string asm) { return asm.Contains("ProtocolGenerator.exe"); })) { referencedAssemblies.Add("ProtocolGenerator.exe"); } Assembly templateAssembly; if (!CompileLibraryInMemory(parsedArgs.EventTemplatePath, referencedAssemblies.ToArray(), out templateAssembly)) { Console.WriteLine("ERROR: TemplateFile compile error."); return 2; } uint minorVersion = GetMinorVersion(parsedArgs.EventTemplatePath); IGenerator rootGenerator; try { // TODO - Ctor throws exception. Is it OK? rootGenerator = new RootGenerator(templateAssembly.GetTypes(), minorVersion); } catch (SyntaxErrorException e) { Console.WriteLine(e); return 3; } string generatedFilePath = GetGeneratedFilePath(parsedArgs.EventTemplatePath); using (StreamWriter sw = File.CreateText(generatedFilePath)) { rootGenerator.Write(new CodeWriter(sw)); } return 0; }