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);
}
}
}