diff options
author | Stephen Toub <stoub@microsoft.com> | 2017-02-07 22:36:41 +0300 |
---|---|---|
committer | Stephen Toub <stoub@microsoft.com> | 2017-02-07 22:37:01 +0300 |
commit | 90f07f2de74e38ebaba4cf07efb341caa750efa5 (patch) | |
tree | e99a39fab46dc2f37cb750cc1817e5b532e38970 | |
parent | 11cd918f38bd14251a3464e0fcfce0d77075b2f6 (diff) |
Augment tests for CodeDom fix
-rw-r--r-- | src/System.CodeDom/tests/CSharpCodeGenerationTests.cs | 28 | ||||
-rw-r--r-- | src/System.CodeDom/tests/VBCodeGenerationTests.cs | 26 |
2 files changed, 49 insertions, 5 deletions
diff --git a/src/System.CodeDom/tests/CSharpCodeGenerationTests.cs b/src/System.CodeDom/tests/CSharpCodeGenerationTests.cs index 3f5eb0848d..38777f60e4 100644 --- a/src/System.CodeDom/tests/CSharpCodeGenerationTests.cs +++ b/src/System.CodeDom/tests/CSharpCodeGenerationTests.cs @@ -448,12 +448,30 @@ namespace System.CodeDom.Tests }"); } - [Fact] - public void ExplicitImplementation() + [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ".NET Framework outputs C# keywords rather than type names")] + [Theory] + [InlineData(typeof(byte), "void System.Byte.MyMethod() { }")] + [InlineData(typeof(short), "void System.Int16.MyMethod() { }")] + [InlineData(typeof(ushort), "void System.UInt16.MyMethod() { }")] + [InlineData(typeof(int), "void System.Int32.MyMethod() { }")] + [InlineData(typeof(uint), "void System.UInt32.MyMethod() { }")] + [InlineData(typeof(long), "void System.Int64.MyMethod() { }")] + [InlineData(typeof(ulong), "void System.UInt64.MyMethod() { }")] + [InlineData(typeof(string), "void System.String.MyMethod() { }")] + [InlineData(typeof(object), "void System.Object.MyMethod() { }")] + [InlineData(typeof(bool), "void System.Boolean.MyMethod() { }")] + [InlineData(typeof(void), "void System.Void.MyMethod() { }")] + [InlineData(typeof(char), "void System.Char.MyMethod() { }")] + [InlineData(typeof(float), "void System.Single.MyMethod() { }")] + [InlineData(typeof(double), "void System.Double.MyMethod() { }")] + [InlineData(typeof(decimal), "void System.Decimal.MyMethod() { }")] + public void ExplicitImplementation(Type type, string expectedResult) { - var m = new CodeMemberMethod() { Name = "MyMethod" }; - m.PrivateImplementationType = new CodeTypeReference(typeof(System.Int64)); - AssertEqual(m, @"void System.Int64.MyMethod() { }"); + AssertEqual(new CodeMemberMethod() + { + Name = "MyMethod", + PrivateImplementationType = new CodeTypeReference(type) + }, expectedResult); } [Fact] diff --git a/src/System.CodeDom/tests/VBCodeGenerationTests.cs b/src/System.CodeDom/tests/VBCodeGenerationTests.cs index 43e752c1b9..619694b8ba 100644 --- a/src/System.CodeDom/tests/VBCodeGenerationTests.cs +++ b/src/System.CodeDom/tests/VBCodeGenerationTests.cs @@ -416,6 +416,32 @@ namespace System.CodeDom.Tests End Namespace"); } + [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ".NET Framework outputs C# keywords rather than type names")] + [Theory] + [InlineData(typeof(byte), "Sub System_[Byte]_MyMethod() Implements Byte.MyMethod End Sub")] + [InlineData(typeof(short), "Sub System_Int16_MyMethod() Implements Short.MyMethod End Sub")] + [InlineData(typeof(ushort), "Sub System_UInt16_MyMethod() Implements UShort.MyMethod End Sub")] + [InlineData(typeof(int), "Sub System_Int32_MyMethod() Implements Integer.MyMethod End Sub")] + [InlineData(typeof(uint), "Sub System_UInt32_MyMethod() Implements UInteger.MyMethod End Sub")] + [InlineData(typeof(long), "Sub System_Int64_MyMethod() Implements Long.MyMethod End Sub")] + [InlineData(typeof(ulong), "Sub System_UInt64_MyMethod() Implements ULong.MyMethod End Sub")] + [InlineData(typeof(string), "Sub System_[String]_MyMethod() Implements String.MyMethod End Sub")] + [InlineData(typeof(object), "Sub System_[Object]_MyMethod() Implements Object.MyMethod End Sub")] + [InlineData(typeof(bool), "Sub System_[Boolean]_MyMethod() Implements Boolean.MyMethod End Sub")] + [InlineData(typeof(void), "Sub System_Void_MyMethod() Implements System.Void.MyMethod End Sub")] + [InlineData(typeof(char), "Sub System_[Char]_MyMethod() Implements Char.MyMethod End Sub")] + [InlineData(typeof(float), "Sub System_[Single]_MyMethod() Implements Single.MyMethod End Sub")] + [InlineData(typeof(double), "Sub System_[Double]_MyMethod() Implements Double.MyMethod End Sub")] + [InlineData(typeof(decimal), "Sub System_[Decimal]_MyMethod() Implements Decimal.MyMethod End Sub")] + public void ExplicitImplementation_BuiltIns_UsesTypeNamesForBetterCompilerHandling(Type type, string expectedResult) + { + AssertEqual(new CodeMemberMethod() + { + Name = "MyMethod", + PrivateImplementationType = new CodeTypeReference(type) + }, expectedResult); + } + [Fact] public void Arrays_SingleDimensional_PrimitiveTypes() { |