Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / class / System / Test / Microsoft.VisualBasic / CodeGeneratorFromCompileUnitTest.cs
index de6ce24e609d3cc58d3944f04783554fdd0f3c92..7c9993abfdb45e2c0b027c100a6aba1ea8282535 100644 (file)
@@ -2,7 +2,7 @@
 // Microsoft.VisualBasic.* Test Cases
 //
 // Authors:
-//     Gert Driesen (drieseng@users.sourceforge.net)
+//     Gert Driesen (drieseng@users.sourceforge.net)
 //
 // (c) 2005 Novell
 //
@@ -154,6 +154,40 @@ namespace MonoTests.Microsoft.VisualBasic
                                + "Namespace{0}", NewLine), Generate ());
                }
 
+               [Test]
+               public void AttributeAndImportsTest ()
+               {
+                       CodeNamespace ns = new CodeNamespace ();
+                       codeUnit.Namespaces.Add (ns);
+                       ns.Imports.Add(new CodeNamespaceImport("System"));
+                       ns.Imports.Add(new CodeNamespaceImport("System.Reflection"));
+
+                       CodeAttributeDeclaration attrDec = new CodeAttributeDeclaration ();
+                       attrDec.Name = "A";
+                       codeUnit.AssemblyCustomAttributes.Add (attrDec);
+
+                       Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
+                               "Imports System{0}Imports System.Reflection{0}<Assembly: A()> {0}{0}",
+                               NewLine), Generate ());
+               }
+
+               [Test]
+               public void AttributeAndImportsAndNamespaceTest ()
+               {
+                       CodeNamespace ns = new CodeNamespace ("A");
+                       codeUnit.Namespaces.Add (ns);
+                       ns.Imports.Add(new CodeNamespaceImport("System"));
+                       ns.Imports.Add(new CodeNamespaceImport("System.Reflection"));
+
+                       CodeAttributeDeclaration attrDec = new CodeAttributeDeclaration ();
+                       attrDec.Name = "A";
+                       codeUnit.AssemblyCustomAttributes.Add (attrDec);
+
+                       Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
+                               "Imports System{0}Imports System.Reflection{0}<Assembly: A()> {0}{0}"
+                               + "Namespace A{0}End Namespace{0}", NewLine), Generate ());
+               }
+
                [Test]
                public void CodeSnippetTest ()
                {
@@ -170,5 +204,30 @@ namespace MonoTests.Microsoft.VisualBasic
                        writer.Close ();
                        Assert.AreEqual (sb.ToString () + NewLine, writer.ToString());
                }
+               
+               [Test]
+               public void ExternalSourceTest ()
+               {
+                       CodeSnippetCompileUnit snippet;
+                       
+                       StringBuilder sb = new StringBuilder();
+                       sb.Append ("\n");
+                       sb.Append ("#ExternalSource(\"file.vb\",123)");
+                       sb.Append ("\n");
+                       sb.Append ("\n");
+                       sb.Append ("\n");
+                       sb.Append ("#End ExternalSource");
+                       sb.Append ("\n");
+
+                       StringWriter writer = new StringWriter ();
+                       writer.NewLine = NewLine;
+
+                       codeUnit = new CodeSnippetCompileUnit ("");
+                       snippet = (CodeSnippetCompileUnit) codeUnit;
+                       snippet.LinePragma = new CodeLinePragma ("file.vb", 123);
+                       generator.GenerateCodeFromCompileUnit (codeUnit, writer, options);
+                       writer.Close ();
+                       Assert.AreEqual (sb.ToString (), writer.ToString());
+               }
        }
 }