Skip to content

Commit fc64cf1

Browse files
feat: add MartialArt provider with name support (#1549)
* feat: add MartialArt provider with name support - Created MartialArt provider in `net.datafaker.providers.sport` - Added `martialart()` accessor in SportProviders interface - Registered YAML resource file `martial_art.yml` with martial art names - Updated EnFile to include "martial_art.yml" - Implemented unit tests in `MartialArtTest` for name resolution
1 parent bef1231 commit fc64cf1

File tree

5 files changed

+122
-1
lines changed

5 files changed

+122
-1
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package net.datafaker.providers.sport;
2+
3+
import net.datafaker.providers.base.AbstractProvider;
4+
5+
/**
6+
* Custom Faker provider for martial arts.
7+
* Supports resolving values from "martial_art.name" and "martial_art.origin" in the locale YAML file.
8+
*
9+
* <p>Contributed by Paulo Cunha</p>
10+
*
11+
* @see <a href="https://github.com/paulofranklins2/">https://github.com/paulofranklins2/</a>
12+
* @see <a href="https://www.linkedin.com/in/paulofranklins2/">https://www.linkedin.com/in/paulofranklins/</a>
13+
*/
14+
public class MartialArt extends AbstractProvider<SportProviders> {
15+
16+
protected MartialArt(SportProviders faker) {
17+
super(faker);
18+
}
19+
20+
public String name() {
21+
return resolve("martial_art.name");
22+
}
23+
}

src/main/java/net/datafaker/providers/sport/SportProviders.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ default Formula1 formula1() {
3131
return getProvider(Formula1.class, Formula1::new);
3232
}
3333

34+
default MartialArt martialArt() {
35+
return getProvider(MartialArt.class, MartialArt::new);
36+
}
37+
3438
default Volleyball volleyball() {
3539
return getProvider(Volleyball.class, Volleyball::new);
3640
}
37-
3841
}

src/main/java/net/datafaker/service/files/EnFile.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ public String getPath() {
158158
"marketing.yml",
159159
"mass_effect.yml",
160160
"matz.yml",
161+
"martial_art.yml",
161162
"measurement.yml",
162163
"mbti.yml",
163164
"medical.yml",
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
en:
2+
faker:
3+
martial_art:
4+
name:
5+
- "Kung Fu"
6+
- "Shaolin"
7+
- "Wing Chun"
8+
- "Tai Chi"
9+
- "Baguazhang"
10+
- "Xingyiquan"
11+
- "Sanda"
12+
- "Shuai Jiao"
13+
- "Karate"
14+
- "Shotokan"
15+
- "Kyokushin"
16+
- "Goju-Ryu"
17+
- "Judo"
18+
- "Jujutsu"
19+
- "Aikido"
20+
- "Kendo"
21+
- "Iaido"
22+
- "Ninjutsu"
23+
- "Kenjutsu"
24+
- "Sumo"
25+
- "Taekwondo"
26+
- "Hapkido"
27+
- "Taekkyon"
28+
- "Kuk Sool Won"
29+
- "Choi Kwang Do"
30+
- "Gongkwon Yusul"
31+
- "Muay Thai"
32+
- "Muay Boran"
33+
- "Krabi-Krabong"
34+
- "Lethwei"
35+
- "Pradal Serey"
36+
- "Bokator"
37+
- "Vovinam"
38+
- "Nhất Nam"
39+
- "Pencak Silat"
40+
- "Silat Pattani"
41+
- "Kalaripayattu"
42+
- "Gatka"
43+
- "Mardani Khel"
44+
- "Vajra-mushti"
45+
- "Angampora"
46+
- "Boxing"
47+
- "Savate"
48+
- "Fencing"
49+
- "Glima"
50+
- "Pankration"
51+
- "Catch Wrestling"
52+
- "Bartitsu"
53+
- "Schwingen"
54+
- "HEMA"
55+
- "Brazilian Jiu-Jitsu"
56+
- "Capoeira"
57+
- "Luta Livre"
58+
- "Vale Tudo"
59+
- "American Kenpo"
60+
- "MCMAP"
61+
- "10th Planet Jiu-Jitsu"
62+
- "Jeet Kune Do"
63+
- "Tire Machèt"
64+
- "Bakom"
65+
- "Dambe"
66+
- "Moraingy"
67+
- "Tahtib"
68+
- "Nguni Stick Fighting"
69+
- "Nuba Fighting"
70+
- "Istunka"
71+
- "Mixed Martial Arts"
72+
- "Krav Maga"
73+
- "Systema"
74+
- "Sambo"
75+
- "Defendo"
76+
- "Kajukenbo"
77+
- "Shootfighting"
78+
- "LINE"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package net.datafaker.providers.sport;
2+
3+
import java.util.List;
4+
import java.util.Collection;
5+
6+
class MartialArtTest extends SportFakerTest {
7+
8+
private final MartialArt martialArt = getFaker().martialArt();
9+
10+
@Override
11+
protected Collection<TestSpec> providerListTest() {
12+
return List.of(
13+
TestSpec.of(martialArt::name, "martial_art.name")
14+
);
15+
}
16+
}

0 commit comments

Comments
 (0)