Merge pull request #601 from knocte/sock_improvements
[mono.git] / mcs / class / System / Test / Microsoft.CSharp / CodeGeneratorFromCompileUnitTest.cs
index 84e15c9dcfa754fac51c23c5ee54f99996c4f100..c9eea9c165b380e9e9477f48729589ac7a55ca6f 100644 (file)
@@ -3,9 +3,11 @@
 //
 // Authors:
 //     Erik LeBel (eriklebel@yahoo.ca)
+//     Ilker Cetinkaya (mail@ilker.de)
 //
 // (c) 2003 Erik LeBel
 //
+
 using System;
 using System.CodeDom;
 using System.CodeDom.Compiler;
@@ -24,8 +26,8 @@ namespace MonoTests.Microsoft.CSharp
        [TestFixture]
        public class CodeGeneratorFromCompileUnitTest : CodeGeneratorTestBase
        {
-               private string codeUnitHeader = "";
-               private CodeCompileUnit codeUnit = null;
+               private string codeUnitHeader = string.Empty;
+               private CodeCompileUnit codeUnit;
 
                public CodeGeneratorFromCompileUnitTest ()
                {
@@ -53,7 +55,7 @@ namespace MonoTests.Microsoft.CSharp
                [Test]
                public void DefaultCodeUnitTest ()
                {
-                       Assert.AreEqual ("", Generate ());
+                       Assert.AreEqual (string.Empty, Generate ());
                }
 
                [Test]
@@ -68,7 +70,7 @@ namespace MonoTests.Microsoft.CSharp
                public void ReferencedTest ()
                {
                        codeUnit.ReferencedAssemblies.Add ("System.dll");
-                       Assertion.AssertEquals ("", Generate ());
+                       Assert.AreEqual (string.Empty, Generate ());
                }
 
                [Test]
@@ -175,5 +177,28 @@ namespace MonoTests.Microsoft.CSharp
                        writer.Close ();
                        Assert.AreEqual ("public class Test1 {}" + writer.NewLine, writer.ToString ());
                }
+
+               [Test]
+               public void AttributeAndGlobalNamespaceWithImportTest ()
+               {
+                       var import = new CodeNamespaceImport ("Z");
+                       AddGlobalNamespaceWithImport (codeUnit, import);
+                       AddAssemblyAttribute (codeUnit, "A");
+
+                       Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
+                               "using Z;{0}{0}[assembly: A()]{0}{0}", NewLine), Generate ());
+               }
+
+               private static void AddGlobalNamespaceWithImport (CodeCompileUnit codeUnit, CodeNamespaceImport import) {
+                       CodeNamespace ns = new CodeNamespace ();
+                       ns.Imports.Add (import);
+                       codeUnit.Namespaces.Add (ns);
+               }
+
+               private static void AddAssemblyAttribute (CodeCompileUnit codeUnit, string attributeName) {
+                       CodeAttributeDeclaration attrDec = new CodeAttributeDeclaration ();
+                       attrDec.Name = attributeName;
+                       codeUnit.AssemblyCustomAttributes.Add (attrDec);
+               }
        }
 }