Skip to content
Snippets Groups Projects
ReaderSpec.scala 996 B
Newer Older
package readerwriter

import org.scalatest._
import testutil.PendingIfUnimplemented
import java.time.LocalDate
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class ReaderSpec extends AnyFlatSpec with Matchers with AppendedClues with PendingIfUnimplemented {
  val exampleRequest = Request(
    Some("Mister X"),
    "de-DE",
    "/hello",
    Map(),
    LocalDate.of(2019,6,26)
  )

  val noUserRequest = exampleRequest.copy(user = None)

  "formatUser" should "read the username or substitute \"anonymous\"" in {
    Readers.formatUser.run(exampleRequest) shouldBe "Mister X"
    Readers.formatUser.run(noUserRequest) shouldBe "anonymous"
  }

  "formatTime" should "output the string representation of a request date" in {
    Readers.formatTime.run(exampleRequest) shouldBe "2019-06-26"
  }

  "sayBye" should "contain the correct user name and date" in {
    Readers.sayBye.run(exampleRequest) shouldBe "Goodbye Mister X, today is 2019-06-26"
  }
}