I create a nice and easy extension method to make your if statements read nicely.
namespace ExtensionMethods
{
public static class StringExtensions
{
public static bool IsNullOrEmpty(this string input)
{
return string.IsNullOrEmpty(input);
}
public static bool IsNotNullOrEmpty(this string input)
{
return !string.IsNullOrEmpty(input);
}
}
}
And below are the unit tests
[TestClass]
public class StringExtensionIsNullOrEmpty
{
[TestMethod]
public void WillReturnTrueIfTheStringIsNull()
{
string input = null;
var expected = true;
var result = input.IsNullOrEmpty();
Assert.AreEqual(expected, result);
}
[TestMethod]
public void WillReturnTrueIfTheStringIsEmpty()
{
var input = "";
var expected = true;
var result = input.IsNullOrEmpty();
Assert.AreEqual(expected, result);
}
[TestMethod]
public void WillReturnFalseIfTheStringIsNotEmpty()
{
var input = "test";
var expected = false;
var result = input.IsNullOrEmpty();
Assert.AreEqual(expected, result);
}
}
[TestClass]
public class StringExtensionIsNotNullOrEmpty
{
[TestMethod]
public void WillReturnFalseIfTheStringIsNull()
{
string input = null;
var expected = false;
var result = input.IsNotNullOrEmpty();
Assert.AreEqual(expected, result);
}
[TestMethod]
public void WillReturnFalseIfTheStringIsEmpty()
{
var input = "";
var expected = false;
var result = input.IsNotNullOrEmpty();
Assert.AreEqual(expected, result);
}
[TestMethod]
public void WillReturnTrueIfTheStringIsNotEmpty()
{
var input = "test";
var expected = true;
var result = input.IsNotNullOrEmpty();
Assert.AreEqual(expected, result);
}
}
And the final usage looks great and reads fluid.
//usuage
if (input.IsNullOrEmpty())
doSomethingWithAnEmptyOrNullInput();
else
doSomethingWithValidInput();