diff --git a/lib/SparqlGenerator.js b/lib/SparqlGenerator.js index e3319593..fb8ac525 100644 --- a/lib/SparqlGenerator.js +++ b/lib/SparqlGenerator.js @@ -382,8 +382,8 @@ Generator.prototype.toUpdate = function (update) { case 'add': case 'copy': case 'move': - return update.type.toUpperCase() + (update.source.default ? ' DEFAULT ' : ' ') + - 'TO ' + this.toEntity(update.destination.name); + return update.type.toUpperCase()+ ' ' + (update.silent ? 'SILENT ' : '') + (update.source.default ? 'DEFAULT' : this.toEntity(update.source.name)) + + ' TO ' + this.toEntity(update.destination.name); case 'create': case 'clear': case 'drop': diff --git a/test/SparqlGenerator-test.js b/test/SparqlGenerator-test.js index 9d9fa1f7..fde444e5 100644 --- a/test/SparqlGenerator-test.js +++ b/test/SparqlGenerator-test.js @@ -93,6 +93,36 @@ describe('A SPARQL generator', function () { 'GROUP BY ?k'; expect(generatedQuery).toEqual(expectedQuery); }); + + it('should preserve source graph in sparql 1.1 update ADD operation', function () { + var parser = new SparqlParser(); + var parsedQuery = parser.parse('ADD TO '); + var generator = new SparqlGenerator(); + var generatedQuery = generator.stringify(parsedQuery); + var expectedQuery = + 'ADD TO '; + expect(generatedQuery).toEqual(expectedQuery); + }); + + it('should preserve source, default graph in sparql 1.1 update MOVE operation', function () { + var parser = new SparqlParser(); + var parsedQuery = parser.parse('MOVE DEFAULT TO '); + var generator = new SparqlGenerator(); + var generatedQuery = generator.stringify(parsedQuery); + var expectedQuery = + 'MOVE DEFAULT TO '; + expect(generatedQuery).toEqual(expectedQuery); + }); + + it('should preserve source, default graph in sparql 1.1 update MOVE operation', function () { + var parser = new SparqlParser(); + var parsedQuery = parser.parse('COPY SILENT DEFAULT TO '); + var generator = new SparqlGenerator(); + var generatedQuery = generator.stringify(parsedQuery); + var expectedQuery = + 'COPY SILENT DEFAULT TO '; + expect(generatedQuery).toEqual(expectedQuery); + }); }); function testQueries(directory, settings) {