public void TestGetPostalCode()
        {
            var testInput = new AddressData();

            CaCityProvidencePost.GetPostalCode("Thunder Bay ON P7A4Z4", testInput);
            var testResult = testInput.PostalCode;

            Assert.IsNotNull(testResult);
            Assert.AreEqual("P7A 4Z4", testResult);
            Console.WriteLine(testResult);
        }
Esempio n. 2
0
        public static CaCityProvidencePost RandomCanadianCity()
        {
            var ctz = new AddressData();

            CaCityProvidencePost.CaPostCodeXml = CaCityProvidencePost.CaPostCodeXml ??
                                                 XmlDocXrefIdentifier.GetEmbeddedXmlDoc(CaCityProvidencePost.CA_POST_CODE_DATA, Assembly.GetExecutingAssembly());
            if (CaCityProvidencePost.CaPostCodeXml == null)
            {
                return(null);
            }
            var postalCodes = CaCityProvidencePost.CaPostCodeXml.SelectNodes($"//{CaCityProvidencePost.POSTAL_CODE}");
            var dfReturn    = new CaCityProvidencePost(ctz);

            if (postalCodes == null)
            {
                return(dfReturn);
            }

            var pickOne = Etx.MyRand.Next(0, postalCodes.Count);

            var randPostalCode = postalCodes[pickOne] as XmlElement;

            if (randPostalCode == null)
            {
                return(dfReturn);
            }

            var providenceElem = randPostalCode.ParentNode as XmlElement;

            if (providenceElem == null)
            {
                return(dfReturn);
            }

            ctz.RegionAbbrev = providenceElem.GetAttribute(CaCityProvidencePost.ABBREVIATION);
            ctz.RegionName   = providenceElem.GetAttribute(NAME);

            var postalPrefix = randPostalCode.GetAttribute(PREFIX);

            postalPrefix   = String.IsNullOrWhiteSpace(postalPrefix) ? CaCityProvidencePost.DF_FIRST_THREE_CHARS : postalPrefix;
            ctz.PostalCode = $"{postalPrefix} {CaCityProvidencePost.DF_LAST_THREE_CHARS}";

            var municipalityNode = randPostalCode.ChildNodes.OfType <XmlElement>()
                                   .FirstOrDefault(x => x.LocalName == CaCityProvidencePost.MUNICIPALITY && !string.IsNullOrWhiteSpace(x.InnerText));

            ctz.Locality = municipalityNode?.InnerText ?? CaCityProvidencePost.DF_CITY;

            return(new CaCityProvidencePost(ctz));
        }
        public void TestTryParse()
        {
            var testAddresses = new[]
            {
                "St. John's NL A1A 4Z4",
                "Calgary AB T2A 4Z4",
                "Edmonton,  AB T2A 4Z4",
                "Vancouver BC V6C 4Z4",
                "Winnipeg MB R3T 4Z4",
                "Fredericton NB E3B 4Z4",
                "Arctic Bay NT XA0 4Z4",
                "Dartmouth NS B2Z 4Z4",
                "Fort Liard NU X0G 4Z4",
                "Ottawa, ON K2A 4Z4",
                "Mississuaga ON L5M 4Z4",
                "Toronto ON M5A 4Z4",
                "Windsor, ON N9A 4Z4",
                "Thunder Bay ON P7A4Z4",
                "Charlottetown PE C1A 4Z4",
                "Quebec City QC G1P 4Z4",
                "Montreal QC H3A 4Z4",
                "Sherbrooke QC J1H 4Z4",
                "Saskatoon SK S7L4Z4",
                "Whitehorse YT Y1A4Z4",
            };

            foreach (var testAddr in testAddresses)
            {
                var testResult = CaCityProvidencePost.TryParse(testAddr, out var testResultOut);
                Assert.IsTrue(testResult);
                Assert.AreNotEqual(string.Empty, testResultOut.City);
                Assert.AreNotEqual(string.Empty, testResultOut.ProvidenceAbbrv);
                Assert.AreNotEqual(string.Empty, testResultOut.PostalCode);
                Console.WriteLine(testResultOut.ToString());
            }
        }