/*********************** * TestCCard - used to test the isValid… methods in class CCard. * * @author your name here ! * @version 2019-Sep-?? * @see https://www.radford.edu/~itec120/2019fall-ibarland/Homeworks/CCard/CCard.html * ***********************/ class TestCCard extends Object120 { void testIsValidVisa() { assertEquals( false, CCard.isValidVisa("") ); assertEquals( false, CCard.isValidVisa("X") ); assertEquals( false, CCard.isValidVisa("4") ); assertEquals( false, CCard.isValidVisa("4567") ); assertEquals( false, CCard.isValidVisa("??*&$#!") ); assertEquals( false, CCard.isValidVisa("Ceci n'est pas un nombre du Visa.") ); assertEquals( true, CCard.isValidVisa("4325 3423 2312 2347") ); assertEquals( true, CCard.isValidVisa("4325-3423-2312-2347") ); assertEquals( true, CCard.isValidVisa("4325342323122347") ); assertEquals( true, CCard.isValidVisa("4111 1111 1111 1111") ); assertEquals( true, CCard.isValidVisa("4111-1111-1111-1111") ); assertEquals( true, CCard.isValidVisa("4111111111111111") ); // from: https://www.paypalobjects.com/en_GB/vhelp/paypalmanager_help/credit_card_numbers.htm assertEquals( true, CCard.isValidVisa("4 1111 1111 1119") ); assertEquals( true, CCard.isValidVisa("4-1111-1111-1119") ); assertEquals( true, CCard.isValidVisa("4111111111119") ); assertEquals( false, CCard.isValidVisa("4234 4576 2341 2343#") ); // bad char at end assertEquals( false, CCard.isValidVisa("Z4234 4576 2341 2343") ); // bad char at start assertEquals( false, CCard.isValidVisa("423432219X892343") ); // bad char in middle assertEquals( false, CCard.isValidVisa("423445762412343") ); // wrong length assertEquals( false, CCard.isValidVisa("5234-3221-9889-2343") ); // not start w/ 4 } // testing isValidAmEx ------------------------------------------------------------- // You must write the tests for isValidAmEx // // You can use the pattern above for your tests. Think about what kind // of values would be good to use - be sure to choose inputs for your tests // that prove that your methods work correctly for all possible inputs. // You must print "PASS" if your method returns the correct answer, // and "FAIL" if it does not, so you have to think about what the // correct answer is at the time your write a test. // // American Express card numbers start with 34 or 37 and have 15 digits. // testing isValidDiscover --------------------------------------------------------- // You must write the tests for isValidDiscover // Discover card numbers begin with 6011 or 65. All have 16 digits. static void testAll() { testStripSlashesAndSpaces(); testAllDigits(); testIsValidVisa(); testIsValidDiscover(); testIsValidAmEx(); } public static void main(String[] args) { testAll(); } }