improve span.StartsWith(span) test coverage (dotnet/corefx#41169)
authorAdam Sitnik <adam.sitnik@gmail.com>
Wed, 18 Sep 2019 15:47:51 +0000 (17:47 +0200)
committerGitHub <noreply@github.com>
Wed, 18 Sep 2019 15:47:51 +0000 (17:47 +0200)
Commit migrated from https://github.com/dotnet/corefx/commit/b8d1e0620e6ed6355d76d118c6fa609e7f7cc049

src/libraries/Common/tests/Tests/System/StringTests.cs

index ebfbd8c..31e914e 100644 (file)
@@ -1270,8 +1270,8 @@ namespace System.Tests
                         firstSpan.ToString().StartsWith(secondSpan.ToString(), StringComparison.CurrentCulture),
                         firstSpan.Contains(secondSpan, StringComparison.CurrentCulture));
                     Assert.Equal(
-                        firstSpan.ToString().StartsWith(secondSpan.ToString(), StringComparison.CurrentCulture),
-                        firstSpan.Contains(secondSpan, StringComparison.CurrentCulture));
+                        firstSpan.ToString().StartsWith(secondSpan.ToString(), StringComparison.CurrentCultureIgnoreCase),
+                        firstSpan.Contains(secondSpan, StringComparison.CurrentCultureIgnoreCase));
                     Assert.Equal(
                         firstSpan.ToString().StartsWith(secondSpan.ToString(), StringComparison.InvariantCulture),
                         firstSpan.Contains(secondSpan, StringComparison.InvariantCulture));
@@ -4712,7 +4712,10 @@ namespace System.Tests
 
             // Invalid comparison type
             AssertExtensions.Throws<ArgumentException>("comparisonType", () => s.StartsWith("H", StringComparison.CurrentCulture - 1));
+            AssertExtensions.Throws<ArgumentException>("comparisonType", () => s.AsSpan().StartsWith("H".AsSpan(), StringComparison.CurrentCulture - 1));
+
             AssertExtensions.Throws<ArgumentException>("comparisonType", () => s.StartsWith("H", StringComparison.OrdinalIgnoreCase + 1));
+            AssertExtensions.Throws<ArgumentException>("comparisonType", () => s.AsSpan().StartsWith("H".AsSpan(), StringComparison.OrdinalIgnoreCase + 1));
         }
 
         [Fact]
@@ -4790,6 +4793,11 @@ namespace System.Tests
             ReadOnlySpan<char> slice = s2.AsSpan();
             c = span.StartsWith<char>(slice);
             Assert.True(c);
+
+            span = new ReadOnlySpan<char>(a);
+            slice = new ReadOnlySpan<char>(b);
+            c = span.StartsWith<char>(slice);
+            Assert.True(c);
         }
 
         [Fact]
@@ -6977,6 +6985,10 @@ namespace System.Tests
             Assert.Throws<ArgumentException>(() => s1.StartsWith(s1, StringComparison.OrdinalIgnoreCase + 1));
             Assert.Throws<ArgumentException>(() => s1.StartsWith(s1, (StringComparison)6));
 
+            Assert.Throws<ArgumentException>(() => s1.AsSpan().StartsWith(s1.AsSpan(), StringComparison.CurrentCulture - 1));
+            Assert.Throws<ArgumentException>(() => s1.AsSpan().StartsWith(s1.AsSpan(), StringComparison.OrdinalIgnoreCase + 1));
+            Assert.Throws<ArgumentException>(() => s1.AsSpan().StartsWith(s1.AsSpan(), (StringComparison)6));
+
             Assert.Throws<ArgumentException>(() => s1.AsSpan().CompareTo(s1.AsSpan(), StringComparison.CurrentCulture - 1));
             Assert.Throws<ArgumentException>(() => s1.AsSpan().CompareTo(s1.AsSpan(), StringComparison.OrdinalIgnoreCase + 1));
             Assert.Throws<ArgumentException>(() => s1.AsSpan().CompareTo(s1.AsSpan(), (StringComparison)6));