From c5b796281660f79118737efd9379c50e67c17246 Mon Sep 17 00:00:00 2001 From: Lara Scheidegger Date: Thu, 31 Mar 2016 21:56:22 +0200 Subject: [PATCH] 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. --- .../i18n/phonenumbers/ExampleNumbersTest.java | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java index 1365ac3f7..a69b85be9 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 class ExampleNumbersTest extends TestCase { 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 @@ public class ExampleNumbersTest extends TestCase { 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); } } }