Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Toub <stoub@microsoft.com>2017-02-07 22:36:41 +0300
committerStephen Toub <stoub@microsoft.com>2017-02-07 22:37:01 +0300
commit90f07f2de74e38ebaba4cf07efb341caa750efa5 (patch)
treee99a39fab46dc2f37cb750cc1817e5b532e38970
parent11cd918f38bd14251a3464e0fcfce0d77075b2f6 (diff)
Augment tests for CodeDom fix
-rw-r--r--src/System.CodeDom/tests/CSharpCodeGenerationTests.cs28
-rw-r--r--src/System.CodeDom/tests/VBCodeGenerationTests.cs26
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()
{