|
|
@ -19,15 +19,15 @@ package com.google.i18n.phonenumbers; |
|
|
import com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberType; |
|
|
import com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberType; |
|
|
import com.google.i18n.phonenumbers.Phonemetadata.PhoneNumberDesc; |
|
|
import com.google.i18n.phonenumbers.Phonemetadata.PhoneNumberDesc; |
|
|
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber; |
|
|
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber; |
|
|
|
|
|
|
|
|
import junit.framework.TestCase; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.google.i18n.phonenumbers.metadata.DefaultMetadataDependenciesProvider; |
|
|
|
|
|
import com.google.i18n.phonenumbers.metadata.source.RegionMetadataSource; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
import java.util.EnumSet; |
|
|
import java.util.EnumSet; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import java.util.Set; |
|
|
import java.util.Set; |
|
|
import java.util.logging.Level; |
|
|
import java.util.logging.Level; |
|
|
import java.util.logging.Logger; |
|
|
import java.util.logging.Logger; |
|
|
|
|
|
import junit.framework.TestCase; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Verifies all of the example numbers in the metadata are valid and of the correct type. If no |
|
|
* Verifies all of the example numbers in the metadata are valid and of the correct type. If no |
|
|
@ -37,10 +37,14 @@ import java.util.logging.Logger; |
|
|
*/ |
|
|
*/ |
|
|
public class ExampleNumbersTest extends TestCase { |
|
|
public class ExampleNumbersTest extends TestCase { |
|
|
private static final Logger logger = Logger.getLogger(ExampleNumbersTest.class.getName()); |
|
|
private static final Logger logger = Logger.getLogger(ExampleNumbersTest.class.getName()); |
|
|
private PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(); |
|
|
|
|
|
private ShortNumberInfo shortNumberInfo = ShortNumberInfo.getInstance(); |
|
|
|
|
|
private List<PhoneNumber> invalidCases = new ArrayList<PhoneNumber>(); |
|
|
|
|
|
private List<PhoneNumber> wrongTypeCases = new ArrayList<PhoneNumber>(); |
|
|
|
|
|
|
|
|
private final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(); |
|
|
|
|
|
private final ShortNumberInfo shortNumberInfo = ShortNumberInfo.getInstance(); |
|
|
|
|
|
private final RegionMetadataSource shortNumberMetadataSource = |
|
|
|
|
|
DefaultMetadataDependenciesProvider.getInstance().getShortNumberMetadataSource(); |
|
|
|
|
|
|
|
|
|
|
|
private final List<PhoneNumber> invalidCases = new ArrayList<>(); |
|
|
|
|
|
private final List<PhoneNumber> wrongTypeCases = new ArrayList<>(); |
|
|
|
|
|
private final Set<String> shortNumberSupportedRegions = ShortNumbersRegionCodeSet.getRegionCodeSet(); |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* @param exampleNumberRequestedType type we are requesting an example number for |
|
|
* @param exampleNumberRequestedType type we are requesting an example number for |
|
|
@ -55,14 +59,14 @@ public class ExampleNumbersTest extends TestCase { |
|
|
if (exampleNumber != null) { |
|
|
if (exampleNumber != null) { |
|
|
if (!phoneNumberUtil.isValidNumber(exampleNumber)) { |
|
|
if (!phoneNumberUtil.isValidNumber(exampleNumber)) { |
|
|
invalidCases.add(exampleNumber); |
|
|
invalidCases.add(exampleNumber); |
|
|
logger.log(Level.SEVERE, "Failed validation for " + exampleNumber.toString()); |
|
|
|
|
|
|
|
|
logger.log(Level.SEVERE, "Failed validation for " + exampleNumber); |
|
|
} else { |
|
|
} else { |
|
|
// We know the number is valid, now we check the type. |
|
|
// We know the number is valid, now we check the type. |
|
|
PhoneNumberType exampleNumberType = phoneNumberUtil.getNumberType(exampleNumber); |
|
|
PhoneNumberType exampleNumberType = phoneNumberUtil.getNumberType(exampleNumber); |
|
|
if (!possibleExpectedTypes.contains(exampleNumberType)) { |
|
|
if (!possibleExpectedTypes.contains(exampleNumberType)) { |
|
|
wrongTypeCases.add(exampleNumber); |
|
|
wrongTypeCases.add(exampleNumber); |
|
|
logger.log(Level.SEVERE, "Wrong type for " |
|
|
logger.log(Level.SEVERE, "Wrong type for " |
|
|
+ exampleNumber.toString() |
|
|
|
|
|
|
|
|
+ exampleNumber |
|
|
+ ": got " + exampleNumberType); |
|
|
+ ": got " + exampleNumberType); |
|
|
logger.log(Level.WARNING, "Expected types: "); |
|
|
logger.log(Level.WARNING, "Expected types: "); |
|
|
for (PhoneNumberType type : possibleExpectedTypes) { |
|
|
for (PhoneNumberType type : possibleExpectedTypes) { |
|
|
@ -74,7 +78,7 @@ public class ExampleNumbersTest extends TestCase { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testFixedLine() throws Exception { |
|
|
|
|
|
|
|
|
public void testFixedLine() { |
|
|
Set<PhoneNumberType> fixedLineTypes = EnumSet.of(PhoneNumberType.FIXED_LINE, |
|
|
Set<PhoneNumberType> fixedLineTypes = EnumSet.of(PhoneNumberType.FIXED_LINE, |
|
|
PhoneNumberType.FIXED_LINE_OR_MOBILE); |
|
|
PhoneNumberType.FIXED_LINE_OR_MOBILE); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.FIXED_LINE, fixedLineTypes); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.FIXED_LINE, fixedLineTypes); |
|
|
@ -82,7 +86,7 @@ public class ExampleNumbersTest extends TestCase { |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testMobile() throws Exception { |
|
|
|
|
|
|
|
|
public void testMobile() { |
|
|
Set<PhoneNumberType> mobileTypes = EnumSet.of(PhoneNumberType.MOBILE, |
|
|
Set<PhoneNumberType> mobileTypes = EnumSet.of(PhoneNumberType.MOBILE, |
|
|
PhoneNumberType.FIXED_LINE_OR_MOBILE); |
|
|
PhoneNumberType.FIXED_LINE_OR_MOBILE); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.MOBILE, mobileTypes); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.MOBILE, mobileTypes); |
|
|
@ -90,56 +94,56 @@ public class ExampleNumbersTest extends TestCase { |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testTollFree() throws Exception { |
|
|
|
|
|
|
|
|
public void testTollFree() { |
|
|
Set<PhoneNumberType> tollFreeTypes = EnumSet.of(PhoneNumberType.TOLL_FREE); |
|
|
Set<PhoneNumberType> tollFreeTypes = EnumSet.of(PhoneNumberType.TOLL_FREE); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.TOLL_FREE, tollFreeTypes); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.TOLL_FREE, tollFreeTypes); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testPremiumRate() throws Exception { |
|
|
|
|
|
|
|
|
public void testPremiumRate() { |
|
|
Set<PhoneNumberType> premiumRateTypes = EnumSet.of(PhoneNumberType.PREMIUM_RATE); |
|
|
Set<PhoneNumberType> premiumRateTypes = EnumSet.of(PhoneNumberType.PREMIUM_RATE); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.PREMIUM_RATE, premiumRateTypes); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.PREMIUM_RATE, premiumRateTypes); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testVoip() throws Exception { |
|
|
|
|
|
|
|
|
public void testVoip() { |
|
|
Set<PhoneNumberType> voipTypes = EnumSet.of(PhoneNumberType.VOIP); |
|
|
Set<PhoneNumberType> voipTypes = EnumSet.of(PhoneNumberType.VOIP); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.VOIP, voipTypes); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.VOIP, voipTypes); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testPager() throws Exception { |
|
|
|
|
|
|
|
|
public void testPager() { |
|
|
Set<PhoneNumberType> pagerTypes = EnumSet.of(PhoneNumberType.PAGER); |
|
|
Set<PhoneNumberType> pagerTypes = EnumSet.of(PhoneNumberType.PAGER); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.PAGER, pagerTypes); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.PAGER, pagerTypes); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testUan() throws Exception { |
|
|
|
|
|
|
|
|
public void testUan() { |
|
|
Set<PhoneNumberType> uanTypes = EnumSet.of(PhoneNumberType.UAN); |
|
|
Set<PhoneNumberType> uanTypes = EnumSet.of(PhoneNumberType.UAN); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.UAN, uanTypes); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.UAN, uanTypes); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testVoicemail() throws Exception { |
|
|
|
|
|
|
|
|
public void testVoicemail() { |
|
|
Set<PhoneNumberType> voicemailTypes = EnumSet.of(PhoneNumberType.VOICEMAIL); |
|
|
Set<PhoneNumberType> voicemailTypes = EnumSet.of(PhoneNumberType.VOICEMAIL); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.VOICEMAIL, voicemailTypes); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.VOICEMAIL, voicemailTypes); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testSharedCost() throws Exception { |
|
|
|
|
|
|
|
|
public void testSharedCost() { |
|
|
Set<PhoneNumberType> sharedCostTypes = EnumSet.of(PhoneNumberType.SHARED_COST); |
|
|
Set<PhoneNumberType> sharedCostTypes = EnumSet.of(PhoneNumberType.SHARED_COST); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.SHARED_COST, sharedCostTypes); |
|
|
checkNumbersValidAndCorrectType(PhoneNumberType.SHARED_COST, sharedCostTypes); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testCanBeInternationallyDialled() throws Exception { |
|
|
|
|
|
|
|
|
public void testCanBeInternationallyDialled() { |
|
|
for (String regionCode : phoneNumberUtil.getSupportedRegions()) { |
|
|
for (String regionCode : phoneNumberUtil.getSupportedRegions()) { |
|
|
PhoneNumber exampleNumber = null; |
|
|
PhoneNumber exampleNumber = null; |
|
|
PhoneNumberDesc desc = |
|
|
PhoneNumberDesc desc = |
|
|
@ -153,41 +157,41 @@ public class ExampleNumbersTest extends TestCase { |
|
|
} |
|
|
} |
|
|
if (exampleNumber != null && phoneNumberUtil.canBeInternationallyDialled(exampleNumber)) { |
|
|
if (exampleNumber != null && phoneNumberUtil.canBeInternationallyDialled(exampleNumber)) { |
|
|
wrongTypeCases.add(exampleNumber); |
|
|
wrongTypeCases.add(exampleNumber); |
|
|
logger.log(Level.SEVERE, "Number " + exampleNumber.toString() |
|
|
|
|
|
|
|
|
logger.log(Level.SEVERE, "Number " + exampleNumber |
|
|
+ " should not be internationally diallable"); |
|
|
+ " should not be internationally diallable"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
assertEquals(0, wrongTypeCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testGlobalNetworkNumbers() throws Exception { |
|
|
|
|
|
|
|
|
public void testGlobalNetworkNumbers() { |
|
|
for (Integer callingCode : phoneNumberUtil.getSupportedGlobalNetworkCallingCodes()) { |
|
|
for (Integer callingCode : phoneNumberUtil.getSupportedGlobalNetworkCallingCodes()) { |
|
|
PhoneNumber exampleNumber = |
|
|
PhoneNumber exampleNumber = |
|
|
phoneNumberUtil.getExampleNumberForNonGeoEntity(callingCode); |
|
|
phoneNumberUtil.getExampleNumberForNonGeoEntity(callingCode); |
|
|
assertNotNull("No example phone number for calling code " + callingCode, exampleNumber); |
|
|
assertNotNull("No example phone number for calling code " + callingCode, exampleNumber); |
|
|
if (!phoneNumberUtil.isValidNumber(exampleNumber)) { |
|
|
if (!phoneNumberUtil.isValidNumber(exampleNumber)) { |
|
|
invalidCases.add(exampleNumber); |
|
|
invalidCases.add(exampleNumber); |
|
|
logger.log(Level.SEVERE, "Failed validation for " + exampleNumber.toString()); |
|
|
|
|
|
|
|
|
logger.log(Level.SEVERE, "Failed validation for " + exampleNumber); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
assertEquals(0, invalidCases.size()); |
|
|
assertEquals(0, invalidCases.size()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testEveryRegionHasAnExampleNumber() throws Exception { |
|
|
|
|
|
|
|
|
public void testEveryRegionHasAnExampleNumber() { |
|
|
for (String regionCode : phoneNumberUtil.getSupportedRegions()) { |
|
|
for (String regionCode : phoneNumberUtil.getSupportedRegions()) { |
|
|
PhoneNumber exampleNumber = phoneNumberUtil.getExampleNumber(regionCode); |
|
|
PhoneNumber exampleNumber = phoneNumberUtil.getExampleNumber(regionCode); |
|
|
assertNotNull("No example number found for region " + regionCode, exampleNumber); |
|
|
assertNotNull("No example number found for region " + regionCode, exampleNumber); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testEveryRegionHasAnInvalidExampleNumber() throws Exception { |
|
|
|
|
|
|
|
|
public void testEveryRegionHasAnInvalidExampleNumber() { |
|
|
for (String regionCode : phoneNumberUtil.getSupportedRegions()) { |
|
|
for (String regionCode : phoneNumberUtil.getSupportedRegions()) { |
|
|
PhoneNumber exampleNumber = phoneNumberUtil.getInvalidExampleNumber(regionCode); |
|
|
PhoneNumber exampleNumber = phoneNumberUtil.getInvalidExampleNumber(regionCode); |
|
|
assertNotNull("No invalid example number found for region " + regionCode, exampleNumber); |
|
|
assertNotNull("No invalid example number found for region " + regionCode, exampleNumber); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testEveryTypeHasAnExampleNumber() throws Exception { |
|
|
|
|
|
|
|
|
public void testEveryTypeHasAnExampleNumber() { |
|
|
for (PhoneNumberUtil.PhoneNumberType type : PhoneNumberUtil.PhoneNumberType.values()) { |
|
|
for (PhoneNumberUtil.PhoneNumberType type : PhoneNumberUtil.PhoneNumberType.values()) { |
|
|
if (type == PhoneNumberType.UNKNOWN) { |
|
|
if (type == PhoneNumberType.UNKNOWN) { |
|
|
continue; |
|
|
continue; |
|
|
@ -198,8 +202,8 @@ public class ExampleNumbersTest extends TestCase { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void testShortNumbersValidAndCorrectCost() throws Exception { |
|
|
public void testShortNumbersValidAndCorrectCost() throws Exception { |
|
|
List<String> invalidStringCases = new ArrayList<String>(); |
|
|
|
|
|
for (String regionCode : shortNumberInfo.getSupportedRegions()) { |
|
|
|
|
|
|
|
|
List<String> invalidStringCases = new ArrayList<>(); |
|
|
|
|
|
for (String regionCode : shortNumberSupportedRegions) { |
|
|
String exampleShortNumber = shortNumberInfo.getExampleShortNumber(regionCode); |
|
|
String exampleShortNumber = shortNumberInfo.getExampleShortNumber(regionCode); |
|
|
if (!shortNumberInfo.isValidShortNumberForRegion( |
|
|
if (!shortNumberInfo.isValidShortNumberForRegion( |
|
|
phoneNumberUtil.parse(exampleShortNumber, regionCode), regionCode)) { |
|
|
phoneNumberUtil.parse(exampleShortNumber, regionCode), regionCode)) { |
|
|
@ -211,7 +215,7 @@ public class ExampleNumbersTest extends TestCase { |
|
|
PhoneNumber phoneNumber = phoneNumberUtil.parse(exampleShortNumber, regionCode); |
|
|
PhoneNumber phoneNumber = phoneNumberUtil.parse(exampleShortNumber, regionCode); |
|
|
if (!shortNumberInfo.isValidShortNumber(phoneNumber)) { |
|
|
if (!shortNumberInfo.isValidShortNumber(phoneNumber)) { |
|
|
invalidCases.add(phoneNumber); |
|
|
invalidCases.add(phoneNumber); |
|
|
logger.log(Level.SEVERE, "Failed validation for " + phoneNumber.toString()); |
|
|
|
|
|
|
|
|
logger.log(Level.SEVERE, "Failed validation for " + phoneNumber); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for (ShortNumberInfo.ShortNumberCost cost : ShortNumberInfo.ShortNumberCost.values()) { |
|
|
for (ShortNumberInfo.ShortNumberCost cost : ShortNumberInfo.ShortNumberCost.values()) { |
|
|
@ -236,9 +240,8 @@ public class ExampleNumbersTest extends TestCase { |
|
|
|
|
|
|
|
|
public void testEmergency() throws Exception { |
|
|
public void testEmergency() throws Exception { |
|
|
int wrongTypeCounter = 0; |
|
|
int wrongTypeCounter = 0; |
|
|
for (String regionCode : shortNumberInfo.getSupportedRegions()) { |
|
|
|
|
|
PhoneNumberDesc desc = |
|
|
|
|
|
MetadataManager.getShortNumberMetadataForRegion(regionCode).getEmergency(); |
|
|
|
|
|
|
|
|
for (String regionCode : shortNumberSupportedRegions) { |
|
|
|
|
|
PhoneNumberDesc desc = shortNumberMetadataSource.getMetadataForRegion(regionCode).getEmergency(); |
|
|
if (desc.hasExampleNumber()) { |
|
|
if (desc.hasExampleNumber()) { |
|
|
String exampleNumber = desc.getExampleNumber(); |
|
|
String exampleNumber = desc.getExampleNumber(); |
|
|
PhoneNumber phoneNumber = phoneNumberUtil.parse(exampleNumber, regionCode); |
|
|
PhoneNumber phoneNumber = phoneNumberUtil.parse(exampleNumber, regionCode); |
|
|
@ -258,9 +261,8 @@ public class ExampleNumbersTest extends TestCase { |
|
|
|
|
|
|
|
|
public void testCarrierSpecificShortNumbers() throws Exception { |
|
|
public void testCarrierSpecificShortNumbers() throws Exception { |
|
|
int wrongTagCounter = 0; |
|
|
int wrongTagCounter = 0; |
|
|
for (String regionCode : shortNumberInfo.getSupportedRegions()) { |
|
|
|
|
|
PhoneNumberDesc desc = |
|
|
|
|
|
MetadataManager.getShortNumberMetadataForRegion(regionCode).getCarrierSpecific(); |
|
|
|
|
|
|
|
|
for (String regionCode : shortNumberSupportedRegions) { |
|
|
|
|
|
PhoneNumberDesc desc = shortNumberMetadataSource.getMetadataForRegion(regionCode).getCarrierSpecific(); |
|
|
if (desc.hasExampleNumber()) { |
|
|
if (desc.hasExampleNumber()) { |
|
|
String exampleNumber = desc.getExampleNumber(); |
|
|
String exampleNumber = desc.getExampleNumber(); |
|
|
PhoneNumber carrierSpecificNumber = phoneNumberUtil.parse(exampleNumber, regionCode); |
|
|
PhoneNumber carrierSpecificNumber = phoneNumberUtil.parse(exampleNumber, regionCode); |
|
|
@ -276,9 +278,8 @@ public class ExampleNumbersTest extends TestCase { |
|
|
|
|
|
|
|
|
public void testSmsServiceShortNumbers() throws Exception { |
|
|
public void testSmsServiceShortNumbers() throws Exception { |
|
|
int wrongTagCounter = 0; |
|
|
int wrongTagCounter = 0; |
|
|
for (String regionCode : shortNumberInfo.getSupportedRegions()) { |
|
|
|
|
|
PhoneNumberDesc desc = |
|
|
|
|
|
MetadataManager.getShortNumberMetadataForRegion(regionCode).getSmsServices(); |
|
|
|
|
|
|
|
|
for (String regionCode : shortNumberSupportedRegions) { |
|
|
|
|
|
PhoneNumberDesc desc = shortNumberMetadataSource.getMetadataForRegion(regionCode).getSmsServices(); |
|
|
if (desc.hasExampleNumber()) { |
|
|
if (desc.hasExampleNumber()) { |
|
|
String exampleNumber = desc.getExampleNumber(); |
|
|
String exampleNumber = desc.getExampleNumber(); |
|
|
PhoneNumber smsServiceNumber = phoneNumberUtil.parse(exampleNumber, regionCode); |
|
|
PhoneNumber smsServiceNumber = phoneNumberUtil.parse(exampleNumber, regionCode); |
|
|
|