diff --git a/src/main/java/com/github/javafaker/Company.java b/src/main/java/com/github/javafaker/Company.java index 23ab0508..327ff027 100644 --- a/src/main/java/com/github/javafaker/Company.java +++ b/src/main/java/com/github/javafaker/Company.java @@ -1,5 +1,6 @@ package com.github.javafaker; +import java.net.IDN; import java.util.ArrayList; import java.util.List; @@ -8,6 +9,8 @@ import org.apache.commons.lang.StringUtils; import com.github.javafaker.service.FakeValuesServiceInterface; import com.github.javafaker.service.RandomService; +import static org.apache.commons.lang.StringUtils.join; + public class Company { private final FakeValuesServiceInterface fakeValuesService; private final Resolver resolver; @@ -71,6 +74,24 @@ public class Company { return "https://pigment.github.io/fake-logos/logos/medium/color/" + number + ".png"; } + public String url() { + return join(new Object[]{ + "www", + ".", + IDN.toASCII(domainName()), + ".", + domainSuffix() + }); + } + + private String domainName(){ + return StringUtils.deleteWhitespace(name().toLowerCase().replaceAll(",", "").replaceAll("'", "")); + } + + private String domainSuffix() { + return fakeValuesService.fetchString("internet.domain_suffix"); + } + private String joinSampleOfEachList(List> listOfLists, String separator) { List words = new ArrayList(); for (List list : listOfLists) { diff --git a/src/main/resources/uk.yml b/src/main/resources/uk.yml index 71a9084d..0bf2836a 100644 --- a/src/main/resources/uk.yml +++ b/src/main/resources/uk.yml @@ -1,6 +1,6 @@ uk: faker: - separator: " та " + separator: [" та ", " і ", " й "] address: country: [Австралія, Австрія, Азербайджан, Албанія, Алжир, Ангола, Андорра, Антигуа і Барбуда, Аргентина, Афганістан, Багамські Острови, Бангладеш, Барбадос, Бахрейн, Беліз, Бельгія, Бенін, Білорусь, Болгарія, Болівія, Боснія і Герцеговина, Ботсвана, Бразилія, Бруней, Буркіна-Фасо, Бурунді, Бутан, В’єтнам, Вануату, Ватикан, Велика Британія, Венесуела, Вірменія, Габон, Гаїті, Гайана, Гамбія, Гана, Гватемала, Гвінея, Гвінея-Бісау, Гондурас, Гренада, Греція, Грузія, Данія, Демократична Республіка Конго, Джибуті, Домініка, Домініканська Республіка, Еквадор, Екваторіальна Гвінея, Еритрея, Естонія, Ефіопія, Єгипет, Ємен, Замбія, Зімбабве, Ізраїль, Індія, Індонезія, Ірак, Іран, Ірландія, Ісландія, Іспанія, Італія, Йорданія, Кабо-Верде, Казахстан, Камбоджа, Камерун, Канада, Катар, Кенія, Киргизстан, Китай, Кіпр, Кірибаті, Колумбія, Коморські Острови, Конго, Коста-Рика, "Кот-д’Івуар", Куба, Кувейт, Лаос, Латвія, Лесото, Литва, Ліберія, Ліван, Лівія, Ліхтенштейн, Люксембург, Маврикій, Мавританія, Мадаґаскар, Македонія, Малаві, Малайзія, Малі, Мальдіви, Мальта, Марокко, Маршаллові Острови, Мексика, Мозамбік, Молдова, Монако, Монголія, Намібія, Науру, Непал, Нігер, Нігерія, Нідерланди, Нікарагуа, Німеччина, Нова Зеландія, Норвегія, "Об’єднані Арабські Емірати", Оман, Пакистан, Палау, Панама, Папуа-Нова Гвінея, Парагвай, Перу, Південна Корея, Південний Судан, Південно-Африканська Республіка, Північна Корея, Польща, Португалія, Російська Федерація, Руанда, Румунія, Сальвадор, Самоа, Сан-Марино, Сан-Томе і Принсіпі, Саудівська Аравія, Свазіленд, Сейшельські Острови, Сенеґал, Сент-Вінсент і Гренадини, Сент-Кітс і Невіс, Сент-Люсія, Сербія, Сирія, Сінгапур, Словаччина, Словенія, Соломонові Острови, Сомалі, Судан, Суринам, Східний Тимор, США, Сьєрра-Леоне, Таджикистан, Таїланд, Танзанія, Того, Тонга, Тринідад і Тобаго, Тувалу, Туніс, Туреччина, Туркменістан, Уганда, Угорщина, Узбекистан, Україна, Уругвай, Федеративні Штати Мікронезії, Фіджі, Філіппіни, Фінляндія, Франція, Хорватія, Центральноафриканська Республіка, Чад, Чехія, Чилі, Чорногорія, Швейцарія, Швеція, Шрі-Ланка, Ямайка, Японія] building_number: ['#', '##', '1##'] @@ -12,10 +12,10 @@ uk: postcode: ['#####'] state: [АР Крим, Вінницька область, Волинська область, Дніпропетровська область, Донецька область, Житомирська область, Закарпатська область, Запорізька область, Івано-Франківська область, Київська область, Кіровоградська область, Луганська область, Львівська область, Миколаївська область, Одеська область, Полтавська область, Рівненська область, Сумська область, Тернопільська область, Харківська область, Херсонська область, Хмельницька область, Черкаська область, Чернівецька область, Чернігівська область, Київ, Севастополь] state_abbr: "" - street_title: [Зелена, Молодіжна, Городоцька, Стрийська, Вузька, Нижанківського, Староміська, Ліста, Вічева, Брюховичів, Винників, Рудного, Коліївщини] - masculine_street_title: [Нижанківського, Ліста, Вічева, Рудного] - feminine_street_title: [Зелена, Молодіжна, Городоцька, Стрийська, Вузька, Староміська] - city_name: [Алчевськ, Артемівськ, Бердичів, Бердянськ, Біла Церква, Бровари, Вінниця, Горлівка, Дніпродзержинськ, Дніпропетровськ, Донецьк, Євпаторія, Єнакієве, Житомир, Запоріжжя, Івано-Франківськ, Ізмаїл, Кам’янець-Подільський, Керч, Київ, Кіровоград, Конотоп, Краматорськ, Красний Луч, Кременчук, Кривий Ріг, Лисичанськ, Луганськ, Луцьк, Львів, Макіївка, Маріуполь, Мелітополь, Миколаїв, Мукачеве, Нікополь, Одеса, Олександрія, Павлоград, Полтава, Рівне, Севастополь, Сєвєродонецьк, Сімферополь, Слов’янськ, Суми, Тернопіль, Ужгород, Умань, Харків, Херсон, Хмельницький, Черкаси, Чернівці, Чернігів, Шостка, Ялта] + street_title: [Зелена, Молодіжна, Городоцька, Стрийська, Вузька, Нижанківського, Староміська, Ліста, Вічева, Брюховичів, Винників, Рудного, Коліївщини, Личаківська, Котика, Митна, Підвальна, Руська, Чернівецька,Чернігівська, Хімічна, Липинського, Чорновола, Княгині Ольги, Сахарова, Виговського, Галицька, Пекарська, Бічна, Івана Франка, Тараса Шевченка, Лесі Українки, Київська, Ковельська, Волинська, Залізнична, Лисенка, Вишенського, Сихівська, Угорська, Ужгородська, Пасічна, Мазепи, Хвильового, Соборна, Студентська, Ярослава Мудрого] + masculine_street_title: [Нижанківського, Ліста, Вічева, Рудного, Котика, Липинського, Чорновола, Сахарова, Виговського, Івана Франка, Тараса Шевченка, Лисенка, Вишенського, Мазепи, Хвильового, Ярослава Мудрого] + feminine_street_title: [Зелена, Молодіжна, Городоцька, Стрийська, Вузька, Староміська, Личаківська, Митна, Підвальна, Руська, Чернівецька, Чернігівська, Хімічна, Княгині Ольги, Галицька, Пекарська, Бічна, Лесі Українки, Київська, Ковельська, Волинська, Залізнична, Сихівська, Угорська, Ужгородська, Пасічна, Соборна, Студентська] + city_name: [Алчевськ, Артемівськ, Бердичів, Бердянськ, Біла Церква, Бровари, Вінниця, Горлівка, Кам'янське, Дніпро, Донецьк, Євпаторія, Єнакієве, Житомир, Запоріжжя, Івано-Франківськ, Ізмаїл, Кам’янець-Подільський, Керч, Київ, Кіровоград, Конотоп, Краматорськ, Красний Луч, Кременчук, Кривий Ріг, Лисичанськ, Луганськ, Луцьк, Львів, Макіївка, Маріуполь, Мелітополь, Миколаїв, Мукачеве, Нікополь, Одеса, Олександрія, Павлоград, Полтава, Рівне, Севастополь, Сєвєродонецьк, Сімферополь, Слов’янськ, Суми, Тернопіль, Ужгород, Умань, Харків, Херсон, Хмельницький, Черкаси, Чернівці, Чернігів, Шостка, Ялта] city_prefix: "" city_suffix: "" city: diff --git a/src/test/java/com/github/javafaker/CompanyTest.java b/src/test/java/com/github/javafaker/CompanyTest.java index fa98906b..c9627dae 100644 --- a/src/test/java/com/github/javafaker/CompanyTest.java +++ b/src/test/java/com/github/javafaker/CompanyTest.java @@ -54,4 +54,10 @@ public class CompanyTest { public void testProfession() { assertThat(faker.company().profession(), matchesRegularExpression("[a-z ]+")); } + + @Test + public void testUrl() { + String regexp = "(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])"; + assertThat(faker.company().url(), matchesRegularExpression(regexp)); + } }