public void testGetExpectedCost() {
String premiumRateExample = shortInfo.getExampleShortNumberForCost(RegionCode.FR,
ShortNumberInfo.ShortNumberCost.PREMIUM_RATE);
assertEquals(ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, shortInfo.getExpectedCostForRegion(
parse(premiumRateExample, RegionCode.FR), RegionCode.FR));
PhoneNumber premiumRateNumber = new PhoneNumber();
premiumRateNumber.setCountryCode(33).setNationalNumber(Integer.parseInt(premiumRateExample));
assertEquals(ShortNumberInfo.ShortNumberCost.PREMIUM_RATE,
shortInfo.getExpectedCost(premiumRateNumber));
String standardRateExample = shortInfo.getExampleShortNumberForCost(RegionCode.FR,
ShortNumberInfo.ShortNumberCost.STANDARD_RATE);
assertEquals(ShortNumberInfo.ShortNumberCost.STANDARD_RATE, shortInfo.getExpectedCostForRegion(
parse(standardRateExample, RegionCode.FR), RegionCode.FR));
PhoneNumber standardRateNumber = new PhoneNumber();
standardRateNumber.setCountryCode(33).setNationalNumber(Integer.parseInt(standardRateExample));
assertEquals(ShortNumberInfo.ShortNumberCost.STANDARD_RATE,
shortInfo.getExpectedCost(standardRateNumber));
String tollFreeExample = shortInfo.getExampleShortNumberForCost(RegionCode.FR,
ShortNumberInfo.ShortNumberCost.TOLL_FREE);
assertEquals(ShortNumberInfo.ShortNumberCost.TOLL_FREE,
shortInfo.getExpectedCostForRegion(parse(tollFreeExample, RegionCode.FR), RegionCode.FR));
PhoneNumber tollFreeNumber = new PhoneNumber();
tollFreeNumber.setCountryCode(33).setNationalNumber(Integer.parseInt(tollFreeExample));
assertEquals(ShortNumberInfo.ShortNumberCost.TOLL_FREE,
shortInfo.getExpectedCost(tollFreeNumber));
assertEquals(ShortNumberInfo.ShortNumberCost.UNKNOWN_COST,
shortInfo.getExpectedCostForRegion(parse("12345", RegionCode.FR), RegionCode.FR));
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.
assertFalse(
shortInfo.isValidShortNumberForRegion(parse("116123", RegionCode.FR), RegionCode.FR));
assertEquals(ShortNumberInfo.ShortNumberCost.TOLL_FREE,
shortInfo.getExpectedCostForRegion(parse("116123", RegionCode.FR), RegionCode.FR));
PhoneNumber invalidNumber = new PhoneNumber();
invalidNumber.setCountryCode(33).setNationalNumber(116123L);
assertFalse(shortInfo.isValidShortNumber(invalidNumber));
assertEquals(ShortNumberInfo.ShortNumberCost.TOLL_FREE,
shortInfo.getExpectedCost(invalidNumber));
// Test a nonexistent country code.