Skip to content

Commit c57c12d

Browse files
Restore tests for refactored model context functionality
1 parent 84d8be2 commit c57c12d

File tree

1 file changed

+63
-1
lines changed

1 file changed

+63
-1
lines changed

binary-array-ld-netcdf/src/test/kotlin/net/bald/netcdf/NetCdfBinaryArrayTest.kt

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,17 @@ import bald.netcdf.CdlConverter.writeToNetCdf
44
import net.bald.BinaryArray
55
import net.bald.Var
66
import net.bald.Container
7+
import net.bald.context.AliasDefinition
78
import net.bald.context.ModelContext
9+
import net.bald.model.ModelAliasDefinition
810
import net.bald.vocab.BALD
11+
import org.apache.jena.rdf.model.ModelFactory
912
import org.apache.jena.rdf.model.ResourceFactory.createPlainLiteral
1013
import org.apache.jena.rdf.model.ResourceFactory.createResource
1114
import org.apache.jena.shared.PrefixMapping
1215
import org.apache.jena.vocabulary.DCTerms
1316
import org.apache.jena.vocabulary.RDF
17+
import org.apache.jena.vocabulary.RDFS
1418
import org.apache.jena.vocabulary.SKOS
1519
import org.junit.jupiter.api.Test
1620
import org.junit.jupiter.api.assertThrows
@@ -164,6 +168,21 @@ class NetCdfBinaryArrayTest {
164168
assertEquals("Prefix attribute skos__ must have a string value.", ise.message)
165169
}
166170

171+
@Test
172+
fun prefixMapping_withExternalPrefixMapping_returnsCombinedPrefixMapping() {
173+
val prefix = PrefixMapping.Factory.create()
174+
.setNsPrefix("skos", "http://example.org/skos/")
175+
.setNsPrefix("dct", DCTerms.NS)
176+
val ctx = ModelContext.create(prefix)
177+
val ba = fromCdl("/netcdf/prefix.cdl", "http://test.binary-array-ld.net/prefix.nc", ctx)
178+
val expected = mapOf(
179+
"bald" to BALD.prefix,
180+
"skos" to SKOS.uri,
181+
"dct" to DCTerms.NS
182+
)
183+
assertEquals(expected, ba.prefixMapping.nsPrefixMap)
184+
}
185+
167186
/**
168187
* Requirements class D
169188
*/
@@ -208,7 +227,7 @@ class NetCdfBinaryArrayTest {
208227
val vars = ba.root.vars().sortedBy(Var::toString).toList()
209228

210229
assertEquals(2, vars.size)
211-
AttributeSourceVerifier(vars[0]).attributes() {
230+
AttributeSourceVerifier(vars[0]).attributes {
212231
attribute(RDF.type.uri) {
213232
value(BALD.Array)
214233
}
@@ -220,4 +239,47 @@ class NetCdfBinaryArrayTest {
220239
// none
221240
}
222241
}
242+
243+
@Test
244+
fun attributes_withAliases_returnsAliasedValues() {
245+
val prefix = PrefixMapping.Factory.create()
246+
.setNsPrefix("bald", BALD.prefix)
247+
.setNsPrefix("skos", SKOS.uri)
248+
.setNsPrefix("dct", DCTerms.NS)
249+
.setNsPrefix("rdf", RDF.uri)
250+
val alias = javaClass.getResourceAsStream("/turtle/alias.ttl").use { input ->
251+
ModelFactory.createDefaultModel().read(input, null, "ttl")
252+
}.let(ModelAliasDefinition::create)
253+
val ctx = ModelContext.create(prefix, alias)
254+
val ba = fromCdl("/netcdf/alias.cdl", "http://test.binary-array-ld.net/alias.nc", ctx)
255+
val root = ba.root
256+
AttributeSourceVerifier(root).attributes {
257+
attribute(BALD.isPrefixedBy.uri) {
258+
value(createPlainLiteral("prefix_list"))
259+
}
260+
attribute(SKOS.prefLabel.uri) {
261+
value(createPlainLiteral("Alias metadata example"))
262+
}
263+
attribute(DCTerms.publisher.uri) {
264+
value(createResource("${BALD.prefix}Organisation"))
265+
}
266+
attribute("http://test.binary-array-ld.net/alias.nc/date") {
267+
value(createPlainLiteral("2020-10-29"))
268+
}
269+
}
270+
271+
val vars = root.vars().sortedBy(Var::toString).toList()
272+
assertEquals(2, vars.size)
273+
AttributeSourceVerifier(vars[0]).attributes {
274+
attribute(RDFS.label.uri) {
275+
value(createPlainLiteral("var-0"))
276+
}
277+
attribute(RDF.type.uri) {
278+
value(BALD.Array)
279+
}
280+
attribute(SKOS.prefLabel.uri) {
281+
value(createPlainLiteral("Variable 0"))
282+
}
283+
}
284+
}
223285
}

0 commit comments

Comments
 (0)