From a27a774cae8212b47ea68b297e1186b225ac9967 Mon Sep 17 00:00:00 2001 From: Maodo DIOP Date: Thu, 13 Aug 2026 11:12:33 +0000 Subject: [PATCH] feat: blood categories --- README.md | 1 + src/main/java/com/github/javafaker/Blood.java | 14 ++++++++++++++ src/main/java/com/github/javafaker/Faker.java | 6 ++++++ .../com/github/javafaker/service/files/EnFile.java | 1 + src/main/resources/ar.yml | 2 ++ src/main/resources/ca.yml | 2 ++ src/main/resources/cs-CZ.yml | 2 ++ src/main/resources/de.yml | 2 ++ src/main/resources/en/blood.yml | 4 ++++ src/main/resources/fr.yml | 2 ++ src/main/resources/hu.yml | 2 ++ src/main/resources/hy.yml | 2 ++ src/main/resources/ja.yml | 2 ++ src/main/resources/pt-BR.yml | 2 ++ src/main/resources/th.yml | 2 ++ src/test/java/com/github/javafaker/BloodTest.java | 14 ++++++++++++++ .../com/github/javafaker/integration/FakerIT.java | 1 + 17 files changed, 61 insertions(+) create mode 100644 src/main/java/com/github/javafaker/Blood.java create mode 100644 src/main/resources/en/blood.yml create mode 100644 src/test/java/com/github/javafaker/BloodTest.java diff --git a/README.md b/README.md index d1385324e..ea4c2af26 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ Fakers * Bojack Horseman * Book * Bool +* Blood * Business * ChuckNorris * Cat diff --git a/src/main/java/com/github/javafaker/Blood.java b/src/main/java/com/github/javafaker/Blood.java new file mode 100644 index 000000000..d1ac719f6 --- /dev/null +++ b/src/main/java/com/github/javafaker/Blood.java @@ -0,0 +1,14 @@ +package com.github.javafaker; + +public class Blood { + private final Faker faker; + + protected Blood(Faker faker) { + this.faker = faker; + } + + public String name() { + return faker.fakeValuesService().resolve("blood.name", this, faker); + } + +} diff --git a/src/main/java/com/github/javafaker/Faker.java b/src/main/java/com/github/javafaker/Faker.java index 751fb7797..ba8b26d58 100644 --- a/src/main/java/com/github/javafaker/Faker.java +++ b/src/main/java/com/github/javafaker/Faker.java @@ -33,6 +33,7 @@ public class Faker { private final Book book; private final ChuckNorris chuckNorris; private final Color color; + private final Blood blood; private final Commerce commerce; private final Country country; private final Currency currency; @@ -149,6 +150,7 @@ public Faker(FakeValuesService fakeValuesService, RandomService random) { this.business = new Business(this); this.chuckNorris = new ChuckNorris(this); this.color = new Color(this); + this.blood = new Blood(this); this.idNumber = new IdNumber(this); this.hacker = new Hacker(this); this.company = new Company(this); @@ -419,6 +421,10 @@ public Color color() { return color; } + public Blood blood() { + return blood; + } + public Commerce commerce() { return commerce; } diff --git a/src/main/java/com/github/javafaker/service/files/EnFile.java b/src/main/java/com/github/javafaker/service/files/EnFile.java index 4a77ac013..3a63230b4 100644 --- a/src/main/java/com/github/javafaker/service/files/EnFile.java +++ b/src/main/java/com/github/javafaker/service/files/EnFile.java @@ -39,6 +39,7 @@ public String getPath() { "bank.yml", "basketball.yml", "beer.yml", + "blood.yml", "bojack_horseman.yml", "book.yml", "bossa_nova.yml", diff --git a/src/main/resources/ar.yml b/src/main/resources/ar.yml index edc5f1fdb..1ef99cc43 100644 --- a/src/main/resources/ar.yml +++ b/src/main/resources/ar.yml @@ -71,6 +71,8 @@ ar: color: name: [أحمر, أخضر, أزرق, أصفر, بنفسجيّ, نعناعيّ, أبيض, أسود, برتقاليّ, ورديّ, رماديّ, كستنائيّ, تركواز, سماريّ, خوخيّ, أوركيديّ, زيتونيّ, أرجوانيّ, ليمونيّ, نيليّ, ذهبيّ, فوشيه, لازورديّ, فضّي] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] commerce: department: ["كتب", "أفلام", "موسيقى", "آلعاب", "الكترونيات", "حاسبات", "منزل", "حديقة", "أدوات", "بقالة", "صحة", "جمال", "آلعاب", "أطفال", "رضّع", "ملابس", "أحذية", "مجوهرات", "رياضة", "أنشطة خارجيّة", "سيّارات", "صناعات"] diff --git a/src/main/resources/ca.yml b/src/main/resources/ca.yml index b70481951..a7697c2b3 100644 --- a/src/main/resources/ca.yml +++ b/src/main/resources/ca.yml @@ -29,3 +29,5 @@ ca: - "#{first_name} #{last_name} #{last_name}" color: name: [aiguamarina, albercoc, amarant, ambre, ametista, atzur, beix, bistre, blanc, blat, blau, blau cel, blau fosc, blau marí, blau reial, blauet, bronze, camussa, canyella, caqui, cardenal, carmesí, carmí, carnació, castany rogenc, celadont, ceruli, chartreuse, cian, cirera, corall, coure, crema, escarlata, granat, gris, gris fosc, groc, lavanda, lila, llima, magenta, malva, marró, morat, ocre, or, orquídia, panotxa, plata, porpra, préssec, pruna, verd, verd maragda, verd oliva, verd veronès, vermell, vermell fosc, vermelló, vinca, violat, vori] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] diff --git a/src/main/resources/cs-CZ.yml b/src/main/resources/cs-CZ.yml index 0da9dad50..955a50fdd 100644 --- a/src/main/resources/cs-CZ.yml +++ b/src/main/resources/cs-CZ.yml @@ -25,6 +25,8 @@ cs-CZ: - "#{male_first_name}.#{male_last_name}" color: name: [červená, zelená, modrá, žlutá, purpurová, bílá, černá, oranžová, růžová, šedá, fialová, tyrkysová, lososová, švesková, cihlová, olivová, magenta, hnědá, vínová, zlatá, stříbrná, azurová] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] phone_number: formats: ['###-###-####', '(###) ###-####', '1-###-###-####', '###.###.####', '###-###-####', '(###) ###-####', '1-###-###-####', '###.###.####', '###-###-#### x###', '(###) ###-#### x###', '1-###-###-#### x###', '###.###.#### x###', '###-###-#### x####', '(###) ###-#### x####', '1-###-###-#### x####', '###.###.#### x####', '###-###-#### x#####', '(###) ###-#### x#####', '1-###-###-#### x#####', '###.###.#### x#####'] cell_phone: diff --git a/src/main/resources/de.yml b/src/main/resources/de.yml index d235969a5..b41565a24 100644 --- a/src/main/resources/de.yml +++ b/src/main/resources/de.yml @@ -103,6 +103,8 @@ de: color: name: [rot, grün, blau, gelb, lila, weiß, schwarz, orange, rosa, grau, braun, violett, türkis, oliv, beige, ocker, sand, mocka, bordeaux, aprikose, mint-grün, magenta, gold, silber, bronze, limette, azur, pink] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] commerce: department: ["Bücher", "Filme", "Musik", "Spiele", "Elektronik", "Computer", "Haushalt", "Garten", "Werkzeug", "Lebensmittel", "Gesundheit", "Beauty", "Spielzeug", "Kinder", "Kleinkinder", "Kleider", "Schuhe", "Schmuck", "Sport", "Outdoor", "Auto", "Industrie"] diff --git a/src/main/resources/en/blood.yml b/src/main/resources/en/blood.yml new file mode 100644 index 000000000..dbd2e51aa --- /dev/null +++ b/src/main/resources/en/blood.yml @@ -0,0 +1,4 @@ +en: + faker: + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] diff --git a/src/main/resources/fr.yml b/src/main/resources/fr.yml index 2f423a1e2..1cf2dc75e 100644 --- a/src/main/resources/fr.yml +++ b/src/main/resources/fr.yml @@ -22,6 +22,8 @@ fr: color: name: ["rouge", "vert", "bleu", "jaune", "violet", "vert menthe", "bleu sarcelle", "blanc", "noir", "orange", "rose", "gris", "marron", "turquoise", "brun", "bleu ciel", "saumon", "prune", "orchidée", "olive", "magenta", "vert citron", "ivoire", "indigo", "or", "fuchsia", "cyan", "azur", "lavande", "argent"] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] compass: cardinal: diff --git a/src/main/resources/hu.yml b/src/main/resources/hu.yml index 33e7ce882..b5441a31d 100644 --- a/src/main/resources/hu.yml +++ b/src/main/resources/hu.yml @@ -58,6 +58,8 @@ hu: color: name: [vörös, zöld, kék, sárga, lila, mentazöld, zöldeskék, fehér, fekete, narancssárga, rózsaszín, szürke, gesztenyebarna, ibolya, türkiz, cser, égszínkék, lazacszín, szilvakék, oliva, bíborvörös, lime, csontfehér, indigókék, aranyszín, fukszia, ciánkék, levendula, ezüst] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] commerce: department: ["Könyvek", "Filmek", "Zene", "Játékok", "Műszaki készülékek", "Számítógépek", "Otthon", "Kert", "Szerszámok", "Élelmiszer", "Egészség", "Kozmetika", "Gyermekholmik", "Babaholmik", "Ruházat", "Cipők", "Ékszer", "Sportszer", "Túrafelszerelés", "Gépjármű"] diff --git a/src/main/resources/hy.yml b/src/main/resources/hy.yml index cd271a4a2..7ecb7e0ff 100644 --- a/src/main/resources/hy.yml +++ b/src/main/resources/hy.yml @@ -281,6 +281,8 @@ hy: color: name: [կարմիր, կանաչ, կապույտ, դեղին, մանուշակագույն, սպիտակ, սև, նարնջագույն, վարդագույն, մոխրագույն, շագանակագույն, մանուշակագույն, փիրուզագույն, երկնագույն, դեղնավարդագույն, մուգ մանուշակագույն, դեղնականաչ, ոսկեգույն, դարչնագույն] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] commerce: department: [Գրքեր, Ֆիլմեր, Երաժշտություն, Խաղեր, Խաղալիքեր, Էլեկտրոնիկա, Համակարգիչներ, Ապրանքներ Տան Համար, Ապրանքներ Այգեգործության Համար, Գործիքներ, Նպարեղեն, Առողջապահական Ապրանքներ, Կոսմետիկ Ապրանքներ, Մանկական Ապրանքներ, Ապրանքներ Նորածինների Համար, Հագուստ, Կոշկեղեն, Ոսկերչական Իրեր, Սպորտային Ապրանքներ, Ավտոմոբիլների Պահեստամասեր, Արդյունաբերական Ապրանքներ] diff --git a/src/main/resources/ja.yml b/src/main/resources/ja.yml index 92e04e989..64c869849 100644 --- a/src/main/resources/ja.yml +++ b/src/main/resources/ja.yml @@ -30,6 +30,8 @@ ja: color: name: ["赤", "緑", "青", "黄", "紫", "ミントグリーン", "ティール", "白", "黒", "オレンジ", "ピンク", "灰色", "栗色", "バイオレット", "ターコイズブルー", "タン", "空色", "サーモン", "プラム", "オーキッド", "オリーブ", "マゼンタ", "ライム", "アイボリー", "藍色", "金", "フクシア", "シアン", "紺碧", "ラベンダー", "銀"] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] company: suffix: ["株式会社", "有限会社", "合名会社", "合資会社", "合同会社"] diff --git a/src/main/resources/pt-BR.yml b/src/main/resources/pt-BR.yml index 66a98b0b2..c161154c5 100644 --- a/src/main/resources/pt-BR.yml +++ b/src/main/resources/pt-BR.yml @@ -642,6 +642,8 @@ pt-BR: suffix: ["Jr.", "Neto", "Filho"] color: name: ["Abóbora", "Amaranto", "Amarelo", "Âmbar", "Ameixa", "Ardósia", "Azul", "Azul-bebê", "Azul-claro", "Azul-cobalto", "Azul-esverdeado", "Azul-marinho", "Azul-persa", "Azul-violeta", "Bege", "Branco", "Carmesim", "Carmim", "Cereja", "Cerúleo", "Champagne", "Chocolate", "Cinza", "Coral", "Escarlate", "Framboesa", "Índigo", "Laranja", "Lavanda", "Lilás", "Lima", "Magenta", "Marfim", "Marrom", "Oliva", "Ouro", "Pêssego", "Prata", "Preto", "Rosa", "rosa-arroxeado", "Rosa-magenta", "Roxo", "Salmão", "Turquesa", "Uva", "Verde", "Verde-água", "Verde-claro", "Verde-jade", "Verde-limão", "Verde-primavera", "Vermelho", "Violeta"] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] team: main_teams: ['Flamengo', 'Fluminense', 'Botafogo', 'Vasco da Gama', 'Corinthians','Grêmio','Flamengo','Palmeiras','Santos','Coritiba','Cruzeiro','Ponte Preta', 'Chapecoense', 'Sport','São Paulo','Bahia', 'Vitória', 'Avaí', 'América'] prefix: ['Grêmio', 'Atlético', 'Clube de Regatas', 'Esporte'] diff --git a/src/main/resources/th.yml b/src/main/resources/th.yml index dc198a1a8..4a49f7763 100644 --- a/src/main/resources/th.yml +++ b/src/main/resources/th.yml @@ -18,6 +18,8 @@ th: color: name: [แดง, สัม, แสด, เหลือง, เขียวอ่อน, เขียวแก่, ฟ้า, น้ำเงิน, ม่วง, ชมพู, ขาว, ดำ, เทา, น้ำตาล, เนื้อ, น้ำตาลไหม้, น้ำตาลอ่อน, เกาลัด, ธัญพืช, โอ๊ต, ชานม, ทราย, น้ำตาลดำ, เหลืองไหล, นวลจันทร์, เหลืองรงค์, นวล, เหลืองดิน, แดงชาด, เสน, ดินแดง, หิงส์ดิน, แดงดอกชบา, บัวโรย, แดงเลือดหมู, แดงเลือดนก, หงชาด, ลิ้นจี่, ม่วงดอกตะแบก, ฟ้าแลบ, ควายเผือก, ม่วงดอกผักตบ, คราม, เมฆคราม, ม่วงเม็ดมะปราง, ลูกหว้า, ขาวกระบัง, น้ำไหล, ผ่านคราม, เขียวใบแค, เขียวไหล, ผุ่นแดง, ดำเขม่า, หมึกจีน, เขียวตังแข] + blood: + name: ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] internet: domain_suffix: [co.th, net, io, com, org] diff --git a/src/test/java/com/github/javafaker/BloodTest.java b/src/test/java/com/github/javafaker/BloodTest.java new file mode 100644 index 000000000..783ca6917 --- /dev/null +++ b/src/test/java/com/github/javafaker/BloodTest.java @@ -0,0 +1,14 @@ +package com.github.javafaker; + +import org.junit.Test; + +import static com.github.javafaker.matchers.MatchesRegularExpression.matchesRegularExpression; +import static org.junit.Assert.assertThat; + +public class BloodTest extends AbstractFakerTest { + // must match one of the blood types in the list + @Test + public void testName() { + assertThat(faker.blood().name(), matchesRegularExpression("A\\+|A-|B\\+|B-|AB\\+|AB-|O\\+|O-")); + } +} \ No newline at end of file diff --git a/src/test/java/com/github/javafaker/integration/FakerIT.java b/src/test/java/com/github/javafaker/integration/FakerIT.java index 07ddc89ca..c5a2244ad 100644 --- a/src/test/java/com/github/javafaker/integration/FakerIT.java +++ b/src/test/java/com/github/javafaker/integration/FakerIT.java @@ -105,6 +105,7 @@ public void testAllFakerMethodsThatReturnStrings() throws Exception { testAllMethodsThatReturnStringsActuallyReturnStrings(faker.book()); testAllMethodsThatReturnStringsActuallyReturnStrings(faker.chuckNorris()); testAllMethodsThatReturnStringsActuallyReturnStrings(faker.color()); + testAllMethodsThatReturnStringsActuallyReturnStrings(faker.blood()); testAllMethodsThatReturnStringsActuallyReturnStrings(faker.commerce()); testAllMethodsThatReturnStringsActuallyReturnStrings(faker.company()); testAllMethodsThatReturnStringsActuallyReturnStrings(faker.country());