2 // Microsoft.CSharp.* Test Cases
5 // Erik LeBel (eriklebel@yahoo.ca)
11 using System.CodeDom.Compiler;
15 using NUnit.Framework;
17 namespace MonoTests.Microsoft.CSharp
20 /// Test ICodeGenerator's GenerateCodeFromNamespace, along with a
21 /// minimal set CodeDom components.
24 public class CodeGeneratorFromNamespaceTest : CodeGeneratorTestBase
26 CodeNamespace codeNamespace = null;
32 codeNamespace = new CodeNamespace ();
35 protected override string Generate (CodeGeneratorOptions options)
37 StringWriter writer = new StringWriter ();
38 writer.NewLine = NewLine;
40 generator.GenerateCodeFromNamespace (codeNamespace, writer, options);
42 return writer.ToString ();
46 [ExpectedException (typeof (NullReferenceException))]
47 public void NullNamespaceTest ()
54 public void NullNamespaceNameTest ()
56 codeNamespace.Name = null;
57 Assert.AreEqual ("\n", Generate ());
62 public void DefaultNamespaceTest ()
64 Assert.AreEqual ("\n", Generate ());
68 public void SimpleNamespaceTest ()
72 codeNamespace.Name = "A";
74 Assert.AreEqual ("namespace A {\n \n}\n", code, "#1");
76 CodeGeneratorOptions options = new CodeGeneratorOptions ();
77 options.BracingStyle = "C";
78 code = Generate (options);
79 Assert.AreEqual ("namespace A\n{\n \n}\n", code, "#2");
83 public void InvalidNamespaceTest ()
85 codeNamespace.Name = "A,B";
86 Assert.AreEqual ("namespace A,B {\n \n}\n", Generate ());
90 public void CommentOnlyNamespaceTest ()
92 CodeCommentStatement comment = new CodeCommentStatement ("a");
93 codeNamespace.Comments.Add (comment);
94 Assert.AreEqual ("// a\n\n", Generate ());