2 // CodeGeneratorIdentifierTest.cs
5 // Atsushi Enomoto <atsushi@ximian.com>
10 using System.CodeDom.Compiler;
11 using NUnit.Framework;
12 using Microsoft.CSharp;
14 namespace MonoTests.Microsoft.CSharp
17 public class CodeGeneratorIdentifierTest
19 private ICodeGenerator gen;
21 public CodeGeneratorIdentifierTest ()
23 gen = new CSharpCodeProvider ().CreateGenerator ();
27 [ExpectedException (typeof (NullReferenceException))]
28 public void TestCreateValidIdentifierNullArg ()
30 gen.CreateValidIdentifier (null);
34 public void TestCreateValidIdentifier ()
37 Assert.AreEqual ("a", gen.CreateValidIdentifier ("a"));
38 Assert.AreEqual ("_int", gen.CreateValidIdentifier ("int"));
39 Assert.AreEqual ("_", gen.CreateValidIdentifier ("_"));
40 Assert.AreEqual ("1", gen.CreateValidIdentifier ("1"));
41 Assert.AreEqual ("1a", gen.CreateValidIdentifier ("1a"));
42 Assert.AreEqual ("1*2", gen.CreateValidIdentifier ("1*2"));
43 Assert.AreEqual ("-", gen.CreateValidIdentifier ("-"));
44 Assert.AreEqual ("+", gen.CreateValidIdentifier ("+"));
45 Assert.AreEqual ("", gen.CreateValidIdentifier (""));
46 Assert.AreEqual ("--", gen.CreateValidIdentifier ("--"));
47 Assert.AreEqual ("++", gen.CreateValidIdentifier ("++"));
48 Assert.AreEqual ("\u3042", gen.CreateValidIdentifier ("\u3042"));
52 [ExpectedException (typeof (NullReferenceException))]
53 public void TestCreateEscapedIdentifierNullArg ()
55 gen.CreateEscapedIdentifier (null);
59 public void TestCreateEscapedIdentifier ()
62 Assert.AreEqual ("a", gen.CreateEscapedIdentifier ("a"));
63 Assert.AreEqual ("@int", gen.CreateEscapedIdentifier ("int"));
64 Assert.AreEqual ("_", gen.CreateEscapedIdentifier ("_"));
65 Assert.AreEqual ("1", gen.CreateEscapedIdentifier ("1"));
66 Assert.AreEqual ("1a", gen.CreateEscapedIdentifier ("1a"));
67 Assert.AreEqual ("1*2", gen.CreateEscapedIdentifier ("1*2"));
68 Assert.AreEqual ("-", gen.CreateEscapedIdentifier ("-"));
69 Assert.AreEqual ("+", gen.CreateEscapedIdentifier ("+"));
70 Assert.AreEqual ("", gen.CreateEscapedIdentifier (""));
71 Assert.AreEqual ("--", gen.CreateEscapedIdentifier ("--"));
72 Assert.AreEqual ("++", gen.CreateEscapedIdentifier ("++"));
73 Assert.AreEqual ("\u3042", gen.CreateEscapedIdentifier ("\u3042"));
77 public void TestIsValidIdentifier ()
79 Assert.AreEqual (true, gen.IsValidIdentifier ("_a"));
80 Assert.AreEqual (true, gen.IsValidIdentifier ("_"));
81 Assert.AreEqual (true, gen.IsValidIdentifier ("@return"));
82 Assert.AreEqual (true, gen.IsValidIdentifier ("d1"));
83 Assert.AreEqual (true, gen.IsValidIdentifier ("_1"));
84 Assert.AreEqual (true, gen.IsValidIdentifier ("_a_1"));
85 Assert.AreEqual (true, gen.IsValidIdentifier ("@a"));
86 Assert.AreEqual (false, gen.IsValidIdentifier ("1"));
87 Assert.AreEqual (false, gen.IsValidIdentifier (" "));
88 Assert.AreEqual (false, gen.IsValidIdentifier ("?"));
89 Assert.AreEqual (false, gen.IsValidIdentifier (":_:"));
90 Assert.AreEqual (false, gen.IsValidIdentifier ("_ "));
91 Assert.AreEqual (false, gen.IsValidIdentifier ("@ "));
92 Assert.AreEqual (false, gen.IsValidIdentifier ("1*2"));
93 Assert.AreEqual (false, gen.IsValidIdentifier ("1_2"));
94 Assert.AreEqual (gen.IsValidIdentifier ("a, b"), false);