Adding tests for our metadata to make sure that we can create an invalid example number for every region, and that we have an example number for every type. Also adding better logging for example short number cost mismatches.
diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java index 1365ac3..a69b85b 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java
@@ -175,7 +175,21 @@ public void testEveryRegionHasAnExampleNumber() throws Exception { for (String regionCode : phoneNumberUtil.getSupportedRegions()) { PhoneNumber exampleNumber = phoneNumberUtil.getExampleNumber(regionCode); - assertNotNull("None found for region " + regionCode, exampleNumber); + assertNotNull("No example number found for region " + regionCode, exampleNumber); + } + } + + public void testEveryRegionHasAnInvalidExampleNumber() throws Exception { + for (String regionCode : phoneNumberUtil.getSupportedRegions()) { + PhoneNumber exampleNumber = phoneNumberUtil.getInvalidExampleNumber(regionCode); + assertNotNull("No invalid example number found for region " + regionCode, exampleNumber); + } + } + + public void testEveryTypeHasAnExampleNumber() throws Exception { + for (PhoneNumberUtil.PhoneNumberType type : PhoneNumberUtil.PhoneNumberType.values()) { + PhoneNumber exampleNumber = phoneNumberUtil.getExampleNumberForType(type); + assertNotNull("No example number found for type " + type, exampleNumber); } } @@ -199,10 +213,14 @@ for (ShortNumberInfo.ShortNumberCost cost : ShortNumberInfo.ShortNumberCost.values()) { exampleShortNumber = shortNumberInfo.getExampleShortNumberForCost(regionCode, cost); if (!exampleShortNumber.equals("")) { - if (cost != shortNumberInfo.getExpectedCostForRegion( - phoneNumberUtil.parse(exampleShortNumber, regionCode), regionCode)) { + phoneNumber = phoneNumberUtil.parse(exampleShortNumber, regionCode); + ShortNumberInfo.ShortNumberCost exampleShortNumberCost = + shortNumberInfo.getExpectedCostForRegion(phoneNumber, regionCode); + if (cost != exampleShortNumberCost) { wrongTypeCases.add(phoneNumber); - LOGGER.log(Level.SEVERE, "Wrong cost for " + phoneNumber.toString()); + LOGGER.log(Level.SEVERE, "Wrong cost for " + phoneNumber.toString() + + ": got " + exampleShortNumberCost + + ", expected: " + cost); } } }