public void TestGetExpectedCost() { var premiumRateExample = ShortInfo.GetExampleShortNumberForCost(RegionCode.FR, ShortNumberInfo.ShortNumberCost.PREMIUM_RATE); Assert.Equal(ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, ShortInfo.GetExpectedCostForRegion( Parse(premiumRateExample, RegionCode.FR), RegionCode.FR)); var premiumRateNumber = new PhoneNumber.Builder().SetCountryCode(33) .SetNationalNumber(ulong.Parse(premiumRateExample)).Build(); Assert.Equal(ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, ShortInfo.GetExpectedCost(premiumRateNumber)); var standardRateExample = ShortInfo.GetExampleShortNumberForCost(RegionCode.FR, ShortNumberInfo.ShortNumberCost.STANDARD_RATE); Assert.Equal(ShortNumberInfo.ShortNumberCost.STANDARD_RATE, ShortInfo.GetExpectedCostForRegion( Parse(standardRateExample, RegionCode.FR), RegionCode.FR)); var standardRateNumber = new PhoneNumber.Builder().SetCountryCode(33) .SetNationalNumber(ulong.Parse(standardRateExample)).Build(); Assert.Equal(ShortNumberInfo.ShortNumberCost.STANDARD_RATE, ShortInfo.GetExpectedCost(standardRateNumber)); var tollFreeExample = ShortInfo.GetExampleShortNumberForCost(RegionCode.FR, ShortNumberInfo.ShortNumberCost.TOLL_FREE); Assert.Equal(ShortNumberInfo.ShortNumberCost.TOLL_FREE, ShortInfo.GetExpectedCostForRegion(Parse(tollFreeExample, RegionCode.FR), RegionCode.FR)); var tollFreeNumber = new PhoneNumber.Builder().SetCountryCode(33) .SetNationalNumber(ulong.Parse(tollFreeExample)).Build(); Assert.Equal(ShortNumberInfo.ShortNumberCost.TOLL_FREE, ShortInfo.GetExpectedCost(tollFreeNumber)); Assert.Equal(ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, ShortInfo.GetExpectedCostForRegion(Parse("12345", RegionCode.FR), RegionCode.FR)); var unknownCostNumber = new PhoneNumber.Builder().SetCountryCode(33).SetNationalNumber(12345L); Assert.Equal(ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, ShortInfo.GetExpectedCost(unknownCostNumber.Build())); // Test that an invalid number may nevertheless have a cost other than UNKNOWN_COST. Assert.False( ShortInfo.IsValidShortNumberForRegion(Parse("116123", RegionCode.FR), RegionCode.FR)); Assert.Equal(ShortNumberInfo.ShortNumberCost.TOLL_FREE, ShortInfo.GetExpectedCostForRegion(Parse("116123", RegionCode.FR), RegionCode.FR)); var invalidNumber = new PhoneNumber.Builder().SetCountryCode(33).SetNationalNumber(116123L).Build(); Assert.False(ShortInfo.IsValidShortNumber(invalidNumber)); Assert.Equal(ShortNumberInfo.ShortNumberCost.TOLL_FREE, ShortInfo.GetExpectedCost(invalidNumber)); // Test a nonexistent country code. Assert.Equal(ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, ShortInfo.GetExpectedCostForRegion(Parse("911", RegionCode.US), RegionCode.ZZ)); unknownCostNumber.Clear(); unknownCostNumber.SetCountryCode(123).SetNationalNumber(911L); Assert.Equal(ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, ShortInfo.GetExpectedCost(unknownCostNumber.Build())); }