diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/RegexUtil.java b/goofy-server/src/main/java/de/itvsh/goofy/common/RegexUtil.java index 77667907dd8d7686ed8486c3c73eb216abdc121c..9608e5379f2d5732b2b8437b4a4eec38ddd5b613 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/common/RegexUtil.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/common/RegexUtil.java @@ -6,5 +6,5 @@ import lombok.NoArgsConstructor; @NoArgsConstructor(access = AccessLevel.PRIVATE) public class RegexUtil { - public static final String VALIDATION_EMAIL = "[a-zA-Z0-9!#$%&'*+\\/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"; + public static final String VALIDATION_EMAIL = "[a-zA-Z0-9!#$%&'*+\\/=?^_`{|}~-]+(?:\\.[a-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])?"; } \ No newline at end of file diff --git a/goofy-server/src/test/java/de/itvsh/goofy/common/RegexUtilTest.java b/goofy-server/src/test/java/de/itvsh/goofy/common/RegexUtilTest.java index 967534f27026d45133a825b81c0f79298777a2a1..902656f14676d9e9f15bded4599d15d8a9cdcbab 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/common/RegexUtilTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/common/RegexUtilTest.java @@ -34,49 +34,71 @@ public class RegexUtilTest { } @Nested - class TestDomainDot { + class TestDomain { - @Test - void shouldMatchOnOneDot() { - shouldMatch("localpart@domain.com"); - } + @Nested + class TestDomainDot { - @Test - void shouldNotMatchOnNoneDot() { - shouldNotMatch("localpart@domaincom"); + @Test + void shouldMatchOnOneDot() { + shouldMatch("localpart@domain.com"); + } + + @Test + void shouldNotMatchOnNoneDot() { + shouldNotMatch("localpart@domaincom"); + } + + @Test + void shouldMatchOnMultipleDots() { + shouldNotMatch("localpart@domain...com"); + } } - @Test - void shouldMatchOnMultipleDots() { - shouldNotMatch("localpart@domain...com"); + @Nested + class TestDomainCharCaseSensitive { + + @Test + void shouldMatchOnLowerCaseChar() { + shouldMatch("localpart@domain.com"); + } + + @Test + void shouldMatchOnUpperCaseChar() { + shouldMatch("localpart@DOMAIN.COM"); + } } } @Nested class TestLocalPart { - @Test - void shouldMatchOnAtLeastOneChar() { - shouldMatch("l@domain.com"); - } + @Nested + class TestLocalPartChar { - @Test - void shouldMatchOnNoneChar() { - shouldNotMatch("@domain.com"); + @Test + void shouldMatchOnAtLeastOneChar() { + shouldMatch("l@domain.com"); + } + + @Test + void shouldMatchOnNoneChar() { + shouldNotMatch("@domain.com"); + } } - } - @Nested - class TestLocalPartCase { + @Nested + class TestLocalPartCharCaseSensitive { - @Test - void shouldAllowUpperCaseChar() { - shouldMatch("UPPER_CHAR@domain.com"); - } + @Test + void shouldAllowUpperCaseChar() { + shouldMatch("UPPER_CHAR@domain.com"); + } - @Test - void shouldAllowLowerCaseChar() { - shouldMatch("lower_char@domain.com"); + @Test + void shouldAllowLowerCaseChar() { + shouldMatch("lower_char@domain.com"); + } } }