[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);
        }
Example #2
0
        [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));
        }