Skip to content

Commit 4212b6f

Browse files
authored
rdf validate: add checks for version <= 0 (#96)
Resolves: #89
1 parent dd64e6a commit 4212b6f

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

src/main/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidate.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ object RdfValidate extends JellyCommand[RdfValidateOptions]:
129129
)
130130
o
131131
}
132+
if streamOptions.version <= 0 then
133+
throw CriticalException(
134+
"The version field in RdfStreamOptions is <= 0. This field MUST be set to a positive value.",
135+
)
132136
JellyOptions.checkCompatibility(
133137
streamOptions,
134138
expectedOptions.getOrElse(JellyOptions.defaultSupportedOptions),

src/test/scala/eu/neverblink/jelly/cli/command/rdf/RdfValidateSpec.scala

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ class RdfValidateSpec extends AnyWordSpec, Matchers, TestFixtureHelper:
337337
val f = RdfStreamFrame(
338338
Seq(
339339
RdfStreamRow(
340-
JellyOptions.smallStrict,
340+
JellyOptions.smallStrict.withVersion(2),
341341
),
342342
),
343343
)
@@ -349,6 +349,18 @@ class RdfValidateSpec extends AnyWordSpec, Matchers, TestFixtureHelper:
349349
e.cause.get.getMessage should include("Incoming physical stream type is not set")
350350
}
351351

352+
"version in options is set to 0" in {
353+
val f = RdfStreamFrame(
354+
Seq(RdfStreamRow(JellyOptions.smallStrict)),
355+
)
356+
RdfValidate.setStdIn(ByteArrayInputStream(f.toByteArray))
357+
val e = intercept[ExitException] {
358+
RdfValidate.runTestCommand(List("rdf", "validate"))
359+
}
360+
e.cause.get shouldBe a[CriticalException]
361+
e.cause.get.getMessage should include("The version field in RdfStreamOptions is <= 0")
362+
}
363+
352364
"same input options supplied as in the validation source" in withFullJellyFile { j =>
353365
val f = RdfStreamFrame(
354366
Seq(

0 commit comments

Comments
 (0)