diff --git a/src/ldp/representation/RepresentationMetadata.ts b/src/ldp/representation/RepresentationMetadata.ts index 890663116..249aad9a6 100644 --- a/src/ldp/representation/RepresentationMetadata.ts +++ b/src/ldp/representation/RepresentationMetadata.ts @@ -86,10 +86,15 @@ export class RepresentationMetadata { } /** - * @returns All metadata quads. + * @returns All matching metadata quads. */ - public quads(): Quad[] { - return this.store.getQuads(null, null, null, null); + public quads( + subject: Term | null = null, + predicate: Term | null = null, + object: Term | null = null, + graph: Term | null = null, + ): Quad[] { + return this.store.getQuads(subject, predicate, object, graph); } /** diff --git a/test/unit/ldp/representation/RepresentationMetadata.test.ts b/test/unit/ldp/representation/RepresentationMetadata.test.ts index 9d87e35e8..a20d82d12 100644 --- a/test/unit/ldp/representation/RepresentationMetadata.test.ts +++ b/test/unit/ldp/representation/RepresentationMetadata.test.ts @@ -75,6 +75,11 @@ describe('A RepresentationMetadata', (): void => { expect(metadata.quads()).toBeRdfIsomorphic(inputQuads); }); + it('can query quads.', async(): Promise => { + expect(metadata.quads(null, namedNode('has'), null)).toHaveLength(3); + expect(metadata.quads(null, null, literal('otherData'))).toHaveLength(2); + }); + it('can change the stored identifier.', async(): Promise => { const newIdentifier = namedNode('newNode'); metadata.identifier = newIdentifier;