CodeGeneratorTestBase.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //
  2. // Base class for CodeGenerator unit tests
  3. //
  4. // Authors:
  5. // Gert Driesen ([email protected])
  6. //
  7. // (c) Novell
  8. //
  9. using System;
  10. using System.CodeDom;
  11. using System.CodeDom.Compiler;
  12. using System.IO;
  13. using NUnit.Framework;
  14. namespace MonoTests.System.CodeDom.Compiler
  15. {
  16. public abstract class CodeGeneratorTestBase
  17. {
  18. private CodeGeneratorOptions _options;
  19. [SetUp]
  20. public virtual void SetUp ()
  21. {
  22. _options = new CodeGeneratorOptions ();
  23. }
  24. protected abstract ICodeGenerator CodeGenerator
  25. {
  26. get;
  27. }
  28. protected virtual string NewLine
  29. {
  30. get { return "\n"; }
  31. }
  32. protected CodeGeneratorOptions Options
  33. {
  34. get { return _options; }
  35. }
  36. protected string GenerateCodeFromType (CodeTypeDeclaration type)
  37. {
  38. return GenerateCodeFromType (type, _options);
  39. }
  40. protected virtual string GenerateCodeFromType (CodeTypeDeclaration type, CodeGeneratorOptions options)
  41. {
  42. using (StringWriter writer = new StringWriter ()) {
  43. writer.NewLine = NewLine;
  44. CodeGenerator.GenerateCodeFromType (type, writer, options);
  45. writer.Close ();
  46. return writer.ToString ();
  47. }
  48. }
  49. }
  50. }