001/*
002 * The contents of this file are subject to the license and copyright
003 * detailed in the LICENSE and NOTICE files at the root of the source
004 * tree.
005 */
006package org.fcrepo.kernel.api;
007
008import static java.util.Arrays.asList;
009import static org.apache.jena.graph.NodeFactory.createURI;
010import static org.junit.Assert.assertEquals;
011
012import java.util.List;
013
014import org.apache.jena.graph.Node;
015import org.apache.jena.graph.Triple;
016import org.apache.jena.rdf.model.Model;
017
018import org.junit.Test;
019
020/**
021 * @author acoburn
022 */
023public class RdfCollectorsTest {
024
025    @Test
026    public void streamToModel() {
027        final Node subject = createURI("subject");
028        final Node prop1 = createURI("prop1");
029        final Node prop2 = createURI("prop2");
030        final List<Triple> triples = asList(
031                new Triple(subject, prop1, createURI("obj1")),
032                new Triple(subject, prop1, createURI("obj2")),
033                new Triple(subject, prop1, createURI("obj3")),
034                new Triple(subject, prop2, createURI("obj1")),
035                new Triple(subject, prop2, createURI("obj2")),
036                new Triple(subject, prop2, createURI("obj3")));
037
038        final Model filtered = triples.stream().filter(x -> x.getPredicate().equals(prop1))
039                .collect(RdfCollectors.toModel());
040
041        assertEquals(3, filtered.size());
042    }
043}
044