using NUnit.Framework; namespace TDD.UnitTestingIntro { [TestFixture] public class PhoneUtilsTest { private PhoneUtils pu; private string expected; [SetUp] protected void SetUp() { pu = new PhoneUtils(); expected = "96085551212"; // canonical format phone number } [Test, Category("Good Inputs")] public void ValidatePhoneNum_IdentityTest() { string input = "96085551212"; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo(expected), "Identity test failed"); } [Test, Category("Good Inputs")] public void ValidatePhoneNum_ValidNumberWithHyphens() { string input = "9-608-555-1212"; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo(expected), "Number with hyphens failed"); } [Test, Category("Good Inputs")] public void ValidatePhoneNum_ValidNumberWithCommaSpace() { string input = "9, 608-555-1212"; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo(expected), "Number with comma, space & hyphens failed"); } [Test, Category("Good Inputs")] public void ValidatePhoneNum_ValidNumberWithParens() { string input = "9 (608) 555-1212"; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo(expected), "Number with spaces, parens & hyphens failed"); } [Test, Category("Bad Inputs")] public void ValidatePhoneNum_Null_ReturnsInvalid() { string input = null; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo("invalid"), "Null number should be invalid"); } [Test, Category("Bad Inputs")] public void ValidatePhoneNum_NoLeading9_ReturnsInvalid() { string input = "8-608-555-1212"; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo("invalid"), "Number not starting '9' should be invalid"); } [Test, Category("Bad Inputs")] public void ValidatePhoneNum_TooFewDigits_ReturnsInvalid() { string input = "9-608-555-121"; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo("invalid"), "Number with 10 digits should be invalid"); } // [Ignore] [Test, Category("Bad Inputs")] public void ValidatePhoneNum_TooFewDigitsVariant_ReturnsInvalid() { string input = "9-60-555-1212"; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo("invalid"), "Number with 10 digits should be invalid"); } [Test, Category("Bad Inputs")] public void ValidatePhoneNum_TooManyDigits_ReturnsInvalid() { string input = "9 608 5555 1212"; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo("invalid"), "Number with 12 digits should be invalid"); } [Test, Category("Bad Inputs")] public void ValidatePhoneNum_WithOhNotZero_ReturnsInvalid() { string input = "9 6O8 5555 121"; string computed = pu.ValidatePhoneNum(input); Assert.That(computed, Is.EqualTo("invalid"), "Number with alphabetics should be invalid"); } } }