diff --git a/src/main/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidate.scala b/src/main/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidate.scala index e88a7be..f46e64e 100644 --- a/src/main/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidate.scala +++ b/src/main/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidate.scala @@ -129,6 +129,10 @@ object RdfValidate extends JellyCommand[RdfValidateOptions]: ) o } + if streamOptions.version <= 0 then + throw CriticalException( + "The version field in RdfStreamOptions is <= 0. This field MUST be set to a positive value.", + ) JellyOptions.checkCompatibility( streamOptions, expectedOptions.getOrElse(JellyOptions.defaultSupportedOptions), diff --git a/src/test/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidateSpec.scala b/src/test/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidateSpec.scala index 1efd5e1..d5f7083 100644 --- a/src/test/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidateSpec.scala +++ b/src/test/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidateSpec.scala @@ -337,7 +337,7 @@ class RdfValidateSpec extends AnyWordSpec, Matchers, TestFixtureHelper: val f = RdfStreamFrame( Seq( RdfStreamRow( - JellyOptions.smallStrict, + JellyOptions.smallStrict.withVersion(2), ), ), ) @@ -349,6 +349,18 @@ class RdfValidateSpec extends AnyWordSpec, Matchers, TestFixtureHelper: e.cause.get.getMessage should include("Incoming physical stream type is not set") } + "version in options is set to 0" in { + val f = RdfStreamFrame( + Seq(RdfStreamRow(JellyOptions.smallStrict)), + ) + RdfValidate.setStdIn(ByteArrayInputStream(f.toByteArray)) + val e = intercept[ExitException] { + RdfValidate.runTestCommand(List("rdf", "validate")) + } + e.cause.get shouldBe a[CriticalException] + e.cause.get.getMessage should include("The version field in RdfStreamOptions is <= 0") + } + "same input options supplied as in the validation source" in withFullJellyFile { j => val f = RdfStreamFrame( Seq(