public void TestParseRawAddressThreePremisesSlashedWithZ()
        {
            var parser = new AddressesParser(new List <Premise>
            {
                new Premise
                {
                    RawAddress = "Юго-Западная ул., д.23-а, кв.14/15/16/з"
                }
            }, new ConsoleLogger());

            Assert.AreEqual(1, parser.PreparedPremises.Count);
            Assert.AreEqual(4, parser.PreparedPremises[0].Count);
            Assert.AreEqual(1, parser.PreparedPremises[0][0].Count);
            Assert.AreEqual(1, parser.PreparedPremises[0][1].Count);
            Assert.AreEqual(1, parser.PreparedPremises[0][2].Count);
            Assert.AreEqual(3, parser.PreparedPremises[0][3].Count);
            Assert.AreEqual("14", parser.PreparedPremises[0][0][0].PremiseNumber);
            Assert.AreEqual("14,15", parser.PreparedPremises[0][1][0].PremiseNumber);
            Assert.AreEqual("14,15,16", parser.PreparedPremises[0][2][0].PremiseNumber);
            Assert.AreEqual("14", parser.PreparedPremises[0][3][0].PremiseNumber);
            Assert.AreEqual("15", parser.PreparedPremises[0][3][1].PremiseNumber);
            Assert.AreEqual("16", parser.PreparedPremises[0][3][2].PremiseNumber);
            Assert.AreEqual(2, parser.PreparedPremises[0][0][0].SubPremises.Count);
            Assert.AreEqual(1, parser.PreparedPremises[0][1][0].SubPremises.Count);
            Assert.AreEqual(0, parser.PreparedPremises[0][2][0].SubPremises.Count);
            Assert.AreEqual(0, parser.PreparedPremises[0][3][0].SubPremises.Count);
            Assert.AreEqual(0, parser.PreparedPremises[0][3][1].SubPremises.Count);
            Assert.AreEqual(0, parser.PreparedPremises[0][3][2].SubPremises.Count);
        }
        public void Parser_ParseAddress()
        {
            var addressParser = AddressesParser.Parse("Lidstostrasse 5\r\n6006 Luzern");

            Assert.AreEqual("6006", addressParser.PostalCode);
            Assert.AreEqual("Luzern", addressParser.City);
            Assert.AreEqual("Lidstostrasse 5", addressParser.Street);
        }
        public void Parser_ParseWithLongerCityName()
        {
            var addressParser = AddressesParser.Parse("Bul Oslobodjenja 38\r\n21000 Novi Sad");

            Assert.AreEqual("21000", addressParser.PostalCode);
            Assert.AreEqual("Novi Sad", addressParser.City);
            Assert.AreEqual("Bul Oslobodjenja 38", addressParser.Street);
        }
        public void Parser_ParseWithCityNameInFirstRow()
        {
            var addressParser = AddressesParser.Parse("Bul Oslobodjenja 38\r\n21000 Novi Sad\r\nSerbia");

            Assert.AreEqual("21000", addressParser.PostalCode);
            Assert.AreEqual("Novi Sad", addressParser.City);
            Assert.AreEqual("Bul Oslobodjenja 38", addressParser.Street);
            Assert.AreEqual("Serbia", addressParser.Country);
        }
        public void Parser_ParseAddressWithPoBox()
        {
            var addressParser = AddressesParser.Parse("Lidstostrasse 5\r\nPostfach 42\r\n6006 Luzern");

            Assert.AreEqual("6006", addressParser.PostalCode);
            Assert.AreEqual("Luzern", addressParser.City);
            //Assert.AreEqual("Postfach 42", addressParser.PostalBox);
            Assert.AreEqual("Lidstostrasse 5", addressParser.Street);
        }
        public void Parser_ParseWithoutPostalCodeOrCity()
        {
            var addressParser = AddressesParser.Parse("Bul Oslobodjenja 38\r\nNovi Sad");

            Assert.IsNull(addressParser.PostalCode);
            Assert.IsNull(addressParser.City);

            addressParser = AddressesParser.Parse("Bul Oslobodjenja 38\r\n21000");

            Assert.AreEqual("21000", addressParser.PostalCode);
            Assert.IsTrue(string.IsNullOrEmpty(addressParser.City));
        }
        public void Parser_ParseWithMultilineAddress()
        {
            var addressParser = AddressesParser.Parse("IT Engine\r\nBul Oslobodjenja 38\r\n21000 Novi Sad\r\nSerbia");

            Assert.AreEqual("21000", addressParser.PostalCode);
            Assert.AreEqual("Novi Sad", addressParser.City);
            Assert.AreEqual("Bul Oslobodjenja 38", addressParser.Street);
            Assert.AreEqual("Serbia", addressParser.Country);

            var addressLines = addressParser.AddressLines;

            Assert.AreEqual("IT Engine", addressLines[0]);
            Assert.AreEqual("Bul Oslobodjenja 38", addressLines[1]);
            Assert.AreEqual("Serbia", addressLines[2]);
        }
        public void TestParseRawAddressNormal()
        {
            var parser = new AddressesParser(new List <Premise>
            {
                new Premise
                {
                    RawAddress = "ул. Комсомольская, д.77, кв.701"
                }
            }, new ConsoleLogger());

            Assert.AreEqual(1, parser.PreparedPremises.Count);
            Assert.AreEqual(1, parser.PreparedPremises[0].Count);
            Assert.AreEqual(1, parser.PreparedPremises[0][0].Count);
            Assert.AreEqual("701", parser.PreparedPremises[0][0][0].PremiseNumber);
            Assert.AreEqual(0, parser.PreparedPremises[0][0][0].SubPremises.Count);
        }
        public void TestParseRawAddressPremiseAndRoomSlashed()
        {
            var parser = new AddressesParser(new List <Premise>
            {
                new Premise
                {
                    RawAddress = "Южная ул., д.18, кв.513/б"
                }
            }, new ConsoleLogger());

            Assert.AreEqual(1, parser.PreparedPremises.Count);
            Assert.AreEqual(1, parser.PreparedPremises[0].Count);
            Assert.AreEqual(1, parser.PreparedPremises[0][0].Count);
            Assert.AreEqual("513", parser.PreparedPremises[0][0][0].PremiseNumber);
            Assert.AreEqual(1, parser.PreparedPremises[0][0][0].SubPremises.Count);
            Assert.AreEqual("Б", parser.PreparedPremises[0][0][0].SubPremises[0].SubPremiseNumber);
        }
Exemplo n.º 10
0
        public static Municipality TryGuessMunicipality(string formattedAddress)
        {
            Address addressParser = AddressesParser.Parse(formattedAddress);

            if (!string.IsNullOrWhiteSpace(addressParser.City))
            {
                //Try to guess the canton using the postal code
                XmlNode node = _municipalities.FirstOrDefault(n => string.Equals(n.Attributes["MunicipalityName"].Value, addressParser.City, StringComparison.OrdinalIgnoreCase));

                //if an element with the given postal code is found return the corresponding canton
                if (node != null)
                {
                    return(new Municipality
                    {
                        Canton = node.Attributes["CantonNumber"].Value,
                        MunicipalityName = node.Attributes["MunicipalityName"].Value,
                        MunicipalityNumber = node.Attributes["MunicipalityNumber"].Value
                    });
                }
            }

            return(null);
        }
Exemplo n.º 11
0
        public static string TryGuessCanton(string formattedAddress)
        {
            Address addressParser = AddressesParser.Parse(formattedAddress);

            return(TryGuessCanton(addressParser.PostalCode, addressParser.City));
        }