Official Document :
" Accord supports several native Scala control structures, notably ifs and pattern matching "
in http://wix.github.io/accord/dsl.html
case class InputData(
id: String,
name: Option[String] = None,
description: Option[String] = None,
items: Seq[String] = Seq.empty
)
Unit Test :
val data = InputData("", None, None, Seq.empty)
val result = validate(data)
result.isFailure shouldBe true
result.toFailure.value.violations.size shouldBe 4
Test Pass !
implicit val inputDataValidator: Validator[InputData] = validator[InputData] { request =>
request.id is notBlank
request.name match {
case None => {
request.name.mkString is notBlank
request.description.mkString is notBlank
request.items is notEmpty
}
}
Test Pass With Exhaustive Cases !
implicit val inputDataValidator: Validator[InputData] = validator[InputData] { request =>
request.name match {
case None => {
request.id is notBlank
request.name.mkString is notBlank
request.description.mkString is notBlank
request.items is notEmpty
}
case Some(_) =>
}
()
}
Test Compilation Failed !
implicit val inputDataValidator: Validator[InputData] = validator[InputData] { request =>
request.name match {
case None => {
request.id is notBlank
request.name.mkString is notBlank
request.description.mkString is notBlank
request.items is notEmpty
}
}
()
}
Test Compilation Failed !
implicit val inputDataValidator: Validator[InputData] = validator[InputData] { request =>
request.name match {
case Some(_) => {
request.id is notBlank
request.name.mkString is notBlank
request.description.mkString is notBlank
request.items is notEmpty
}
}
()
}
Test Compilation Error :
not found: value request
[error] request.name match {
[error] ^
[error] Compilation failed
Official Document : " Accord supports several native Scala control structures, notably ifs and pattern matching " in http://wix.github.io/accord/dsl.html
Library Dependencies :
Input Data :
Unit Test :
Test Pass !
Test Pass With Exhaustive Cases !
Test Compilation Failed !
Test Compilation Failed !
Test Compilation Error :