Add email validation
This commit is contained in:
6
src/main/kotlin/fr/dcproject/common/validation/Email.kt
Normal file
6
src/main/kotlin/fr/dcproject/common/validation/Email.kt
Normal file
@@ -0,0 +1,6 @@
|
||||
package fr.dcproject.common.validation
|
||||
|
||||
import io.konform.validation.ValidationBuilder
|
||||
import io.konform.validation.jsonschema.pattern
|
||||
|
||||
fun ValidationBuilder<String>.email() = pattern(""".+@.+\..+""")
|
||||
32
src/test/kotlin/unit/Email Validation.kt
Normal file
32
src/test/kotlin/unit/Email Validation.kt
Normal file
@@ -0,0 +1,32 @@
|
||||
package unit
|
||||
|
||||
import fr.dcproject.common.validation.email
|
||||
import io.konform.validation.Invalid
|
||||
import io.konform.validation.Valid
|
||||
import io.konform.validation.Validation
|
||||
import org.amshove.kluent.`should be instance of`
|
||||
import org.junit.jupiter.api.Tag
|
||||
import org.junit.jupiter.api.Tags
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.TestInstance
|
||||
import org.junit.jupiter.api.parallel.Execution
|
||||
import org.junit.jupiter.api.parallel.ExecutionMode
|
||||
|
||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||
@Execution(ExecutionMode.CONCURRENT)
|
||||
@Tags(Tag("validation"), Tag("unit"))
|
||||
internal class `Email Validation` {
|
||||
@Test
|
||||
fun passwordScore() {
|
||||
Validation<ObjectToValid> {
|
||||
ObjectToValid::email {
|
||||
email()
|
||||
}
|
||||
}.run {
|
||||
validate(ObjectToValid("abc@123.com")) `should be instance of` Valid::class
|
||||
validate(ObjectToValid("abc123.com")) `should be instance of` Invalid::class
|
||||
}
|
||||
}
|
||||
|
||||
class ObjectToValid(val email: String)
|
||||
}
|
||||
Reference in New Issue
Block a user