Skip to content

Commit 15f72a0

Browse files
author
mielvds
authored
Merge pull request #48 from larsgsvensson/master
Change to IndexRequestProcessorForTPFs
2 parents f8ed422 + 9f72836 commit 15f72a0

File tree

3 files changed

+121
-1
lines changed

3 files changed

+121
-1
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,12 @@
135135
<artifactId>slf4j-simple</artifactId>
136136
<version>1.7.10</version>
137137
</dependency>
138+
<dependency>
139+
<groupId>junit</groupId>
140+
<artifactId>junit</artifactId>
141+
<version>4.11</version>
142+
<scope>test</scope>
143+
</dependency>
138144
</dependencies>
139145
<build>
140146
<plugins>

src/main/java/org/linkeddatafragments/datasource/index/IndexRequestProcessorForTPFs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public IndexRequestProcessorForTPFs(
5555

5656
Resource datasourceUrl = new ResourceImpl(baseUrl + "/" + datasourceName);
5757

58-
model.add(datasourceUrl, new PropertyImpl(RDF + "type"), VOID + "Dataset");
58+
model.add(datasourceUrl, new PropertyImpl(RDF + "type"), new ResourceImpl(VOID + "Dataset"));
5959
model.add(datasourceUrl, new PropertyImpl(RDFS + "label"), datasource.getTitle());
6060
model.add(datasourceUrl, new PropertyImpl(DC + "title"), datasource.getTitle());
6161
model.add(datasourceUrl, new PropertyImpl(DC + "description"), datasource.getDescription());
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
package org.linkeddatafragments.datasource;
2+
3+
import java.util.ArrayList;
4+
import java.util.Collection;
5+
import java.util.HashMap;
6+
7+
import org.apache.jena.rdf.model.Property;
8+
import org.apache.jena.rdf.model.RDFNode;
9+
import org.apache.jena.rdf.model.Resource;
10+
import org.apache.jena.rdf.model.ResourceFactory;
11+
import org.apache.jena.rdf.model.Statement;
12+
import org.apache.jena.rdf.model.StmtIterator;
13+
import org.junit.Assert;
14+
import org.junit.Test;
15+
import org.linkeddatafragments.datasource.IDataSource;
16+
import org.linkeddatafragments.datasource.IFragmentRequestProcessor;
17+
import org.linkeddatafragments.datasource.index.IndexRequestProcessorForTPFs;
18+
import org.linkeddatafragments.fragments.IFragmentRequestParser;
19+
import org.linkeddatafragments.fragments.ILinkedDataFragment;
20+
import org.linkeddatafragments.fragments.tpf.ITriplePatternFragmentRequest;
21+
import org.linkeddatafragments.fragments.tpf.TriplePatternElementFactory;
22+
import org.linkeddatafragments.fragments.tpf.TriplePatternFragmentRequestImpl;
23+
24+
/**
25+
* Test cases for the IndexRequestProcessorForTPFs
26+
*
27+
* @author Lars G. Svensson
28+
*/
29+
public class IndexRequestProcessorForTPFsTest {
30+
31+
static class TestIndexRequestProcessor extends IndexRequestProcessorForTPFs {
32+
TestIndexRequestProcessor(final String baseUrl,
33+
final HashMap<String, IDataSource> datasources) {
34+
super(baseUrl, datasources);
35+
}
36+
37+
@Override
38+
protected TestWorker getTPFSpecificWorker(
39+
final ITriplePatternFragmentRequest<RDFNode, String, String> request)
40+
throws IllegalArgumentException {
41+
return new TestWorker(request);
42+
}
43+
44+
class TestWorker extends IndexRequestProcessorForTPFs.Worker {
45+
public TestWorker(
46+
final ITriplePatternFragmentRequest<RDFNode, String, String> req) {
47+
super(req);
48+
}
49+
}
50+
}
51+
52+
/**
53+
* Check that the type void:Dataset is returned as a URI and not as a
54+
* literal
55+
*/
56+
@Test
57+
public void shouldGiveVoidDatasetAsAURI() {
58+
final IDataSource datasource = new IDataSource() {
59+
@Override
60+
public String getDescription() {
61+
return "This is a dummy datasource";
62+
};
63+
64+
@Override
65+
public IFragmentRequestParser getRequestParser() {
66+
return null;
67+
}
68+
69+
@Override
70+
public IFragmentRequestProcessor getRequestProcessor() {
71+
return null;
72+
}
73+
74+
@Override
75+
public String getTitle() {
76+
return "Dummy Dataource";
77+
}
78+
79+
@Override
80+
public void close() {
81+
// does nothing
82+
}
83+
};
84+
final HashMap<String, IDataSource> datasources = new HashMap<String, IDataSource>();
85+
datasources.put("dummy", datasource);
86+
final String baseUrl = "dummy";
87+
final TestIndexRequestProcessor processor = new TestIndexRequestProcessor(
88+
baseUrl, datasources);
89+
final TriplePatternElementFactory<RDFNode, String, String> factory = new TriplePatternElementFactory<RDFNode, String, String>();
90+
final ITriplePatternFragmentRequest<RDFNode, String, String> request = new TriplePatternFragmentRequestImpl<RDFNode, String, String>(
91+
null, "dummy", false, 1, factory.createUnspecifiedVariable(),
92+
factory.createUnspecifiedVariable(),
93+
factory.createUnspecifiedVariable());
94+
final TestIndexRequestProcessor.TestWorker worker = processor
95+
.getTPFSpecificWorker(request);
96+
final ILinkedDataFragment fragment = worker.createRequestedFragment();
97+
final StmtIterator iterator = fragment.getTriples();
98+
final Collection<Statement> statements = new ArrayList<Statement>();
99+
while (iterator.hasNext()) {
100+
statements.add(iterator.next());
101+
}
102+
103+
final Resource subject = ResourceFactory.createResource("dummy/dummy");
104+
final Property predicate = ResourceFactory
105+
.createProperty("http://www.w3.org/1999/02/22-rdf-syntax-ns#type");
106+
final Resource object = ResourceFactory
107+
.createResource("http://rdfs.org/ns/void#Dataset");
108+
final Statement expected = ResourceFactory.createStatement(subject,
109+
predicate, object);
110+
Assert.assertTrue("triple not contained in model",
111+
statements.contains(expected));
112+
processor.close();
113+
}
114+
}

0 commit comments

Comments
 (0)