vital-software/scala-redox

View on GitHub
src/test/scala/com/github/vitalsoftware/scalaredox/models/CommonTest.scala

Summary

Maintainability
A
0 mins
Test Coverage
package com.github.vitalsoftware.scalaredox.models

import org.specs2.matcher.Matcher
import org.specs2.mutable.Specification
import play.api.libs.json.{ JsError, JsResult, JsString, JsSuccess }

class CommonTest extends Specification {
  def beLanguageOf(l: String): Matcher[JsResult[Language]] = (s: JsResult[Language]) => {
    s must beAnInstanceOf[JsSuccess[Language]]
    s.get.toString mustEqual (l)
  }

  "Language" should {
    "read valid language locale" in {
      JsString("en").validate[Language] must beLanguageOf("eng")

      JsString("eng").validate[Language] must beLanguageOf("eng")

      JsString("fr").validate[Language] must beLanguageOf("fra")
    }

    "read 'Other' language locale" in {
      JsString("Other").validate[Language] must beLanguageOf("")
      JsString("Unknown").validate[Language] must beLanguageOf("")
    }

    "read invalid language locale" in {
      val unknown = JsString("invalid").validate[Language]
      unknown must beAnInstanceOf[JsError]
    }
  }
}