/** * Convert quads from an external form to a skolemized form. * * @param svc the resource service * @param baseUrl the base URL * @return a mapping function */ public static Function<Quad, Quad> skolemizeQuads(final ResourceService svc, final String baseUrl) { return quad -> rdf.createQuad(quad.getGraphName().orElse(PreferUserManaged), (BlankNodeOrIRI) svc.toInternal(svc.skolemize(quad.getSubject()), baseUrl), quad.getPredicate(), svc.toInternal(svc.skolemize(quad.getObject()), baseUrl)); }
/** * Convert triples from an external form to a skolemized form. * * @param svc the resourceService * @param baseUrl the base URL * @return a mapping function */ public static Function<Triple, Triple> skolemizeTriples(final ResourceService svc, final String baseUrl) { return triple -> rdf.createTriple((BlankNodeOrIRI) svc.toInternal(svc.skolemize(triple.getSubject()), baseUrl), triple.getPredicate(), svc.toInternal(svc.skolemize(triple.getObject()), baseUrl)); }
private void setUpResourceService() { when(mockResourceService.supportedInteractionModels()).thenReturn(allInteractionModels); when(mockResourceService.get(any(IRI.class))).thenAnswer(inv -> completedFuture(mockResource)); when(mockResourceService.create(any(Metadata.class), any(Dataset.class))).thenReturn(completedFuture(null)); when(mockResourceService.replace(any(Metadata.class), any(Dataset.class))).thenReturn(completedFuture(null)); when(mockResourceService.delete(any(Metadata.class))).thenReturn(completedFuture(null)); when(mockResourceService.add(any(IRI.class), any(Dataset.class))).thenReturn(completedFuture(null)); when(mockResourceService.skolemize(any(Literal.class))).then(returnsFirstArg()); when(mockResourceService.skolemize(any(IRI.class))).then(returnsFirstArg()); when(mockResourceService.skolemize(any(BlankNode.class))).thenAnswer(inv -> rdf.createIRI(TRELLIS_BNODE_PREFIX + ((BlankNode) inv.getArgument(0)).uniqueReference())); when(mockResourceService.toInternal(any(RDFTerm.class), any())).thenCallRealMethod(); when(mockResourceService.toExternal(any(RDFTerm.class), any())).thenCallRealMethod(); when(mockResourceService.touch(any(IRI.class))).thenReturn(completedFuture(null)); }
@BeforeEach public void setUp() { initMocks(this); doCallRealMethod().when(mockResourceService).skolemize(any()); doCallRealMethod().when(mockResourceService).unskolemize(any()); doCallRealMethod().when(mockResourceService).toInternal(any(), any()); doCallRealMethod().when(mockResourceService).toExternal(any(), any()); doCallRealMethod().when(mockResourceService).create(any(), any()); when(mockRetrievalService.get(eq(existing))).thenAnswer(inv -> completedFuture(mockResource)); }
when(mockResourceService.generateIdentifier()).thenReturn(RANDOM_VALUE); when(mockResourceService.unskolemize(any(IRI.class))).thenCallRealMethod(); when(mockResourceService.toInternal(any(RDFTerm.class), any())).thenCallRealMethod(); when(mockResourceService.toExternal(any(RDFTerm.class), any())).thenCallRealMethod(); when(mockResourceService.add(any(IRI.class), any(Dataset.class))).thenReturn(completedFuture(null));
when(mockResourceService.toInternal(any(RDFTerm.class), eq(baseUrl))).thenAnswer(inv -> { final RDFTerm term = (RDFTerm) inv.getArgument(0); if (term instanceof IRI) {
@Test public void testInternalExternal() { final String baseUrl = "http://example.com/"; final IRI external = rdf.createIRI(baseUrl + "resource"); final IRI internal = rdf.createIRI("trellis:data/resource"); final IRI other = rdf.createIRI("http://example.org/resource"); assertEquals(internal, mockResourceService.toInternal(external, baseUrl), "Bad external->internal conversion!"); assertEquals(external, mockResourceService.toExternal(internal, baseUrl), "Bad internal->external conversion!"); assertEquals(other, mockResourceService.toInternal(other, baseUrl), "Bad conversion of out-of-domain resource"); assertEquals(other, mockResourceService.toExternal(other, baseUrl), "Bad conversion of out-of-domain resource"); final BlankNode bnode = rdf.createBlankNode(); assertEquals(bnode, mockResourceService.toInternal(bnode, baseUrl), "Bad conversion of blank node!"); assertEquals(bnode, mockResourceService.toExternal(bnode, baseUrl), "Bad conversion of blank node!"); final Literal literal = rdf.createLiteral("A literal"); assertEquals(literal, mockResourceService.toInternal(literal, baseUrl), "Bad conversion of literal!"); assertEquals(literal, mockResourceService.toExternal(literal, baseUrl), "Bad conversion of literal!"); } }