From b6f616ed0b0f5dcd7fa76e024f9350d8d4cadae4 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Sat, 11 May 2024 20:31:52 -0400 Subject: [PATCH] Add more coverage tests --- .../language/parsing/CommonParserTest.scala | 12 ++++++------ .../language/parsing/StatementsTest.scala | 19 +++++++++++++++---- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/language/src/test/scala/com/ossuminc/riddl/language/parsing/CommonParserTest.scala b/language/src/test/scala/com/ossuminc/riddl/language/parsing/CommonParserTest.scala index 8397db463..8a1256f44 100644 --- a/language/src/test/scala/com/ossuminc/riddl/language/parsing/CommonParserTest.scala +++ b/language/src/test/scala/com/ossuminc/riddl/language/parsing/CommonParserTest.scala @@ -8,23 +8,23 @@ package com.ossuminc.riddl.language.parsing import com.ossuminc.riddl.language.AST.* import com.ossuminc.riddl.language.At -import scala.concurrent.ExecutionContext.Implicits.global +import scala.concurrent.ExecutionContext.Implicits.global /** Unit Tests For CommonParser */ class CommonParserTest extends ParsingTest { "NonWhiteSpaceParsers" should { "handle a literalString" in { - val text = """"This is a literal string with" """ - + val content = "This is a literal string with" + val text = s""""$content"""" val input = RiddlParserInput(text, "test") val testParser = TestParser(input) testParser.expect[LiteralString](testParser.literalString(_)) match case Left(messages) => fail(messages.justErrors.format) - case Right(ls) => ls.s must be(s""""$text"""") + case Right(ls) => ls.s must be(content) } } - + "CommonParser" should { "location should construct from pair" in { val loc = At((1, 1)) @@ -32,7 +32,7 @@ class CommonParserTest extends ParsingTest { val column = loc.col column mustBe 1 } - + "descriptions can be URLs" in { val input = """domain foo is { ??? } described at |https://www.wordnik.com/words/phi""".stripMargin diff --git a/language/src/test/scala/com/ossuminc/riddl/language/parsing/StatementsTest.scala b/language/src/test/scala/com/ossuminc/riddl/language/parsing/StatementsTest.scala index f38063c41..9c3e8f84a 100644 --- a/language/src/test/scala/com/ossuminc/riddl/language/parsing/StatementsTest.scala +++ b/language/src/test/scala/com/ossuminc/riddl/language/parsing/StatementsTest.scala @@ -1,6 +1,8 @@ package com.ossuminc.riddl.language.parsing import org.scalatest.matchers.must.Matchers +import com.ossuminc.riddl.language.AST +import com.ossuminc.riddl.language.AST.{CodeStatement, Statement} class StatementsTest extends ParsingTest with Matchers{ @@ -10,7 +12,7 @@ class StatementsTest extends ParsingTest with Matchers{ """domain CodeStatements is { | context CodeStatements is { | handler h is { - | on initialization { + | on init { | ```scala | val foo: Int = 1 | ``` @@ -19,9 +21,18 @@ class StatementsTest extends ParsingTest with Matchers{ | } |}""".stripMargin TopLevelParser.parseString(input, origin = Some("Code Statement Test")) match - case Left(value) => ??? - case Right(root) => ??? + case Left(messages) => fail(messages.justErrors.format) + case Right(root) => + val clause = + AST.getContexts(AST.getTopLevelDomains(root).head).head.handlers.head.clauses.head + val s: Statement = clause.statements.head + s.isInstanceOf[CodeStatement] must be(true) + val codeStatement = s.asInstanceOf[CodeStatement] + codeStatement.language.s must be("scala") + codeStatement.body must be( + """val foo: Int = 1 + | """.stripMargin) } - } + } }