From 33a8cdb169d527eeb651d354e2cbbf28d1a039ca Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Thu, 8 Apr 2021 01:57:34 +0200 Subject: [PATCH] Add email validation --- .../fr/dcproject/common/validation/Email.kt | 6 ++++ src/test/kotlin/unit/Email Validation.kt | 32 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/main/kotlin/fr/dcproject/common/validation/Email.kt create mode 100644 src/test/kotlin/unit/Email Validation.kt diff --git a/src/main/kotlin/fr/dcproject/common/validation/Email.kt b/src/main/kotlin/fr/dcproject/common/validation/Email.kt new file mode 100644 index 0000000..32842bb --- /dev/null +++ b/src/main/kotlin/fr/dcproject/common/validation/Email.kt @@ -0,0 +1,6 @@ +package fr.dcproject.common.validation + +import io.konform.validation.ValidationBuilder +import io.konform.validation.jsonschema.pattern + +fun ValidationBuilder.email() = pattern(""".+@.+\..+""") diff --git a/src/test/kotlin/unit/Email Validation.kt b/src/test/kotlin/unit/Email Validation.kt new file mode 100644 index 0000000..a7754ff --- /dev/null +++ b/src/test/kotlin/unit/Email Validation.kt @@ -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::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) +}