import org.junit.Ignore; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class LuhnValidatorTest { private LuhnValidator luhnValidator; @Before public void setUp() { luhnValidator = new LuhnValidator(); } @Test public void testThatSingleDigitStringIsNotValid() { assertFalse(luhnValidator.isValid("1")); } @Ignore("Remove to run test") @Test public void testThatTheStringConsistingOfASingleZeroIsInvalid() { assertFalse(luhnValidator.isValid("0")); } @Ignore("Remove to run test") @Test public void testThatASimpleValidNumberIsIdentifiedAsValid() { assertTrue(luhnValidator.isValid(" 5 9 ")); } @Ignore("Remove to run test") @Test public void testThatAValidCanadianSocialInsuranceNumberIsIdentifiedAsValidV1() { assertTrue(luhnValidator.isValid("046 454 286")); } @Ignore("Remove to run test") @Test public void testThatAValidCanadianSocialInsuranceNumberIsIdentifiedAsValidV2() { assertTrue(luhnValidator.isValid("055 444 285")); } @Ignore("Remove to run test") @Test public void testThatAnInvalidCanadianSocialInsuranceNumberIsIdentifiedAsInvalid() { assertFalse(luhnValidator.isValid("046 454 287")); } @Ignore("Remove to run test") @Test public void testThatAnInvalidCreditCardIsIdentifiedAsInvalid() { assertFalse(luhnValidator.isValid("8273 1232 7352 0569")); } @Ignore("Remove to run test") @Test public void testThatAddingANonDigitCharacterToAValidStringInvalidatesTheString() { assertFalse(luhnValidator.isValid("046a 454 286")); } @Ignore("Remove to run test") @Test public void testThatStringContainingPunctuationIsInvalid() { assertFalse(luhnValidator.isValid("055-444-285")); } @Ignore("Remove to run test") @Test public void testThatStringContainingSymbolsIsInvalid() { assertFalse(luhnValidator.isValid("055£ 444$ 285")); } @Ignore("Remove to run test") @Test public void testThatTheStringConsistingOfASpaceAndASingleZeroIsInvalid() { assertFalse(luhnValidator.isValid(" 0")); } @Ignore("Remove to run test") @Test public void testThatStringContainingMultipleZerosIsValid() { assertTrue(luhnValidator.isValid(" 00000")); } @Ignore("Remove to run test") @Test public void testThatDoublingNineIsHandledCorrectly() { assertTrue(luhnValidator.isValid("091")); } }