diff options
author | Alexander Köplinger <alex.koeplinger@outlook.com> | 2017-07-03 17:59:12 +0300 |
---|---|---|
committer | Alexander Köplinger <alex.koeplinger@outlook.com> | 2017-07-03 18:29:32 +0300 |
commit | 7e70a4e9236104c350e7d9ca3505225755065569 (patch) | |
tree | ac2d3c9604216d770200d4370f2613182bcd5312 /src/System.ComponentModel.TypeConverter | |
parent | e9e1fb251df4be19b142f0cef2c7dcc13b84f2f2 (diff) | |
parent | 4bf51c870ec075d89c809ea1dd7449d609187b7a (diff) |
Merge remote-tracking branch 'upstream/master'
# Conflicts:
# src/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/common/DirectoryException.cs
# src/System.Drawing.Common/src/System/Drawing/Printing/Margins.cs
# src/System.Drawing.Common/src/System/Drawing/SystemBrushes.cs
# src/System.Drawing.Primitives/src/System/Drawing/SizeF.cs
# src/System.Net.WebHeaderCollection/tests/WebHeaderCollectionTest.cs
# src/System.Runtime.CompilerServices.VisualC/src/System/Runtime/CompilerServices/Attributes.cs
Diffstat (limited to 'src/System.ComponentModel.TypeConverter')
18 files changed, 157 insertions, 140 deletions
diff --git a/src/System.ComponentModel.TypeConverter/src/System/ComponentModel/CultureInfoConverter.cs b/src/System.ComponentModel.TypeConverter/src/System/ComponentModel/CultureInfoConverter.cs index 889241c02a..3cc23cf044 100644 --- a/src/System.ComponentModel.TypeConverter/src/System/ComponentModel/CultureInfoConverter.cs +++ b/src/System.ComponentModel.TypeConverter/src/System/ComponentModel/CultureInfoConverter.cs @@ -27,6 +27,7 @@ namespace System.ComponentModel /// Retrieves the "default" name for our culture. /// </summary> private string DefaultCultureString => SR.CultureInfoConverterDefaultCultureString; + const string DefaultInvariantCultureString = "(Default)"; /// <summary> /// Retrieves the Name for a input CultureInfo. @@ -86,68 +87,58 @@ namespace System.ComponentModel } CultureInfo retVal = null; - CultureInfo currentUICulture = CultureInfo.CurrentUICulture; - + string defaultCultureString = DefaultCultureString; if (culture != null && culture.Equals(CultureInfo.InvariantCulture)) { - CultureInfo.CurrentUICulture = culture; + defaultCultureString = DefaultInvariantCultureString; } - try + // Look for the default culture info. + // + if (text == null || text.Length == 0 || string.Compare(text, defaultCultureString, StringComparison.Ordinal) == 0) { - // Look for the default culture info. - // - if (text == null || text.Length == 0 || string.Compare(text, DefaultCultureString, StringComparison.Ordinal) == 0) - { - retVal = CultureInfo.InvariantCulture; - } + retVal = CultureInfo.InvariantCulture; + } - // Now look in our set of installed cultures. - // - if (retVal == null) + // Now look in our set of installed cultures. + // + if (retVal == null) + { + foreach (CultureInfo info in GetStandardValues(context)) { - foreach (CultureInfo info in GetStandardValues(context)) + if (info != null && string.Compare(GetCultureName(info), text, StringComparison.Ordinal) == 0) { - if (info != null && string.Compare(GetCultureName(info), text, StringComparison.Ordinal) == 0) - { - retVal = info; - break; - } + retVal = info; + break; } - } + } - // Now try to create a new culture info from this value - // - if (retVal == null) + // Now try to create a new culture info from this value + // + if (retVal == null) + { + try { - try - { - retVal = new CultureInfo(text); - } - catch { } + retVal = new CultureInfo(text); } + catch { } + } - // Finally, try to find a partial match - // - if (retVal == null) + // Finally, try to find a partial match + // + if (retVal == null) + { + text = text.ToLower(CultureInfo.CurrentCulture); + foreach (CultureInfo info in _values) { - text = text.ToLower(CultureInfo.CurrentCulture); - foreach (CultureInfo info in _values) + if (info != null && GetCultureName(info).ToLower(CultureInfo.CurrentCulture).StartsWith(text)) { - if (info != null && GetCultureName(info).ToLower(CultureInfo.CurrentCulture).StartsWith(text)) - { - retVal = info; - break; - } + retVal = info; + break; } - } - } - finally - { - CultureInfo.CurrentUICulture = culture; } // No good. We can't support it. @@ -179,27 +170,19 @@ namespace System.ComponentModel if (destinationType == typeof(string)) { string retVal; - CultureInfo currentUICulture = CultureInfo.CurrentUICulture; - + string defaultCultureString = DefaultCultureString; if (culture != null && culture.Equals(CultureInfo.InvariantCulture)) { - CultureInfo.CurrentUICulture = culture; + defaultCultureString = DefaultInvariantCultureString; } - try + if (value == null || value == CultureInfo.InvariantCulture) { - if (value == null || value == CultureInfo.InvariantCulture) - { - retVal = DefaultCultureString; - } - else - { - retVal = GetCultureName(((CultureInfo)value)); - } + retVal = defaultCultureString; } - finally + else { - CultureInfo.CurrentUICulture = culture; + retVal = GetCultureName(((CultureInfo)value)); } return retVal; diff --git a/src/System.ComponentModel.TypeConverter/tests/ContainerTests.cs b/src/System.ComponentModel.TypeConverter/tests/ContainerTests.cs index 3dd4f3ad21..f154d8f132 100644 --- a/src/System.ComponentModel.TypeConverter/tests/ContainerTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/ContainerTests.cs @@ -304,7 +304,7 @@ namespace System.ComponentModel.Tests TestComponent c2 = new TestComponent(); ArgumentException ex; - ex = Assert.Throws<ArgumentException>(() => container.Add(c2, "dup")); + ex = AssertExtensions.Throws<ArgumentException>(null, () => container.Add(c2, "dup")); Assert.Equal(typeof(ArgumentException), ex.GetType()); Assert.Null(ex.InnerException); if (!PlatformDetection.IsNetNative) // .Net Native toolchain optimizes away exception messages and paramnames. @@ -317,7 +317,7 @@ namespace System.ComponentModel.Tests // new component, different case TestComponent c3 = new TestComponent(); - ex = Assert.Throws<ArgumentException>(() => container.Add(c3, "duP")); + ex = AssertExtensions.Throws<ArgumentException>(null, () => container.Add(c3, "duP")); // Duplicate component name 'duP'. Component names must be // unique and case-insensitive Assert.Equal(typeof(ArgumentException), ex.GetType()); @@ -342,7 +342,7 @@ namespace System.ComponentModel.Tests TestContainer container2 = new TestContainer(); TestComponent c5 = new TestComponent(); container2.Add(c5, "C5"); - ex = Assert.Throws<ArgumentException>(() => container.Add(c5, "dup")); + ex = AssertExtensions.Throws<ArgumentException>(null, () => container.Add(c5, "dup")); // Duplicate component name 'dup'. Component names must be // unique and case-insensitive Assert.Equal(typeof(ArgumentException), ex.GetType()); @@ -652,7 +652,7 @@ namespace System.ComponentModel.Tests _container.Add(compB, "B"); ArgumentException ex; - ex = Assert.Throws<ArgumentException>(() => _container.InvokeValidateName(compB, "dup")); + ex = AssertExtensions.Throws<ArgumentException>(null, () => _container.InvokeValidateName(compB, "dup")); // Duplicate component name 'duP'. Component names must be // unique and case-insensitive Assert.Equal(typeof(ArgumentException), ex.GetType()); @@ -668,7 +668,7 @@ namespace System.ComponentModel.Tests // new component, different case TestComponent compC = new TestComponent(); - ex = Assert.Throws<ArgumentException>(() => _container.InvokeValidateName(compC, "dup")); + ex = AssertExtensions.Throws<ArgumentException>(null, () => _container.InvokeValidateName(compC, "dup")); // Duplicate component name 'duP'. Component names must be // unique and case-insensitive Assert.Equal(typeof(ArgumentException), ex.GetType()); @@ -686,7 +686,7 @@ namespace System.ComponentModel.Tests TestContainer container2 = new TestContainer(); TestComponent compD = new TestComponent(); container2.Add(compD, "B"); - ex = Assert.Throws<ArgumentException>(() => _container.InvokeValidateName(compD, "dup")); + ex = AssertExtensions.Throws<ArgumentException>(null, () => _container.InvokeValidateName(compD, "dup")); // Duplicate component name 'duP'. Component names must be // unique and case-insensitive Assert.Equal(typeof(ArgumentException), ex.GetType()); @@ -760,4 +760,4 @@ namespace System.ComponentModel.Tests } } } -}
\ No newline at end of file +} diff --git a/src/System.ComponentModel.TypeConverter/tests/ConverterTestBase.cs b/src/System.ComponentModel.TypeConverter/tests/ConverterTestBase.cs index ba7a4d310f..d29f064e98 100644 --- a/src/System.ComponentModel.TypeConverter/tests/ConverterTestBase.cs +++ b/src/System.ComponentModel.TypeConverter/tests/ConverterTestBase.cs @@ -2,12 +2,13 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System.Diagnostics; using System.Globalization; using Xunit; namespace System.ComponentModel.Tests { - public class ConverterTestBase + public class ConverterTestBase : RemoteExecutorTestBase { public static void CanConvertTo_WithContext(object[,] data, TypeConverter converter) { diff --git a/src/System.ComponentModel.TypeConverter/tests/CultureInfoConverterTests.cs b/src/System.ComponentModel.TypeConverter/tests/CultureInfoConverterTests.cs index 7543564ce9..d4426cc59c 100644 --- a/src/System.ComponentModel.TypeConverter/tests/CultureInfoConverterTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/CultureInfoConverterTests.cs @@ -65,8 +65,8 @@ namespace System.ComponentModel.Tests catch (CultureNotFoundException) { // if we cannot create the cultures we should get exception from the Converter too - Assert.Throws<ArgumentException>(() => c = (CultureInfo)converter.ConvertFrom(null, CultureInfo.InvariantCulture, "Dutch (Bel")); - Assert.Throws<ArgumentException>(() => c = (CultureInfo)converter.ConvertFrom(null, CultureInfo.InvariantCulture, "duTcH (Bel")); + AssertExtensions.Throws<ArgumentException>(null, () => c = (CultureInfo)converter.ConvertFrom(null, CultureInfo.InvariantCulture, "Dutch (Bel")); + AssertExtensions.Throws<ArgumentException>(null, () => c = (CultureInfo)converter.ConvertFrom(null, CultureInfo.InvariantCulture, "duTcH (Bel")); } c = (CultureInfo)converter.ConvertFrom(null, CultureInfo.InvariantCulture, "(Default)"); @@ -93,7 +93,7 @@ namespace System.ComponentModel.Tests catch (CultureNotFoundException) { // if we cannot create the cultures we should get exception from the Converter too - ex = Assert.Throws<ArgumentException>(() => converter.ConvertFrom(null, CultureInfo.InvariantCulture, "(default)")); + ex = AssertExtensions.Throws<ArgumentException>(null, () => converter.ConvertFrom(null, CultureInfo.InvariantCulture, "(default)")); // The (default) culture cannot be converted to // a CultureInfo object on this computer Assert.Equal(typeof(ArgumentException), ex.GetType()); @@ -114,7 +114,7 @@ namespace System.ComponentModel.Tests } catch (CultureNotFoundException) { - ex = Assert.Throws<ArgumentException>(() => converter.ConvertFrom(null, CultureInfo.InvariantCulture, " ")); + ex = AssertExtensions.Throws<ArgumentException>(null, () => converter.ConvertFrom(null, CultureInfo.InvariantCulture, " ")); // The culture cannot be converted to // a CultureInfo object on this computer Assert.Equal(typeof(ArgumentException), ex.GetType()); @@ -135,7 +135,7 @@ namespace System.ComponentModel.Tests } catch (CultureNotFoundException) { - ex = Assert.Throws<ArgumentException>(() => converter.ConvertFrom(null, CultureInfo.InvariantCulture, "\r\n")); + ex = AssertExtensions.Throws<ArgumentException>(null, () => converter.ConvertFrom(null, CultureInfo.InvariantCulture, "\r\n")); // The \r\n culture cannot be converted to // a CultureInfo object on this computer Assert.Equal(typeof(ArgumentException), ex.GetType()); @@ -209,4 +209,4 @@ namespace System.ComponentModel.Tests } } } -}
\ No newline at end of file +} diff --git a/src/System.ComponentModel.TypeConverter/tests/DateTimeConverterTests.cs b/src/System.ComponentModel.TypeConverter/tests/DateTimeConverterTests.cs index 940c6b7fbc..349f945b4e 100644 --- a/src/System.ComponentModel.TypeConverter/tests/DateTimeConverterTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/DateTimeConverterTests.cs @@ -48,20 +48,25 @@ namespace System.ComponentModel.Tests [Fact] public static void ConvertTo_WithContext() { - DateTimeFormatInfo formatInfo = (DateTimeFormatInfo)CultureInfo.CurrentCulture.GetFormat(typeof(DateTimeFormatInfo)); - string formatWithTime = formatInfo.ShortDatePattern + " " + formatInfo.ShortTimePattern; - string format = formatInfo.ShortDatePattern; - DateTime testDateAndTime = new DateTime(1998, 12, 5, 22, 30, 30); + RemoteInvoke(() => { + CultureInfo.CurrentCulture = new CultureInfo("pl-PL"); + DateTimeFormatInfo formatInfo = (DateTimeFormatInfo)CultureInfo.CurrentCulture.GetFormat(typeof(DateTimeFormatInfo)); + string formatWithTime = formatInfo.ShortDatePattern + " " + formatInfo.ShortTimePattern; + string format = formatInfo.ShortDatePattern; + DateTime testDateAndTime = new DateTime(1998, 12, 5, 22, 30, 30); - ConvertTo_WithContext(new object[5, 3] - { + ConvertTo_WithContext(new object[5, 3] + { { DateTimeConverterTests.s_testDate, DateTimeConverterTests.s_testDate.ToString(format, CultureInfo.CurrentCulture), null }, { testDateAndTime, testDateAndTime.ToString(formatWithTime, CultureInfo.CurrentCulture), null }, { DateTime.MinValue, string.Empty, null }, { DateTimeConverterTests.s_testDate, "1998-12-05", CultureInfo.InvariantCulture }, { testDateAndTime, "12/05/1998 22:30:30", CultureInfo.InvariantCulture } - }, - DateTimeConverterTests.s_converter); + }, + DateTimeConverterTests.s_converter); + + return SuccessExitCode; + }); } } } diff --git a/src/System.ComponentModel.TypeConverter/tests/DateTimeOffsetConverterTests.cs b/src/System.ComponentModel.TypeConverter/tests/DateTimeOffsetConverterTests.cs index 5880ca2520..2c4712185b 100644 --- a/src/System.ComponentModel.TypeConverter/tests/DateTimeOffsetConverterTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/DateTimeOffsetConverterTests.cs @@ -48,20 +48,27 @@ namespace System.ComponentModel.Tests [Fact] public static void ConvertTo_WithContext() { - DateTimeFormatInfo formatInfo = (DateTimeFormatInfo)CultureInfo.CurrentCulture.GetFormat(typeof(DateTimeFormatInfo)); - string formatWithTime = formatInfo.ShortDatePattern + " " + formatInfo.ShortTimePattern + " zzz"; - string format = formatInfo.ShortDatePattern + " zzz"; - DateTimeOffset testDateAndTime = new DateTimeOffset(new DateTime(1998, 12, 5, 22, 30, 30)); + RemoteInvoke(() => + { + CultureInfo.CurrentCulture = new CultureInfo("pl-PL"); - ConvertTo_WithContext(new object[5, 3] - { + DateTimeFormatInfo formatInfo = (DateTimeFormatInfo)CultureInfo.CurrentCulture.GetFormat(typeof(DateTimeFormatInfo)); + string formatWithTime = formatInfo.ShortDatePattern + " " + formatInfo.ShortTimePattern + " zzz"; + string format = formatInfo.ShortDatePattern + " zzz"; + DateTimeOffset testDateAndTime = new DateTimeOffset(new DateTime(1998, 12, 5, 22, 30, 30)); + + ConvertTo_WithContext(new object[5, 3] + { { DateTimeOffsetConverterTests.s_testOffset, DateTimeOffsetConverterTests.s_testOffset.ToString(format, CultureInfo.CurrentCulture), null }, { testDateAndTime, testDateAndTime.ToString(formatWithTime, CultureInfo.CurrentCulture), null }, { DateTimeOffset.MinValue, string.Empty, null }, { DateTimeOffsetConverterTests.s_testOffset, DateTimeOffsetConverterTests.s_testOffset.ToString("yyyy-MM-dd zzz", CultureInfo.InvariantCulture), CultureInfo.InvariantCulture }, { testDateAndTime, testDateAndTime.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture } - }, - DateTimeOffsetConverterTests.s_converter); + }, + DateTimeOffsetConverterTests.s_converter); + + return SuccessExitCode; + }); } } } diff --git a/src/System.ComponentModel.TypeConverter/tests/Drawing/ColorConverterTests.cs b/src/System.ComponentModel.TypeConverter/tests/Drawing/ColorConverterTests.cs index 2b86d4edab..fef8e7bddc 100644 --- a/src/System.ComponentModel.TypeConverter/tests/Drawing/ColorConverterTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/Drawing/ColorConverterTests.cs @@ -166,7 +166,7 @@ namespace System.ComponentModel.TypeConverterTests public void ConvertFrom_ArgumentException(string value) { var conv = new ColorConverter(); - Assert.Throws<ArgumentException>(() => + AssertExtensions.Throws<ArgumentException>(null, () => { conv.ConvertFrom(null, CultureInfo.InvariantCulture, value); }); @@ -326,7 +326,7 @@ namespace System.ComponentModel.TypeConverterTests public void ConvertFromInvariantString_Invalid() { var conv = new ColorConverter(); - Assert.Throws<ArgumentException>(() => + AssertExtensions.Throws<ArgumentException>(null, () => { conv.ConvertFromInvariantString("1, 2, 3, 4, 5"); }); @@ -372,7 +372,7 @@ namespace System.ComponentModel.TypeConverterTests public void ConvertFromString_Invalid() { var conv = new ColorConverter(); - Assert.Throws<ArgumentException>(() => + AssertExtensions.Throws<ArgumentException>(null, () => { conv.ConvertFromString(string.Format("1{0} 2{0} 3{0} 4{0} 5", CultureInfo.CurrentCulture.TextInfo.ListSeparator)); }); diff --git a/src/System.ComponentModel.TypeConverter/tests/Drawing/PointConverterTests.cs b/src/System.ComponentModel.TypeConverter/tests/Drawing/PointConverterTests.cs index cd231d89dc..c51d9a11ab 100644 --- a/src/System.ComponentModel.TypeConverter/tests/Drawing/PointConverterTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/Drawing/PointConverterTests.cs @@ -160,7 +160,7 @@ namespace System.ComponentModel.TypeConverterTests [Fact] public void CreateInstance_CaseSensitive() { - Assert.Throws<ArgumentException>(() => + AssertExtensions.Throws<ArgumentException>(null, () => { Converter.CreateInstance(null, new Dictionary<string, object> { diff --git a/src/System.ComponentModel.TypeConverter/tests/Drawing/RectangleConverterTests.cs b/src/System.ComponentModel.TypeConverter/tests/Drawing/RectangleConverterTests.cs index 065d442afa..3093765f38 100644 --- a/src/System.ComponentModel.TypeConverter/tests/Drawing/RectangleConverterTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/Drawing/RectangleConverterTests.cs @@ -158,7 +158,7 @@ namespace System.ComponentModel.TypeConverterTests [Fact] public void CreateInstance_CaseSensitive() { - Assert.Throws<ArgumentException>(() => + AssertExtensions.Throws<ArgumentException>(null, () => { Converter.CreateInstance(null, new Dictionary<string, object> { @@ -278,4 +278,4 @@ namespace System.ComponentModel.TypeConverterTests CultureInfo.CurrentCulture.TextInfo.ListSeparator), str); } } -}
\ No newline at end of file +} diff --git a/src/System.ComponentModel.TypeConverter/tests/Drawing/SizeConverterTests.cs b/src/System.ComponentModel.TypeConverter/tests/Drawing/SizeConverterTests.cs index 794ba38ad1..ea0680a07f 100644 --- a/src/System.ComponentModel.TypeConverter/tests/Drawing/SizeConverterTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/Drawing/SizeConverterTests.cs @@ -160,7 +160,7 @@ namespace System.ComponentModel.TypeConverterTests [Fact] public void CreateInstance_CaseSensitive() { - Assert.Throws<ArgumentException>(() => + AssertExtensions.Throws<ArgumentException>(null, () => { Converter.CreateInstance(null, new Dictionary<string, object> { diff --git a/src/System.ComponentModel.TypeConverter/tests/Drawing/StringTypeConverterTestBase.cs b/src/System.ComponentModel.TypeConverter/tests/Drawing/StringTypeConverterTestBase.cs index 6895a2e4e3..5bb03f7bb6 100644 --- a/src/System.ComponentModel.TypeConverter/tests/Drawing/StringTypeConverterTestBase.cs +++ b/src/System.ComponentModel.TypeConverter/tests/Drawing/StringTypeConverterTestBase.cs @@ -80,7 +80,7 @@ namespace System.ComponentModel.TypeConverterTests protected void ConvertFromThrowsArgumentExceptionForString(string value) { - Assert.Throws<ArgumentException>(() => + AssertExtensions.Throws<ArgumentException>(null, () => { Converter.ConvertFrom(null, CultureInfo.InvariantCulture, value); }); @@ -137,7 +137,7 @@ namespace System.ComponentModel.TypeConverterTests protected void ConvertFromInvariantStringThrowsArgumentException(string str) { - Assert.Throws<ArgumentException>(() => + AssertExtensions.Throws<ArgumentException>(null, () => { Converter.ConvertFromInvariantString(str); }); @@ -155,7 +155,7 @@ namespace System.ComponentModel.TypeConverterTests protected void ConvertFromStringThrowsArgumentException(string str) { - Assert.Throws<ArgumentException>(() => + AssertExtensions.Throws<ArgumentException>(null, () => { Converter.ConvertFromString(str); }); @@ -171,4 +171,4 @@ namespace System.ComponentModel.TypeConverterTests Assert.IsType<FormatException>(ex.InnerException); } } -}
\ No newline at end of file +} diff --git a/src/System.ComponentModel.TypeConverter/tests/EnumConverterTest.cs b/src/System.ComponentModel.TypeConverter/tests/EnumConverterTest.cs index 1bc9ef6616..e552235d11 100644 --- a/src/System.ComponentModel.TypeConverter/tests/EnumConverterTest.cs +++ b/src/System.ComponentModel.TypeConverter/tests/EnumConverterTest.cs @@ -91,11 +91,8 @@ namespace System.ComponentModel.Tests [Fact] public static void ConvertTo_WithContext_Negative() { - Assert.Throws<ArgumentException>( - () => EnumConverterTests.s_someEnumConverter.ConvertTo(TypeConverterTests.s_context, null, 3, typeof(string))); - - Assert.Throws<ArgumentException>( - () => new EnumConverter(typeof(Enum)).ConvertTo(TypeConverterTests.s_context, null, SomeFlagsEnum.Option1, typeof(string))); + AssertExtensions.Throws<ArgumentException>(null, () => EnumConverterTests.s_someEnumConverter.ConvertTo(TypeConverterTests.s_context, null, 3, typeof(string))); + AssertExtensions.Throws<ArgumentException>(null, "enumType", () => new EnumConverter(typeof(Enum)).ConvertTo(TypeConverterTests.s_context, null, SomeFlagsEnum.Option1, typeof(string))); } [Fact] diff --git a/src/System.ComponentModel.TypeConverter/tests/InstanceDescriptorTests.cs b/src/System.ComponentModel.TypeConverter/tests/InstanceDescriptorTests.cs index 4aa9903cf7..e1ed3d6f6e 100644 --- a/src/System.ComponentModel.TypeConverter/tests/InstanceDescriptorTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/InstanceDescriptorTests.cs @@ -50,7 +50,7 @@ namespace System.ComponentModel.Tests [Fact] public void Constructor0_Arguments_Mismatch() { - ArgumentException ex = Assert.Throws<ArgumentException>(() => new InstanceDescriptor(ci, null)); + ArgumentException ex = AssertExtensions.Throws<ArgumentException>(null, () => new InstanceDescriptor(ci, null)); // Length mismatch Assert.Equal(typeof(ArgumentException), ex.GetType()); Assert.Null(ex.InnerException); @@ -75,7 +75,7 @@ namespace System.ComponentModel.Tests [Fact] public void Constructor_MemberInfo_Null_Boolean() { - Assert.Throws<ArgumentException>(() => new InstanceDescriptor(ci, null, false)); + AssertExtensions.Throws<ArgumentException>(null, () => new InstanceDescriptor(ci, null, false)); // mismatch for required parameters } @@ -107,7 +107,7 @@ namespace System.ComponentModel.Tests { FieldInfo fi = typeof(StaticField).GetField(nameof(StaticField.Field)); - ArgumentException ex = Assert.Throws<ArgumentException>(() => new InstanceDescriptor(fi, new object[] { url })); + ArgumentException ex = AssertExtensions.Throws<ArgumentException>(null, () => new InstanceDescriptor(fi, new object[] { url })); // Parameter must be static Assert.Equal(typeof(ArgumentException), ex.GetType()); Assert.Null(ex.InnerException); @@ -135,7 +135,7 @@ namespace System.ComponentModel.Tests { FieldInfo fi = typeof(InstanceField).GetField(nameof(InstanceField.Name)); - ArgumentException ex = Assert.Throws<ArgumentException>(() => new InstanceDescriptor(fi, null)); + ArgumentException ex = AssertExtensions.Throws<ArgumentException>(null, () => new InstanceDescriptor(fi, null)); // Parameter must be static Assert.Equal(typeof(ArgumentException), ex.GetType()); Assert.Null(ex.InnerException); @@ -181,7 +181,7 @@ namespace System.ComponentModel.Tests ArgumentException ex; - ex = Assert.Throws<ArgumentException>(() => new InstanceDescriptor(pi, null)); + ex = AssertExtensions.Throws<ArgumentException>(null, () => new InstanceDescriptor(pi, null)); // Parameter must be static Assert.Equal(typeof(ArgumentException), ex.GetType()); Assert.Null(ex.InnerException); @@ -191,7 +191,7 @@ namespace System.ComponentModel.Tests Assert.Null(ex.ParamName); } - ex = Assert.Throws<ArgumentException>(() => new InstanceDescriptor(pi, null, false)); + ex = AssertExtensions.Throws<ArgumentException>(null, () => new InstanceDescriptor(pi, null, false)); // Parameter must be static Assert.Equal(typeof(ArgumentException), ex.GetType()); Assert.Null(ex.InnerException); @@ -207,7 +207,7 @@ namespace System.ComponentModel.Tests { PropertyInfo pi = typeof(WriteOnlyProperty).GetProperty(nameof(WriteOnlyProperty.Name)); - ArgumentException ex = Assert.Throws<ArgumentException>(() => new InstanceDescriptor(pi, null)); + ArgumentException ex = AssertExtensions.Throws<ArgumentException>(null, () => new InstanceDescriptor(pi, null)); // Parameter must be readable Assert.Equal(typeof(ArgumentException), ex.GetType()); Assert.Null(ex.InnerException); @@ -248,4 +248,4 @@ namespace System.ComponentModel.Tests public static string Property => "PropertyValue"; } } -}
\ No newline at end of file +} diff --git a/src/System.ComponentModel.TypeConverter/tests/MemberDescriptorTests.cs b/src/System.ComponentModel.TypeConverter/tests/MemberDescriptorTests.cs index 8e8e7f47ae..42c9326495 100644 --- a/src/System.ComponentModel.TypeConverter/tests/MemberDescriptorTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/MemberDescriptorTests.cs @@ -36,15 +36,15 @@ namespace System.ComponentModel.Tests [Fact] public void MemberDescriptorFromName() { - Assert.Throws<ArgumentException>(() => new MockMemberDescriptor((string)null)); - Assert.Throws<ArgumentException>(() => new MockMemberDescriptor("")); + AssertExtensions.Throws<ArgumentException>(null, () => new MockMemberDescriptor((string)null)); + AssertExtensions.Throws<ArgumentException>(null, () => new MockMemberDescriptor("")); } [Fact] public void MemberDescriptorFromNameAndAttributes() { - Assert.Throws<ArgumentException>(() => new MockMemberDescriptor((string)null, new Attribute[0])); - Assert.Throws<ArgumentException>(() => new MockMemberDescriptor("", new Attribute[0])); + AssertExtensions.Throws<ArgumentException>(null, () => new MockMemberDescriptor((string)null, new Attribute[0])); + AssertExtensions.Throws<ArgumentException>(null, () => new MockMemberDescriptor("", new Attribute[0])); var name = nameof(MemberDescriptorFromNameAndAttributes); var attributes = new Attribute[] { new MockAttribute1(), new MockAttribute2() }; diff --git a/src/System.ComponentModel.TypeConverter/tests/NullableConverterTests.cs b/src/System.ComponentModel.TypeConverter/tests/NullableConverterTests.cs index 9035ca227a..1fa2989be8 100644 --- a/src/System.ComponentModel.TypeConverter/tests/NullableConverterTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/NullableConverterTests.cs @@ -17,7 +17,7 @@ namespace System.ComponentModel.Tests [Fact] public static void Constructor_Negative() { - Assert.Throws<ArgumentException>(() => new NullableConverter(typeof(string))); + AssertExtensions.Throws<ArgumentException>("type", () => new NullableConverter(typeof(string))); } [Fact] diff --git a/src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj b/src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj index 0af21b39a6..b5ac1d292a 100644 --- a/src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj +++ b/src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj @@ -85,5 +85,11 @@ <Compile Include="InstanceDescriptorTests.cs" /> <Compile Include="Security\Authentication\ExtendedProtection\ExtendedProtectionPolicyTypeConverterTests.cs" /> </ItemGroup> + <ItemGroup> + <ProjectReference Include="$(CommonTestPath)\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj"> + <Project>{69e46a6f-9966-45a5-8945-2559fe337827}</Project> + <Name>RemoteExecutorConsoleApp</Name> + </ProjectReference> + </ItemGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> </Project>
\ No newline at end of file diff --git a/src/System.ComponentModel.TypeConverter/tests/TimerTests.cs b/src/System.ComponentModel.TypeConverter/tests/TimerTests.cs index 07dfb9a7d2..886d0fd170 100644 --- a/src/System.ComponentModel.TypeConverter/tests/TimerTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/TimerTests.cs @@ -20,7 +20,7 @@ namespace System.Timers.Tests [InlineData(double.MaxValue)] public void NegativeTests(double interval) { - Assert.Throws<ArgumentException>(null, () => new TestTimer(interval)); + AssertExtensions.Throws<ArgumentException>(null, () => new TestTimer(interval)); } [Fact] diff --git a/src/System.ComponentModel.TypeConverter/tests/TypeConverterTests.cs b/src/System.ComponentModel.TypeConverter/tests/TypeConverterTests.cs index 1f5133fdca..51041e28e9 100644 --- a/src/System.ComponentModel.TypeConverter/tests/TypeConverterTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/TypeConverterTests.cs @@ -2,12 +2,13 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System.Diagnostics; using System.Globalization; using Xunit; namespace System.ComponentModel.Tests { - public class TypeConverterTests : TypeConverter + public class TypeConverterTests : RemoteExecutorTestBase { public static TypeConverter s_converter = new TypeConverter(); public static ITypeDescriptorContext s_context = new MyTypeDescriptorContext(); @@ -82,28 +83,34 @@ namespace System.ComponentModel.Tests [Fact] public static void ConvertTo_WithContext() { - Assert.Throws<ArgumentNullException>( + RemoteInvoke(() => + { + CultureInfo.CurrentCulture = new CultureInfo("pl-PL"); + + Assert.Throws<ArgumentNullException>( () => TypeConverterTests.s_converter.ConvertTo(TypeConverterTests.s_context, null, TypeConverterTests.c_conversionInputValue, null)); - Assert.Throws<NotSupportedException>( - () => TypeConverterTests.s_converter.ConvertTo(TypeConverterTests.s_context, null, TypeConverterTests.c_conversionInputValue, typeof(int))); + Assert.Throws<NotSupportedException>( + () => TypeConverterTests.s_converter.ConvertTo(TypeConverterTests.s_context, null, TypeConverterTests.c_conversionInputValue, typeof(int))); - object o = TypeConverterTests.s_converter.ConvertTo( - TypeConverterTests.s_context, null, TypeConverterTests.c_conversionInputValue, typeof(string)); - TypeConverterTests.VerifyConversionToString(o); + object o = TypeConverterTests.s_converter.ConvertTo( + TypeConverterTests.s_context, null, TypeConverterTests.c_conversionInputValue, typeof(string)); + TypeConverterTests.VerifyConversionToString(o); - o = TypeConverterTests.s_converter.ConvertTo( - TypeConverterTests.s_context, CultureInfo.CurrentCulture, TypeConverterTests.c_conversionInputValue, typeof(string)); - TypeConverterTests.VerifyConversionToString(o); + o = TypeConverterTests.s_converter.ConvertTo( + TypeConverterTests.s_context, CultureInfo.CurrentCulture, TypeConverterTests.c_conversionInputValue, typeof(string)); + TypeConverterTests.VerifyConversionToString(o); - o = TypeConverterTests.s_converter.ConvertTo( - TypeConverterTests.s_context, CultureInfo.InvariantCulture, TypeConverterTests.c_conversionInputValue, typeof(string)); - TypeConverterTests.VerifyConversionToString(o); + o = TypeConverterTests.s_converter.ConvertTo( + TypeConverterTests.s_context, CultureInfo.InvariantCulture, TypeConverterTests.c_conversionInputValue, typeof(string)); + TypeConverterTests.VerifyConversionToString(o); - string s = TypeConverterTests.s_converter.ConvertTo( - TypeConverterTests.s_context, CultureInfo.InvariantCulture, new FormattableClass(), typeof(string)) as string; - Assert.NotNull(s); - Assert.Equal(FormattableClass.Token, s); + string s = TypeConverterTests.s_converter.ConvertTo( + TypeConverterTests.s_context, CultureInfo.InvariantCulture, new FormattableClass(), typeof(string)) as string; + Assert.NotNull(s); + Assert.Equal(FormattableClass.Token, s); + return SuccessExitCode; + }); } [Fact] @@ -138,12 +145,8 @@ namespace System.ComponentModel.Tests private void RunProtectedMethods() { - Assert.Throws<NotSupportedException>(() => GetConvertFromException(null)); - Assert.Throws<NotSupportedException>(() => GetConvertFromException("1")); - Assert.Throws<NotSupportedException>(() => GetConvertFromException(new BaseClass())); - Assert.Throws<NotSupportedException>(() => GetConvertToException(null, typeof(int))); - Assert.Throws<NotSupportedException>(() => GetConvertToException("1", typeof(int))); - Assert.Throws<NotSupportedException>(() => GetConvertToException(new BaseClass(), typeof(BaseClass))); + var tc = new TypeConverterHelper(); + tc.RunProtectedMethods(); } private static void VerifyConversionToString(object o) @@ -151,5 +154,20 @@ namespace System.ComponentModel.Tests Assert.True(o is string); Assert.Equal(TypeConverterTests.c_conversionResult, (string)o); } + + private class TypeConverterHelper : TypeConverter + { + public void RunProtectedMethods() + { + var tc = new TypeConverter(); + + Assert.Throws<NotSupportedException>(() => GetConvertFromException(null)); + Assert.Throws<NotSupportedException>(() => GetConvertFromException("1")); + Assert.Throws<NotSupportedException>(() => GetConvertFromException(new BaseClass())); + Assert.Throws<NotSupportedException>(() => GetConvertToException(null, typeof(int))); + Assert.Throws<NotSupportedException>(() => GetConvertToException("1", typeof(int))); + Assert.Throws<NotSupportedException>(() => GetConvertToException(new BaseClass(), typeof(BaseClass))); + } + } } } |