Within this test method I need to compare the strings of user3 while ignoring case sensitivity. I'm thinking I should use CultureInfo.InvariantCulture to ignoreCase. Is this the best way to accomplish this, or is there a better way?
//set test to get user
AsaMembershipProvider prov = this.GetMembershipProvider();
//call get users
MembershipUser user1 = prov.GetUser("test.user", false);
//ask for the username with deliberate case differences
MembershipUser user2 = prov.GetUser("TeSt.UsEr", false);
//getting a user with Upper and lower case in the username.
MembershipUser user3 = prov.GetUser("Test.User", false);
//prove that you still get the user,
Assert.AreNotEqual(null, user1);
Assert.AreNotEqual(null, user2);
//test by using the “.ToLower()” function on the resulting string.
Assert.AreEqual(user1.UserName.ToLower(), user2.UserName.ToLower());
Assert.AreEqual(user1.UserName, "test.user");
Assert.AreEqual(user3.UserName, "test.user");
Using the Assert.AreEqual with the ignoreCase parameter is better because it doesn't require the creation of a new string (and, as pointed out by @dtb, you could work following the rules of a specific culture info)
Assert.AreEqual(user1.UserName, user2.UserName, true, CultureInfo.CurrentCulture);
StringInstance.ToUpperInvariant()
user1.UserName.ToUpperInvariant() == user3.UserName.ToUpperInvariant();
user3.UserName.ToUpperInvariant() == "TEST.USER";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With