Skip to content

Commit

Permalink
Changes from usage:
Browse files Browse the repository at this point in the history
* Remove println statements from debugging
* Reorganization testing for platform coverage
* Add a MetaDataTest suite
  • Loading branch information
reidspencer committed Feb 22, 2025
1 parent 597f1e8 commit ad91035
Show file tree
Hide file tree
Showing 16 changed files with 100 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.ossuminc.riddl.utils.{pc, ec}
class JSApplicationParsingTest extends ApplicationParsingTest
class JSCommonParserTest extends CommonParserTest
class JSHandlerTest extends HandlerTest
class JSMetaDataTest extends MetaDataTest
class JSModuleTest extends ModuleTest
class JSNebulaTest extends NebulaTest
class JSParsingTestTest extends ParsingTestTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.ossuminc.riddl.utils.{ec, pc}
class JVMApplicationParsingTest extends ApplicationParsingTest
class JVMCommonParserTest extends CommonParserTest
class JVMHandlerTest extends HandlerTest
class JVMMetaDataTest extends MetaDataTest
class JVMModuleTest extends ModuleTest
class JVMNebulaTest extends NebulaTest
class JVMParsingTestTest extends ParsingTestTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,27 +131,6 @@ abstract class CommonParserTest(using PlatformContext) extends AbstractParsingTe
actual mustBe LiteralString((1, 1, rpi), input.data.drop(1).dropRight(1))
}
}
"attachments parse correctly" in { (td: TestData) =>
val input = RiddlParserInput(
"""context foo {
| ???
|} with {
| attachment infile is text/plain in file "nada.txt"
| attachment inline is text/plain as "nada"
|}""".stripMargin,
td
)
parseDefinition[Context](input) match {
case Left(errors) =>
val msg = errors.map(_.format).mkString
fail(msg)
case Right((context: Context, _)) =>
context.stringAttachments.size must be(1)
context.stringAttachments.head.value.s must be("nada")
context.fileAttachments.size must be(1)
context.fileAttachments.head.inFile.s must be("nada.txt")
}
}
}
"NoWhiteSpaceParsers" should {
"handle a URL" in { (td: TestData) =>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* Copyright 2019-2025 Ossum, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/

package com.ossuminc.riddl.language.parsing
import com.ossuminc.riddl.language.AST.Context
import com.ossuminc.riddl.utils.PlatformContext
import org.scalatest.TestData

abstract class MetaDataTest(using PlatformContext) extends AbstractParsingTest {

"MetaDataParser" should {
"parse attachments correctly" in { (td: TestData) =>
val input = RiddlParserInput(
"""context foo {
| ???
|} with {
| attachment infile is text/plain in file "nada.txt"
| attachment inline is text/plain as "nada"
|}""".stripMargin,
td
)
parseDefinition[Context](input) match {
case Left(errors) =>
val msg = errors.map(_.format).mkString
fail(msg)
case Right((context: Context, _)) =>
context.stringAttachments.size must be(1)
context.stringAttachments.head.value.s must be("nada")
context.fileAttachments.size must be(1)
context.fileAttachments.head.inFile.s must be("nada.txt")
}
}
}
}
12 changes: 0 additions & 12 deletions passes/js/src/test/scala/com/ossuminc/riddl/passes/JSTests.scala

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/*
* Copyright 2019-2025 Ossum, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/

package com.ossuminc.riddl.passes.diagrams

import com.ossuminc.riddl.utils.pc

class JSDiagramsPassTest extends SharedDiagramsPassTest

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@
* SPDX-License-Identifier: Apache-2.0
*/

package com.ossuminc.riddl.passes
package com.ossuminc.riddl.passes.diagrams

import com.ossuminc.riddl.language.AST.*
import com.ossuminc.riddl.language.Messages
import com.ossuminc.riddl.language.parsing.RiddlParserInput
import com.ossuminc.riddl.passes.diagrams.*
import com.ossuminc.riddl.utils.{PlatformContext, URL}
import com.ossuminc.riddl.utils.{ec, pc, Await}
import com.ossuminc.riddl.passes.{Pass, PassesResult}
import com.ossuminc.riddl.utils.{Await, PlatformContext, URL, ec, pc}
import org.scalatest.TestData

import scala.concurrent.duration.DurationInt
import org.scalatest.TestData

class DiagramsPassTest extends SharedDiagramsPassTest {
"generate diagrams output" in { (td: TestData) =>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/*
* Copyright 2019-2025 Ossum, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/

package com.ossuminc.riddl.passes.diagrams
import com.ossuminc.riddl.utils.{ec, pc}

class JVMDiagramsPassTest extends SharedDiagramsPassTest

Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@
* SPDX-License-Identifier: Apache-2.0
*/

package com.ossuminc.riddl.testkit
package com.ossuminc.riddl.passes.resolve

import com.ossuminc.riddl.utils.{pc, ec}
import com.ossuminc.riddl.passes.resolve.ResolvingTest
import com.ossuminc.riddl.passes.resolve.SharedPathResolutionPassTest
import com.ossuminc.riddl.utils.pc

class JVMPathResolutionPassTest extends SharedPathResolutionPassTest
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
* SPDX-License-Identifier: Apache-2.0
*/

package com.ossuminc.riddl.testkit
package com.ossuminc.riddl.passes.validate

import com.ossuminc.riddl.passes.validate.SharedValidationTest
import com.ossuminc.riddl.utils.{pc, ec}
import com.ossuminc.riddl.utils.pc

class JVMValidationTest extends SharedValidationTest
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,6 @@ case class ReferenceMap(messages: Messages.Accumulator) {
case None => Option.empty[T]
case Some((_, definition)) =>
val klass = classTag[T].runtimeClass
println(s"klass=${klass.getSimpleName}")
println(s"definition.getClass=${definition.getClass.getSimpleName}")
if definition.getClass == klass then Some(definition.asInstanceOf[T]) else Option.empty[T]
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@
* SPDX-License-Identifier: Apache-2.0
*/

package com.ossuminc.riddl.passes
package com.ossuminc.riddl.passes.diagrams

import com.ossuminc.riddl.language.AST.{Domain, Identifier, Root}
import com.ossuminc.riddl.language.parsing.RiddlParserInput
import com.ossuminc.riddl.language.{At, Messages}
import com.ossuminc.riddl.passes.diagrams.{ContextDiagramData, DiagramsPass, DiagramsPassOutput}
import com.ossuminc.riddl.passes.validate.AbstractValidatingTest
import com.ossuminc.riddl.utils.{Await,PlatformContext, URL}
import com.ossuminc.riddl.passes.{PassInput, PassesOutput}
import com.ossuminc.riddl.utils.{Await, PlatformContext, URL}
import org.scalatest.TestData
import org.scalatest.matchers.must.Matchers
import org.scalatest.wordspec.AnyWordSpec
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ abstract class SharedPathResolutionPassTest(using pc: PlatformContext) extends S
val pid: Type = domains.head.types.head
val parent = domains.head
val resolution = outputs.outputOf[ResolutionOutput](ResolutionPass.name).get
resolution.refMap.definitionOf[Type](pid.typEx.asInstanceOf[AliasedTypeExpression].pathId, parent) match {
resolution.refMap
.definitionOf[Type](pid.typEx.asInstanceOf[AliasedTypeExpression].pathId, parent) match {
case Some(definition) =>
definition must be(target)
case None =>
Expand Down Expand Up @@ -307,7 +308,8 @@ abstract class SharedPathResolutionPassTest(using pc: PlatformContext) extends S
"resolve simple path through an include" in { _ =>
import com.ossuminc.riddl.utils.URL
val eL = At.empty
val root = Root(At(),
val root = Root(
At(),
contents = Contents(
Domain(
eL,
Expand Down Expand Up @@ -457,5 +459,29 @@ abstract class SharedPathResolutionPassTest(using pc: PlatformContext) extends S
fail("contained group not found")
}()
}
"resolve author from authorref" in { (td: TestData) =>
val rpi = RiddlParserInput(
"""domain foo {
| author Reid is { name: "Reid Spencer", email: "[email protected]" }
| context app {
| ???
| } with {
| by author foo.Reid
| }
|}
|""".stripMargin,
td
)
parseAndResolve(rpi) { (pi: PassInput, po: PassesOutput) =>
val app: Context = pi.root.contents.filter[Domain].head.contexts.head
val au: AuthorRef = app.authorRefs.head
po.refMap.definitionOf[Author](au.pathId) match
case Some(author: Author) =>
author.id.value must be("Reid")
author.name.s must be("Reid Spencer")
case _ =>
fail("authorRef not resolved")
}
}
}
}

0 comments on commit ad91035

Please sign in to comment.