package de.unikiel.inf.comsys.neo4j;
/*
* #%L
* neo4j-sparql-extension
* %%
* Copyright (C) 2014 Niclas Hoyer
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
import com.sun.jersey.api.client.ClientResponse;
import de.unikiel.inf.comsys.neo4j.http.RDFMediaType;
import javax.ws.rs.core.MediaType;
import static org.junit.Assert.*;
import org.junit.Test;
public class SPARQLGraphTest extends RDFServerExtensionTest {
public SPARQLGraphTest() {
}
@Test
public void empty() {
ClientResponse res;
res = request("rdf/graph").post(ClientResponse.class);
assertEquals("Should return 400 response code", 400, res.getStatus());
res = request("rdf/graph?default").post(ClientResponse.class);
assertEquals("Should return 400 response code", 400, res.getStatus());
res = request("rdf/graph?default")
.type(RDFMediaType.RDF_TURTLE)
.post(ClientResponse.class);
assertEquals("Should return 200 response code", 204, res.getStatus());
}
@Test
public void malformed() {
ClientResponse res;
res = request("rdf/graph?default")
.type(RDFMediaType.RDF_TURTLE)
.entity("foobar")
.post(ClientResponse.class);
assertEquals("Should return 400 response code", 400, res.getStatus());
}
@Test
public void indirect() {
ClientResponse res;
res = request("rdf/graph")
.queryParam("graph", "http://example.com")
.type(RDFMediaType.RDF_TURTLE)
.entity(SPARQLGraphTest.class.getResourceAsStream("/ex.ttl"))
.put(ClientResponse.class);
assertEquals("Should return 204 response code", 204, res.getStatus());
res = request("rdf/graph")
.queryParam("graph", "http://example.com")
.type(RDFMediaType.RDF_TURTLE)
.entity(SPARQLGraphTest.class.getResourceAsStream("/ex.ttl"))
.post(ClientResponse.class);
assertEquals("Should return 204 response code", 204, res.getStatus());
res = request("rdf/graph")
.queryParam("graph", "http://example.com")
.accept(RDFMediaType.RDF_TURTLE)
.get(ClientResponse.class);
assertEquals("Should return 200 response code", 200, res.getStatus());
res = request("rdf/graph")
.queryParam("graph", "http://example.com")
.delete(ClientResponse.class);
assertEquals("Should return 204 response code", 204, res.getStatus());
res = request("rdf/graph")
.queryParam("graph", "http://example.com")
.accept(RDFMediaType.RDF_TURTLE)
.get(ClientResponse.class);
assertEquals("Should return 404 response code", 404, res.getStatus());
}
@Test
public void direct() {
ClientResponse res;
res = request("rdf/graph/example")
.type(RDFMediaType.RDF_TURTLE)
.entity(SPARQLGraphTest.class.getResourceAsStream("/ex.ttl"))
.put(ClientResponse.class);
assertEquals("Should return 204 response code", 204, res.getStatus());
res = request("rdf/graph/example")
.type(RDFMediaType.RDF_TURTLE)
.entity(SPARQLGraphTest.class.getResourceAsStream("/ex.ttl"))
.post(ClientResponse.class);
assertEquals("Should return 204 response code", 204, res.getStatus());
res = request("rdf/graph/example")
.accept(RDFMediaType.RDF_TURTLE)
.get(ClientResponse.class);
assertEquals("Should return 200 response code", 200, res.getStatus());
res = request("rdf/graph/example")
.delete(ClientResponse.class);
assertEquals("Should return 204 response code", 204, res.getStatus());
res = request("rdf/graph/example")
.accept(RDFMediaType.RDF_TURTLE)
.get(ClientResponse.class);
assertEquals("Should return 404 response code", 404, res.getStatus());
}
@Test
public void defaultGraph() {
ClientResponse res;
res = request("rdf/graph?default")
.type(RDFMediaType.RDF_TURTLE)
.entity(SPARQLGraphTest.class.getResourceAsStream("/ex.ttl"))
.put(ClientResponse.class);
assertEquals("Should return 204 response code", 204, res.getStatus());
res = request("rdf/graph?default")
.type(RDFMediaType.RDF_TURTLE)
.entity(SPARQLGraphTest.class.getResourceAsStream("/ex.ttl"))
.post(ClientResponse.class);
assertEquals("Should return 204 response code", 204, res.getStatus());
res = request("rdf/graph?default")
.accept(RDFMediaType.RDF_TURTLE)
.get(ClientResponse.class);
assertEquals("Should return 200 response code", 200, res.getStatus());
res = request("rdf/graph?default")
.delete(ClientResponse.class);
assertEquals("Should return 204 response code", 204, res.getStatus());
res = request("rdf/graph?default")
.accept(RDFMediaType.RDF_TURTLE)
.get(ClientResponse.class);
assertEquals("Should return 200 response code", 200, res.getStatus());
res = request("rdf/graph?default")
.accept(MediaType.APPLICATION_OCTET_STREAM)
.get(ClientResponse.class);
assertEquals("Should return 406 response code", 406, res.getStatus());
}
}