Skip to content

Commit dacb24e

Browse files
Fix regex patterns
1 parent a8ed331 commit dacb24e

File tree

8 files changed

+28
-30
lines changed

8 files changed

+28
-30
lines changed

lib/src/main/kotlin/io/bloco/faker/components/Avatar.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Avatar(data: FakerData) : FakerComponent(data) {
1111
set: String = "set1",
1212
bgset: String? = null
1313
): String {
14-
require(size.matches("^\\d+x\\d+$".toRegex())) {
14+
require(size.matches("^[0-9]+x[0-9]+$".toRegex())) {
1515
"Size should be specified in format 300x300"
1616
}
1717
require(SUPPORTED_FORMATS.contains(format)) {

lib/src/main/kotlin/io/bloco/faker/components/Name.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class Name(data: FakerData) : FakerComponent(data) {
3434
return parse(fetch("name.name_with_middle"))
3535
}
3636

37+
@Suppress("UNCHECKED_CAST")
3738
fun jobTitles(): List<String> {
3839
return getMap("name", "title")["job"] as List<String>
3940
}

lib/src/main/kotlin/io/bloco/faker/components/Placeholdit.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class Placeholdit(data: FakerData) : FakerComponent(data) {
3232
companion object {
3333
val SUPPORTED_FORMATS = listOf("png", "jpg", "jpeg", "gif")
3434
private const val PLACEHOLDER_URL = "https://placehold.it/"
35-
private const val SIZE_REGEX = "^\\d+x\\d+$"
36-
private const val HEX_REGEX = "(^[\\da-fA-F]{3}$|^[\\da-fA-F]{6}$)(?!.*[^\\da-fA-F])"
35+
private const val SIZE_REGEX = "^[0-9]+x[0-9]+$";
36+
private const val HEX_REGEX = "((?:^[0-9a-fA-F]{3}$)|(?:^[0-9a-fA-F]{6}$)){1}(?!.*[^0-9a-fA-F])"
3737
}
3838
}

lib/src/main/kotlin/io/bloco/faker/helpers/StringHelper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class StringHelper {
1212
}
1313

1414
fun camelToSnake(input: String): String {
15-
return input.replace("(?<=[a-zA-Z\\d])(\\p{Upper})".toRegex()) { matcher ->
15+
return input.replace("(?<=\\w)(\\p{Upper})".toRegex()) { matcher ->
1616
"_" + matcher.groupValues[1].lowercase(Locale.getDefault())
1717
}.lowercase(Locale.getDefault())
1818
}

lib/src/test/kotlin/io/bloco/faker/components/ColorTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class ColorTest {
1010

1111
@Test
1212
fun hexColor() {
13-
assertTrue(faker.color.hexColor().matches(Regex("^#[\\da-f]{6}\$")))
13+
assertTrue(faker.color.hexColor().matches(Regex("^#[0-9a-f]{6}$")))
1414
}
1515

1616
@Test

lib/src/test/kotlin/io/bloco/faker/components/FoodTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class FoodTest {
3131
@Test
3232
fun measurement() {
3333
assertNotNull(faker.food.measurement())
34-
assertTrue(faker.food.measurement().matches(Regex("[\\d/]+ \\w+")))
34+
assertTrue(faker.food.measurement().matches(Regex("[\\d\\/]+ \\w+")))
3535
}
3636

3737
@Test

lib/src/test/kotlin/io/bloco/faker/components/InternetTest.kt

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ class InternetTest {
3333

3434
@Test
3535
fun userName() {
36-
assertTrue(faker.internet.userName().matches(Regex("[\\w_.]+")))
37-
assertTrue(faker.internet.userName("Sérgio Santos").matches(Regex("sergio[_.]santos")))
36+
assertTrue(faker.internet.userName().matches(Regex("[\\w\\_\\.]+")))
37+
assertTrue(faker.internet.userName("Sérgio Santos").matches(Regex("sergio[\\_\\.]santos")))
3838
assertTrue(
3939
faker.internet.userName("Sérgio Santos", listOf("&")).matches(Regex("sergio&santos"))
4040
)
@@ -47,40 +47,37 @@ class InternetTest {
4747
assertTrue(faker.internet.password(1).isNotEmpty())
4848
assertTrue(faker.internet.password(2, 4).length in 2..4)
4949
assertTrue(faker.internet.password(2, 2).length == 2)
50-
assertTrue(
51-
faker.internet.password(2, 2, mixCase = true, specialChars = true)
52-
.matches(Regex(".*[!@#$%^&*].*"))
53-
)
54-
assertTrue(faker.internet.password(2, 2, mixCase = true, specialChars = true).length == 2)
55-
50+
assertTrue(faker.internet.password(2, 2,true, true).matches(Regex(".*[a-z].*")))
5651
assertTrue(faker.internet.password(2, 2, true).matches(Regex(".*[A-Z].*")))
52+
assertTrue(faker.internet.password(2, 2, true, true).length == 2)
53+
assertTrue(faker.internet.password(2, 2, true, true).matches(Regex(".*[\\!\\@\\#\\$\\%\\^\\&\\*].*")))
5754
}
5855

5956
@Test
6057
fun domainName() {
61-
assertTrue(faker.internet.domainName().matches(Regex("[\\w.\\-]+\\.[\\w.\\-]+")))
58+
assertTrue(faker.internet.domainName().matches(Regex("[\\w\\.\\-]+\\.[\\w\\.\\-]+")))
6259
}
6360

6461
@Test
6562
fun domainWord() {
66-
assertTrue(faker.internet.domainWord().matches(Regex("[\\w.\\-]+")))
63+
assertTrue(faker.internet.domainWord().matches(Regex("[\\w\\.\\-]+")))
6764
}
6865

6966
@Test
7067
fun domainSuffix() {
71-
assertTrue(faker.internet.domainSuffix().matches(Regex("[\\w.\\-]+")))
68+
assertTrue(faker.internet.domainSuffix().matches(Regex("[\\w\\.\\-]+")))
7269
}
7370

7471
@Test
7572
fun macAddress() {
76-
assertTrue(faker.internet.macAddress().matches(Regex("[\\da-f]{2}(:[\\da-f]{2}){5}")))
77-
assertTrue(faker.internet.macAddress("ff").matches(Regex("ff(:[\\da-f]{2}){5}")))
78-
assertTrue(faker.internet.macAddress("ff:ee").matches(Regex("ff:ee(:[\\da-f]{2}){4}")))
73+
assertTrue(faker.internet.macAddress().matches(Regex("[0-9a-f]{2}(:[0-9a-f]{2}){5}")))
74+
assertTrue(faker.internet.macAddress("ff").matches(Regex("ff(:[0-9a-f]{2}){5}")))
75+
assertTrue(faker.internet.macAddress("ff:ee").matches(Regex("ff:ee(:[0-9a-f]{2}){4}")))
7976
}
8077

8178
@Test
8279
fun ipV4Address() {
83-
assertTrue(faker.internet.ipV4Address().matches(Regex("\\d{1,3}(\\.\\d{1,3}){3}")))
80+
assertTrue(faker.internet.ipV4Address().matches(Regex("[0-9]{1,3}(\\.[0-9]{1,3}){3}")))
8481
}
8582

8683
@Test
@@ -90,35 +87,35 @@ class InternetTest {
9087

9188
@Test
9289
fun ipV6Address() {
93-
assertTrue(faker.internet.ipV6Address().matches(Regex("[\\da-f]{1,4}(:[\\da-f]{1,4}){7}")))
90+
assertTrue(faker.internet.ipV6Address().matches(Regex("[0-9a-f]{1,4}(:[0-9a-f]{1,4}){7}")))
9491
}
9592

9693
@Test
9794
fun ipV6Cidr() {
9895
assertTrue(
99-
faker.internet.ipV6Cidr().matches(Regex("[\\da-f]{1,4}(:[\\da-f]{1,4}){7}/\\d{1,3}"))
96+
faker.internet.ipV6Cidr().matches(Regex("[0-9a-f]{1,4}(:[0-9a-f]{1,4}){7}/\\d{1,3}"))
10097
)
10198
}
10299

103100
@Test
104101
fun url() {
105-
assertTrue(faker.internet.url().matches(Regex("http://[\\w.\\-]+/[\\w.\\-]+")))
102+
assertTrue(faker.internet.url().matches(Regex("http://[\\w\\.\\-]+/[\\w\\.\\-]+")))
106103
assertTrue(
107-
faker.internet.url("example.com").matches(Regex("http://example\\.com/[\\w.\\-]+"))
104+
faker.internet.url("example.com").matches(Regex("http://example\\.com/[\\w\\.\\-]+"))
108105
)
109106
assertTrue(faker.internet.url("example.com", "/hello") == "http://example.com/hello")
110107
}
111108

112109
@Test
113110
fun slug() {
114-
assertTrue(faker.internet.slug().matches(Regex("\\w+([._\\-]\\w+)+")))
115-
assertTrue(faker.internet.slug(listOf("a", "b")).matches(Regex("a[._\\-]b")))
111+
assertTrue(faker.internet.slug().matches(Regex("\\w+([\\.\\_\\-]\\w+)+")))
112+
assertTrue(faker.internet.slug(listOf("a", "b")).matches(Regex("a[\\.\\_\\-]b")))
116113
assertTrue(faker.internet.slug(listOf("a", "b"), "&") == "a&b")
117114
}
118115

119116
@Test
120117
fun deviceToken() {
121-
assertTrue(faker.internet.deviceToken().matches(Regex("[\\da-f]{64}")))
118+
assertTrue(faker.internet.deviceToken().matches(Regex("[0-9a-f]{64}")))
122119
}
123120

124121
companion object {

lib/src/test/kotlin/io/bloco/faker/components/LoremTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ class LoremTest {
7878

7979
@Test
8080
fun paragraph() {
81-
assertTrue(faker.lorem.paragraph(4, true, 0).matches(Regex("([^.]+\\.){4}")))
82-
assertTrue(faker.lorem.paragraph(1, true, 4).matches(Regex("([^.]+\\.){1,5}")))
81+
assertTrue(faker.lorem.paragraph(4, true, 0).matches(Regex("([^\\.]+\\.){4}")))
82+
assertTrue(faker.lorem.paragraph(1, true, 4).matches(Regex("([^\\.]+\\.){1,5}")))
8383
}
8484

8585
@Test

0 commit comments

Comments
 (0)