//
// Microsoft.VisualBasic.* Test Cases
//
// Authors:
// Gert Driesen (drieseng@users.sourceforge.net)
//
// (c) Novell
//
using System;
using System.Globalization;
using System.Text;
using System.CodeDom;
using System.CodeDom.Compiler;
using NUnit.Framework;
namespace MonoTests.Microsoft.VisualBasic
{
///
///
/// Test ICodeGenerator's GenerateCodeFromType, along with a
/// minimal set CodeDom components.
///
///
[TestFixture]
public class CodeGeneratorFromTypeTest : CodeGeneratorTestBase
{
CodeTypeDeclaration type = null;
[SetUp]
public void Init ()
{
InitBase ();
type = new CodeTypeDeclaration ();
}
protected override void Generate ()
{
generator.GenerateCodeFromType (type, writer, options);
writer.Close ();
}
[Test]
public void DefaultTypeTest ()
{
Generate ();
Assertion.AssertEquals (string.Format(CultureInfo.InvariantCulture,
"Public Class {0}End Class{0}", writer.NewLine), Code);
}
[Test]
[ExpectedException (typeof (NullReferenceException))]
public void NullTypeTest ()
{
type = null;
Generate ();
}
[Test]
public void SimpleTypeTest ()
{
type.Name = "Test1";
Generate ();
Assertion.AssertEquals (string.Format (CultureInfo.InvariantCulture,
"Public Class Test1{0}End Class{0}", writer.NewLine), Code);
}
[Test]
public void AttributesAndTypeTest ()
{
type.Name = "Test1";
CodeAttributeDeclaration attrDec = new CodeAttributeDeclaration ();
attrDec.Name = "A";
type.CustomAttributes.Add (attrDec);
attrDec = new CodeAttributeDeclaration ();
attrDec.Name = "B";
type.CustomAttributes.Add (attrDec);
Generate ();
Assertion.AssertEquals (string.Format (CultureInfo.InvariantCulture,
" _{0}Public Class Test1{0}End Class{0}",
writer.NewLine), Code);
}
}
}