@rdf-esm/data-model
Version:
A basic implementation of the RDFJS Data Model
107 lines (88 loc) • 5.38 kB
JavaScript
const assert = require('assert')
const { describe, it } = require('mocha')
function runTests (DataFactory) {
describe('.quad', function () {
it('should be a static method', function () {
assert.strictEqual(typeof DataFactory.quad, 'function')
})
it('should create an object with .subject, .predicate, .object and .graph with the given values', function () {
var subject = DataFactory.namedNode('http://example.org/subject')
var predicate = DataFactory.namedNode('http://example.org/predicate')
var object = DataFactory.namedNode('http://example.org/object')
var graph = DataFactory.namedNode('http://example.org/graph')
var quad = DataFactory.quad(subject, predicate, object, graph)
assert.strictEqual(subject.equals(quad.subject), true)
assert.strictEqual(predicate.equals(quad.predicate), true)
assert.strictEqual(object.equals(quad.object), true)
assert.strictEqual(graph.equals(quad.graph), true)
})
it('should create an object .graph set to DefaultGraph if the argument isn\'t given', function () {
var subject = DataFactory.namedNode('http://example.org/subject')
var predicate = DataFactory.namedNode('http://example.org/predicate')
var object = DataFactory.namedNode('http://example.org/object')
var graph = DataFactory.defaultGraph()
var quad = DataFactory.quad(subject, predicate, object)
assert.strictEqual(quad.graph.equals(graph), true)
})
describe('.equals', function () {
it('should return true if the other quad contains the same subject, predicate, object and graph', function () {
var subject = DataFactory.namedNode('http://example.org/subject')
var predicate = DataFactory.namedNode('http://example.org/predicate')
var object = DataFactory.namedNode('http://example.org/object')
var graph = DataFactory.namedNode('http://example.org/graph')
var quad1 = DataFactory.quad(subject, predicate, object, graph)
var quad2 = DataFactory.quad(subject, predicate, object, graph)
assert.strictEqual(quad1.equals(quad2), true)
})
it('should return false if the subject of the other quad is not the same', function () {
var subject1 = DataFactory.namedNode('http://example.org/subject')
var subject2 = DataFactory.namedNode('http://example.com/subject')
var predicate = DataFactory.namedNode('http://example.org/predicate')
var object = DataFactory.namedNode('http://example.org/object')
var graph = DataFactory.namedNode('http://example.org/graph')
var quad1 = DataFactory.quad(subject1, predicate, object, graph)
var quad2 = DataFactory.quad(subject2, predicate, object, graph)
assert.strictEqual(quad1.equals(quad2), false)
})
it('should return false if the predicate of the other quad is not the same', function () {
var subject = DataFactory.namedNode('http://example.org/subject')
var predicate1 = DataFactory.namedNode('http://example.org/predicate')
var predicate2 = DataFactory.namedNode('http://example.com/predicate')
var object = DataFactory.namedNode('http://example.org/object')
var graph = DataFactory.namedNode('http://example.org/graph')
var quad1 = DataFactory.quad(subject, predicate1, object, graph)
var quad2 = DataFactory.quad(subject, predicate2, object, graph)
assert.strictEqual(quad1.equals(quad2), false)
})
it('should return false if the object of the other quad is not the same', function () {
var subject = DataFactory.namedNode('http://example.org/subject')
var predicate = DataFactory.namedNode('http://example.org/predicate')
var object1 = DataFactory.namedNode('http://example.org/object')
var object2 = DataFactory.namedNode('http://example.com/object')
var graph = DataFactory.namedNode('http://example.org/graph')
var quad1 = DataFactory.quad(subject, predicate, object1, graph)
var quad2 = DataFactory.quad(subject, predicate, object2, graph)
assert.strictEqual(quad1.equals(quad2), false)
})
it('should return false if the graph of the other quad is not the same', function () {
var subject = DataFactory.namedNode('http://example.org/subject')
var predicate = DataFactory.namedNode('http://example.org/predicate')
var object = DataFactory.namedNode('http://example.org/object')
var graph1 = DataFactory.namedNode('http://example.org/graph')
var graph2 = DataFactory.namedNode('http://example.com/graph')
var quad1 = DataFactory.quad(subject, predicate, object, graph1)
var quad2 = DataFactory.quad(subject, predicate, object, graph2)
assert.strictEqual(quad1.equals(quad2), false)
})
it('should return false if value is falsy', function () {
var subject = DataFactory.namedNode('http://example.org/subject')
var predicate = DataFactory.namedNode('http://example.org/predicate')
var object = DataFactory.namedNode('http://example.org/object')
var graph = DataFactory.namedNode('http://example.org/graph')
var quad = DataFactory.quad(subject, predicate, object, graph)
assert.strictEqual(quad.equals(null), false)
})
})
})
}
module.exports = runTests