You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by wi...@apache.org on 2014/03/06 18:48:09 UTC

[5/6] git commit: MARMOTTA-449: added some LDP-NR testing

MARMOTTA-449: added some LDP-NR testing


Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/83209635
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/83209635
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/83209635

Branch: refs/heads/ldp
Commit: 83209635c184ceec2003efed230cb5a0ecd48ccd
Parents: 2f3fbdd
Author: Sergio Fernández <wi...@apache.org>
Authored: Thu Mar 6 16:47:00 2014 +0100
Committer: Sergio Fernández <wi...@apache.org>
Committed: Thu Mar 6 16:47:00 2014 +0100

----------------------------------------------------------------------
 .../ldp/webservices/LdpWebServiceTest.java      | 77 +++++++++++++++++++-
 1 file changed, 74 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/marmotta/blob/83209635/platform/marmotta-ldp/src/test/java/org/apache/marmotta/platform/ldp/webservices/LdpWebServiceTest.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-ldp/src/test/java/org/apache/marmotta/platform/ldp/webservices/LdpWebServiceTest.java b/platform/marmotta-ldp/src/test/java/org/apache/marmotta/platform/ldp/webservices/LdpWebServiceTest.java
index 4883e8b..f1e6751 100644
--- a/platform/marmotta-ldp/src/test/java/org/apache/marmotta/platform/ldp/webservices/LdpWebServiceTest.java
+++ b/platform/marmotta-ldp/src/test/java/org/apache/marmotta/platform/ldp/webservices/LdpWebServiceTest.java
@@ -76,7 +76,7 @@ public class LdpWebServiceTest {
 
     @Test
     public void testCRUD() {
-        final String testBase = "test1";
+        final String testBase = "test";
         final String containerName = "container1";
         final String resourceName = "resource1";
 
@@ -115,7 +115,7 @@ public class LdpWebServiceTest {
                         SesameMatchers.hasStatement(new URIImpl(baseUrl + container), DCTERMS.MODIFIED, null),
                         SesameMatchers.hasStatement(new URIImpl(baseUrl + container), RDF.TYPE, LDP.BasicContainer)
                 ))
-                .get(container);
+            .get(container);
 
         // also the new resource exists
         RestAssured
@@ -154,7 +154,78 @@ public class LdpWebServiceTest {
 
     }
 
-    @AfterClass
+    @Test
+    public void testNR() throws IOException {
+        final String testBase = "test";
+        final String containerName = "container2";
+        final String resourceName = "resource1";
+
+        // The container
+        final String container = UriBuilder.fromPath(LdpWebService.PATH).path(testBase).path(containerName).build().toString();
+        final String newResource = UriBuilder.fromUri(container).path(resourceName).build().toString();
+        final String mimeType = "image/png";
+
+        RestAssured.expect().statusCode(404).get(container);
+
+        // Create
+        RestAssured
+            .given()
+                .header("Slug", resourceName)
+                .body(IOUtils.toByteArray(LdpWebServiceTest.class.getResourceAsStream("/test.png")))
+                .contentType(mimeType)
+            .expect()
+                .statusCode(201)
+                .header("Location", baseUrl + newResource + ".png")
+                .header("Link", CoreMatchers.anyOf( //TODO: RestAssured only checks the FIST header...
+                        HeaderMatchers.isLink(baseUrl + newResource, "describedby"),
+                        HeaderMatchers.isLink("http://wiki.apache.org/marmotta/LDPImplementationReport", "describedby"),
+                        HeaderMatchers.isLink(LDP.BasicContainer.stringValue(), "type"))
+                )
+            .post(container);
+
+        // now the container exists
+        RestAssured
+            .given()
+                .header("Accept", RDFFormat.TURTLE.getDefaultMIMEType())
+            .expect()
+                .statusCode(200)
+                .header("Link", CoreMatchers.anyOf( //TODO: RestAssured only checks the FIST header...
+                        HeaderMatchers.isLink("http://wiki.apache.org/marmotta/LDPImplementationReport", "describedby"),
+                        HeaderMatchers.isLink(LDP.BasicContainer.stringValue(), "type"))
+                )
+                .header("ETag", HeaderMatchers.hasEntityTag(true)) // FIXME: be more specific here
+                .contentType(RDFFormat.TURTLE.getDefaultMIMEType())
+                .body(SesameMatchers.rdfStringMatches(RDFFormat.TURTLE.getDefaultMIMEType(), baseUrl + container,
+                        SesameMatchers.hasStatement(new URIImpl(baseUrl + container), RDF.TYPE, LDP.BasicContainer),
+                        SesameMatchers.hasStatement(new URIImpl(baseUrl + container), DCTERMS.MODIFIED, null),
+                        SesameMatchers.hasStatement(new URIImpl(baseUrl + container), LDP.contains, new URIImpl(baseUrl + newResource))
+                ))
+            .get(container);
+
+
+        // now the resource exists
+        RestAssured
+            .given()
+                .header("Accept", RDFFormat.TURTLE.getDefaultMIMEType())
+            .expect()
+                .statusCode(200)
+                .header("Link", CoreMatchers.anyOf( //TODO: RestAssured only checks the FIST header...
+                        HeaderMatchers.isLink("http://wiki.apache.org/marmotta/LDPImplementationReport", "describedby"),
+                        HeaderMatchers.isLink(LDP.Resource.stringValue(), "type"),
+                        HeaderMatchers.isLink(LDP.NonRdfResource.stringValue(), "type"))
+                )
+                .header("ETag", HeaderMatchers.hasEntityTag(true)) // FIXME: be more specific here
+                .contentType(RDFFormat.TURTLE.getDefaultMIMEType())
+                .body(SesameMatchers.rdfStringMatches(RDFFormat.TURTLE.getDefaultMIMEType(), baseUrl + newResource,
+                        SesameMatchers.hasStatement(new URIImpl(baseUrl + newResource), RDF.TYPE, LDP.Resource),
+                        SesameMatchers.hasStatement(new URIImpl(baseUrl + newResource), RDF.TYPE, LDP.NonRdfResource),
+                        SesameMatchers.hasStatement(new URIImpl(baseUrl + newResource), DCTERMS.MODIFIED, null),
+                        SesameMatchers.hasStatement(new URIImpl(baseUrl + newResource), DCTERMS.HAS_FORMAT, new URIImpl(baseUrl + newResource + ".png"))
+                ))
+            .get(newResource);
+    }
+
+   @AfterClass
     public static void tearDown() {
         marmotta.shutdown();
     }