@rdf-esm/data-model
Version:
A basic implementation of the RDFJS Data Model
163 lines (130 loc) • 5.71 kB
JavaScript
const assert = require('assert')
const { describe, it } = require('mocha')
function runTests (DataFactory) {
describe('.literal', function () {
it('should be a static method', function () {
assert.strictEqual(typeof DataFactory.literal, 'function')
})
it('should create an object with a termType property that contains the value "Literal"', function () {
var term = DataFactory.literal()
assert.strictEqual(term.termType, 'Literal')
})
it('should create an object with a value property that contains the given string', function () {
var string = 'example'
var term = DataFactory.literal(string)
assert.strictEqual(term.value, string)
})
it('should create an object with a language property that contains an empty string', function () {
var string = 'example'
var term = DataFactory.literal(string)
assert.strictEqual(term.language, '')
})
it('should create an object with a language property that contains the given language string', function () {
var string = 'example'
var language = 'en'
var term = DataFactory.literal(string, language)
assert.strictEqual(term.language, language)
})
it('should create an object with a datatype property that contains a NamedNode with the value "http://www.w3.org/2001/XMLSchema#string"', function () {
var string = 'example'
var term = DataFactory.literal(string)
assert.strictEqual(term.datatype.termType, 'NamedNode')
assert.strictEqual(term.datatype.value, 'http://www.w3.org/2001/XMLSchema#string')
})
it('should create an object with a datatype property that contains a NamedNode with the value "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"', function () {
var string = 'example'
var language = 'en'
var term = DataFactory.literal(string, language)
assert.strictEqual(term.datatype.termType, 'NamedNode')
assert.strictEqual(term.datatype.value, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')
})
it('should create an object with a datatype property that contains a NamedNode with the given IRI', function () {
var string = 'example'
var datatypeIRI = 'http://example.org'
var datatypeNode = DataFactory.namedNode(datatypeIRI)
var term = DataFactory.literal(string, datatypeNode)
assert.strictEqual(term.datatype.termType, 'NamedNode')
assert.strictEqual(term.datatype.value, datatypeIRI)
})
it('should create an object with a datatype property that contains the given NamedNode', function () {
var string = 'example'
var datatype = { termType: 'NamedNode', value: 'http://example.org' }
var term = DataFactory.literal(string, datatype)
assert.strictEqual(term.datatype.termType, 'NamedNode')
assert.strictEqual(term.datatype.value, datatype.value)
})
describe('.equals', function () {
it('should be a method', function () {
var term = DataFactory.literal('')
assert.strictEqual(typeof term.equals, 'function')
})
it('should return true if termType, value, language and datatype are equal', function () {
var string = 'example'
var language = 'en'
var term = DataFactory.literal(string, language)
var mock = {
termType: 'Literal',
value: string,
language: language,
datatype: DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')
}
assert.strictEqual(term.equals(mock), true)
})
it('should return false if termType is not equal', function () {
var string = 'example'
var language = 'en'
var term = DataFactory.literal(string, language)
var mock = {
termType: 'NamedNode',
value: string,
language: language,
datatype: DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')
}
assert.strictEqual(term.equals(mock), false)
})
it('should return false if value is not equal', function () {
var string = 'example'
var language = 'en'
var term = DataFactory.literal(string, language)
var mock = {
termType: 'Literal',
value: string + '1',
language: language,
datatype: DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')
}
assert.strictEqual(term.equals(mock), false)
})
it('should return false if language is not equal', function () {
var string = 'example'
var language = 'en'
var term = DataFactory.literal(string, language)
var mock = {
termType: 'Literal',
value: string,
language: 'de',
datatype: DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')
}
assert.strictEqual(term.equals(mock), false)
})
it('should return false if datatype is not equal', function () {
var string = 'example'
var language = 'en'
var term = DataFactory.literal(string, language)
var mock = {
termType: 'Literal',
value: string,
language: language,
datatype: DataFactory.namedNode('http://example.org')
}
assert.strictEqual(term.equals(mock), false)
})
it('should return false if value is falsy', function () {
var string = 'example'
var language = 'en'
var term = DataFactory.literal(string, language)
assert.strictEqual(term.equals(null), false)
})
})
})
}
module.exports = runTests