diff --git a/src/System.Runtime/tests/System/StringTests.cs b/src/System.Runtime/tests/System/StringTests.cs index e3cf3be98571..db92512b2915 100644 --- a/src/System.Runtime/tests/System/StringTests.cs +++ b/src/System.Runtime/tests/System/StringTests.cs @@ -1618,23 +1618,32 @@ public static IEnumerable Join_ObjectArray_TestData() yield return new object[] { null, new object[] { "Foo", "Bar", "Baz" }, "FooBarBaz" }; yield return new object[] { "$$", new object[] { "Foo", null, "Baz" }, "Foo$$$$Baz" }; - // Join does nothing if array[0] is null - yield return new object[] { "$$", new object[] { null, "Bar", "Baz" }, "" }; + // Test join when first value is null + yield return new object[] { "$$", new object[] { null, "Bar", "Baz" }, "$$Bar$$Baz" }; // Join should ignore objects that have a null ToString() value yield return new object[] { "|", new object[] { new ObjectWithNullToString(), "Foo", new ObjectWithNullToString(), "Bar", new ObjectWithNullToString() }, "|Foo||Bar|" }; } - [ActiveIssue(13747)] [Theory] [MemberData(nameof(Join_ObjectArray_TestData))] + [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework | TargetFrameworkMonikers.NetcoreUwp | TargetFrameworkMonikers.Netcoreapp1_0)] public static void Join_ObjectArray(string separator, object[] values, string expected) { Assert.Equal(expected, string.Join(separator, values)); - if (!(values.Length > 0 && values[0] == null)) - { - Assert.Equal(expected, string.Join(separator, (IEnumerable)values)); - } + Assert.Equal(expected, string.Join(separator, (IEnumerable)values)); + } + + [Theory] + [MemberData(nameof(Join_ObjectArray_TestData))] + [SkipOnTargetFramework(TargetFrameworkMonikers.Netcoreapp1_1)] + public static void Join_ObjectArray_WithNullIssue(string separator, object[] values, string expected) + { + string enumerableExpected = expected; + if (values.Length > 0 && values[0] == null) // Join return nothing when first value is null + expected = ""; + Assert.Equal(expected, string.Join(separator, values)); + Assert.Equal(enumerableExpected, string.Join(separator, (IEnumerable)values)); } [Fact]