Skip to content

Commit e862eb6

Browse files
CoryCharltonjosesimoes
authored andcommitted
Adding some unit tests for string (#211)
***NO_CI***
1 parent bfce1d7 commit e862eb6

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

Tests/NFUnitTestSystemLib/UnitTestStringTests.cs

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,81 @@ public static void EndsWithNoMatchNonOrdinal_StringComparison()
967967
Assert.IsFalse(s.EndsWith(value));
968968
}
969969

970+
[TestMethod]
971+
public void IndexOf_should_return_first_index_of_value()
972+
{
973+
// TODO: Check docs to confirm constraints on "count". Currently ArgumentOutOfRangeException is thrown if start + count exceeds string.Length
974+
var source = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
975+
976+
Assert.AreEqual(0, source.IndexOf('a'), "Case 1");
977+
Assert.AreEqual(26, source.IndexOf('a', 1), "Case 2");
978+
Assert.AreEqual(26, source.IndexOf('a', 1, source.Length - 1), "Case 3");
979+
Assert.AreEqual(0, source.IndexOf("a"), "Case 4");
980+
Assert.AreEqual(26, source.IndexOf("a", 1), "Case 5");
981+
Assert.AreEqual(26, source.IndexOf("a", 1, source.Length - 1), "Case 6");
982+
}
983+
984+
[TestMethod]
985+
public void IndexOf_should_return_negative_one_if_source_is_empty_string()
986+
{
987+
Assert.AreEqual(-1, string.Empty.IndexOf('.'), "Case 1");
988+
Assert.AreEqual(-1, string.Empty.IndexOf('.', 1), "Case 2");
989+
Assert.AreEqual(-1, string.Empty.IndexOf('.', 1, 2), "Case 3");
990+
Assert.AreEqual(-1, string.Empty.IndexOf("."), "Case 4");
991+
Assert.AreEqual(-1, string.Empty.IndexOf(".", 1), "Case 5");
992+
Assert.AreEqual(-1, string.Empty.IndexOf(".", 1, 2), "Case 6");
993+
}
994+
995+
[TestMethod]
996+
public void IndexOf_should_return_negative_one_if_value_is_not_found()
997+
{
998+
var source = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
999+
1000+
Assert.AreEqual(-1, source.IndexOf('.'), "Case 1");
1001+
Assert.AreEqual(-1, source.IndexOf('.', 1), "Case 2");
1002+
Assert.AreEqual(-1, source.IndexOf('.', 1, 2), "Case 3");
1003+
Assert.AreEqual(-1, source.IndexOf("."), "Case 4");
1004+
Assert.AreEqual(-1, source.IndexOf(".", 1), "Case 5");
1005+
Assert.AreEqual(-1, source.IndexOf(".", 1, 2), "Case 6");
1006+
}
1007+
1008+
[TestMethod]
1009+
public void LastIndexOf_should_return_last_index_of_value()
1010+
{
1011+
var source = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
1012+
1013+
Assert.AreEqual(26, source.LastIndexOf('a'), "Case 1");
1014+
Assert.AreEqual(0, source.LastIndexOf('a', 1), "Case 2");
1015+
Assert.AreEqual(0, source.LastIndexOf('a', 1, 2), "Case 3");
1016+
Assert.AreEqual(26, source.LastIndexOf("a"), "Case 4");
1017+
Assert.AreEqual(0, source.LastIndexOf("a", 1), "Case 5");
1018+
Assert.AreEqual(0, source.LastIndexOf("a", 1, 2), "Case 6");
1019+
}
1020+
1021+
[TestMethod]
1022+
public void LastIndexOf_should_return_negative_one_if_source_is_empty_string()
1023+
{
1024+
Assert.AreEqual(-1, string.Empty.LastIndexOf('.'), "Case 1");
1025+
Assert.AreEqual(-1, string.Empty.LastIndexOf('.', 1), "Case 2");
1026+
Assert.AreEqual(-1, string.Empty.LastIndexOf('.', 1, 2), "Case 3");
1027+
Assert.AreEqual(-1, string.Empty.LastIndexOf("."), "Case 4");
1028+
Assert.AreEqual(-1, string.Empty.LastIndexOf(".", 1), "Case 5");
1029+
Assert.AreEqual(-1, string.Empty.LastIndexOf(".", 1, 2), "Case 6");
1030+
}
1031+
1032+
[TestMethod]
1033+
public void LastIndexOf_should_return_negative_one_if_value_is_not_found()
1034+
{
1035+
var source = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
1036+
1037+
Assert.AreEqual(-1, source.LastIndexOf('.'), "Case 1");
1038+
Assert.AreEqual(-1, source.LastIndexOf('.', 1), "Case 2");
1039+
Assert.AreEqual(-1, source.LastIndexOf('.', 1, 2), "Case 3");
1040+
Assert.AreEqual(-1, source.LastIndexOf("."), "Case 4");
1041+
Assert.AreEqual(-1, source.LastIndexOf(".", 1), "Case 5");
1042+
Assert.AreEqual(-1, source.LastIndexOf(".", 1, 2), "Case 6");
1043+
}
1044+
9701045
/// <summary>
9711046
/// A class whose ToString method return null
9721047
/// </summary>

0 commit comments

Comments
 (0)