PhoneNumberHandlerBase { public static boolean isValidPhoneNumber(Object data, String regionCode) { if (data == null) { return false; } PhoneNumber phonenumber = null; try { final CharSequence cs = data.toString(); phonenumber = GOOGLE_PHONE_UTIL.parse(cs, regionCode); } catch (NumberParseException e) { LOG.info("Phone number parsing exception: " + e.getMessage()); LOG.debug("Phone number parsing exception with input data: " + data); return false; } return GOOGLE_PHONE_UTIL.isValidNumberForRegion(phonenumber, regionCode); }  static PhoneNumber parseToPhoneNumber(Object data, String regionCode); static boolean isValidPhoneNumber(Object data, String regionCode); static boolean isPossiblePhoneNumber(Object data, String regionCode); static String formatE164(Object data, String regionCode); static String formatInternational(Object data, String regionCode); static String formatNational(Object data, String regionCode); static String formatRFC396(Object data, String regionCode); static Set<String> getSupportedRegions(); static int getCountryCodeForRegion(String regionCode); static int getCountryCodeForPhoneNumber(PhoneNumber number); static PhoneNumberTypeEnum getPhoneNumberType(Object data, String regionCode); static PhoneNumberTypeEnum getPhoneNumberType(PhoneNumber number); static boolean containsValidRegionCode(Object data); static String extractRegionCode(Object phoneData); static String extractRegionCode(Object phoneData, String regionCode); static String extractRegionCode(PhoneNumber phoneNumber); static int extractCountrycode(Object phoneData); static String getGeocoderDescriptionForNumber(Object data, String regionCode, Locale languageCode); static String getGeocoderDescriptionForNumber(PhoneNumber number, Locale languageCode); static String getCarrierNameForNumber(Object data, String regionCode, Locale languageCode); static String getCarrierNameForNumber(PhoneNumber number, Locale languageCode); static List<String> getTimeZonesForNumber(Object data, String regionCode); static List<String> getTimeZonesForNumber(PhoneNumber number); static List<String> getTimeZonesForNumber(Object data, String regionCode, boolean withUnknownTimeZone); static List<String> getTimeZonesForNumber(PhoneNumber phoneNumber, boolean withUnknownTimeZone);  }
@Test public void testIsValidPhoneNumber() { assertFalse(PhoneNumberHandlerBase.isValidPhoneNumber(null, REGCODE_FR)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(FR_NUM_1, REGCODE_FR)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(FR_NUM_2, REGCODE_FR)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(FR_NUM_5, REGCODE_FR)); assertFalse(PhoneNumberHandlerBase.isValidPhoneNumber(FR_NUM_3, REGCODE_FR)); assertFalse(PhoneNumberHandlerBase.isValidPhoneNumber(FR_NUM_4, REGCODE_FR)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(US_NUM_1, REGCODE_US)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(US_NUM_2, REGCODE_US)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(US_NUM_4, REGCODE_US)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(US_NUM_7, REGCODE_US)); assertFalse(PhoneNumberHandlerBase.isValidPhoneNumber(US_NUM_3, REGCODE_US)); assertFalse(PhoneNumberHandlerBase.isValidPhoneNumber(US_NUM_6, REGCODE_US)); assertFalse(PhoneNumberHandlerBase.isValidPhoneNumber(US_NUM_5, REGCODE_US)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(DE_NUM_1, REGCODE_DE)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(DE_NUM_3, REGCODE_DE)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(DE_NUM_4, REGCODE_DE)); assertFalse(PhoneNumberHandlerBase.isValidPhoneNumber(DE_NUM_2, REGCODE_DE)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(JP_NUM_1, REGCODE_JP)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(JP_NUM_2, REGCODE_JP)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(JP_NUM_3, REGCODE_JP)); assertTrue(PhoneNumberHandlerBase.isValidPhoneNumber(JP_NUM_4, REGCODE_JP)); assertFalse(PhoneNumberHandlerBase.isValidPhoneNumber(JP_NUM_5, REGCODE_JP)); }