[TestMethod] public void testEmergency() { int wrongTypeCounter = 0; foreach (String regionCode in shortNumberInfo.getSupportedRegions()) { if (regionCode == RegionCode.PG) { // The only short number for Papua New Guinea is 000, which fails the test, since the // national prefix is 0. This needs to be fixed. continue; } PhoneNumberDesc desc = MetadataManager.getShortNumberMetadataForRegion(regionCode).getEmergency(); if (desc.hasExampleNumber()) { String exampleNumber = desc.getExampleNumber(); if (!exampleNumber.matches(desc.getPossibleNumberPattern()) || !shortNumberInfo.isEmergencyNumber(exampleNumber, regionCode)) { wrongTypeCounter++; LOGGER.log(Level.SEVERE, "Emergency example number test failed for " + regionCode); } else { PhoneNumber emergencyNumber = phoneNumberUtil.parse(exampleNumber, regionCode); if (shortNumberInfo.getExpectedCost(emergencyNumber) != ShortNumberInfo.ShortNumberCost.TOLL_FREE) { wrongTypeCounter++; LOGGER.log(Level.SEVERE, "Emergency example number not toll free for " + regionCode); } } } } assertEquals(0, wrongTypeCounter); }
[TestMethod] public void testGetExpectedCost() { PhoneNumber premiumRateNumber = new PhoneNumber(); premiumRateNumber.setCountryCode(33).setNationalNumber( Integer.parseInt(shortInfo.getExampleShortNumberForCost( RegionCode.FR, ShortNumberInfo.ShortNumberCost.PREMIUM_RATE))); assertEquals(ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, shortInfo.getExpectedCost(premiumRateNumber)); PhoneNumber standardRateNumber = new PhoneNumber(); standardRateNumber.setCountryCode(33).setNationalNumber( Integer.parseInt(shortInfo.getExampleShortNumberForCost( RegionCode.FR, ShortNumberInfo.ShortNumberCost.STANDARD_RATE))); assertEquals(ShortNumberInfo.ShortNumberCost.STANDARD_RATE, shortInfo.getExpectedCost(standardRateNumber)); PhoneNumber tollFreeNumber = new PhoneNumber(); tollFreeNumber.setCountryCode(33).setNationalNumber( Integer.parseInt(shortInfo.getExampleShortNumberForCost( RegionCode.FR, ShortNumberInfo.ShortNumberCost.TOLL_FREE))); assertEquals(ShortNumberInfo.ShortNumberCost.TOLL_FREE, shortInfo.getExpectedCost(tollFreeNumber)); PhoneNumber unknownCostNumber = new PhoneNumber(); unknownCostNumber.setCountryCode(33).setNationalNumber(12345L); assertEquals(ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, shortInfo.getExpectedCost(unknownCostNumber)); // Test that an invalid number may nevertheless have a cost other than UNKNOWN_COST. PhoneNumber invalidNumber = new PhoneNumber(); invalidNumber.setCountryCode(33).setNationalNumber(116123L); assertFalse(shortInfo.isValidShortNumber(invalidNumber)); assertEquals(ShortNumberInfo.ShortNumberCost.TOLL_FREE, shortInfo.getExpectedCost(invalidNumber)); // Test a non-existent country code. unknownCostNumber.clear(); unknownCostNumber.setCountryCode(123).setNationalNumber(911L); assertEquals(ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, shortInfo.getExpectedCost(unknownCostNumber)); }