From 2af3b0b2e8d427f0a98be64271b036644a2f2d5e Mon Sep 17 00:00:00 2001 From: Ostrzyciel Date: Fri, 25 Apr 2025 16:41:17 +0200 Subject: [PATCH] rdf validate: add checks for version <= 0 Resolves: #89 --- .../jelly/cli/command/rdf/RdfValidate.scala | 4 ++++ .../jelly/cli/command/rdf/RdfValidateSpec.scala | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) 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 e3dd6f3..7358f70 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 1c74b75..518f8da 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(