packages feed

zeolite-lang-0.6.0.0: example/parser/parser-test.0rt

testcase "parse data from a file" {
  success Test$execute()
}

concrete Test {
  @type execute () -> ()
}

define Test {
  execute () {
    TestData data <- TestData$parseFrom(loadTestData()).getValue()

    if (data.getName() != "example data") {
      fail(data.getName())
    }

    if (data.getDescription() != "THIS_IS_A_TOKEN") {
      fail(data.getDescription())
    }

    if (data.getBoolean() != false) {
      fail(data.getBoolean())
    }
  }

  @type loadTestData () -> (String)
  loadTestData () {
    scoped {
      RawFileReader reader <- RawFileReader$open($ExprLookup[MODULE_PATH]$ + "/test-data.txt")
    } cleanup {
      \ reader.freeResource()
    } in return TextReader$readAll(reader)
  }
}