You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2015/10/23 22:38:09 UTC

[08/13] jena git commit: Tidy tests.

Tidy tests.

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

Branch: refs/heads/master
Commit: 9af00abf079c6b025b155ec2b739b3ee28b303ef
Parents: 33bb6a8
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 17:35:06 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 17:35:06 2015 +0100

----------------------------------------------------------------------
 .../java/org/apache/jena/fuseki/FusekiTest.java | 106 +++++++++++++++++++
 .../java/org/apache/jena/fuseki/ServerTest.java |  17 +--
 .../java/org/apache/jena/fuseki/TestAdmin.java  |  61 ++---------
 .../java/org/apache/jena/fuseki/TestAuth.java   |   2 +-
 .../org/apache/jena/fuseki/TestDatasetOps.java  |   8 +-
 .../org/apache/jena/fuseki/TestFileUpload.java  |  22 ++--
 .../java/org/apache/jena/fuseki/TestQuery.java  |  11 +-
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |   3 +-
 .../fuseki/http/TestDatasetAccessorHTTP.java    |  27 ++---
 .../http/TestDatasetGraphAccessorHTTP.java      |   2 +-
 .../org/apache/jena/fuseki/http/TestHttpOp.java |  38 +++----
 11 files changed, 172 insertions(+), 125 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/FusekiTest.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/FusekiTest.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/FusekiTest.java
new file mode 100644
index 0000000..441d7f0
--- /dev/null
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/FusekiTest.java
@@ -0,0 +1,106 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.fuseki;
+
+import java.io.IOException ;
+import java.util.Objects ;
+
+import org.apache.http.HttpResponse ;
+import org.apache.http.StatusLine ;
+import org.apache.http.client.HttpClient ;
+import org.apache.http.client.methods.HttpOptions ;
+import org.apache.http.client.methods.HttpUriRequest ;
+import org.apache.http.impl.client.SystemDefaultHttpClient ;
+import org.apache.http.protocol.HttpContext ;
+import org.apache.http.util.EntityUtils ;
+import org.apache.jena.atlas.web.HttpException ;
+import org.apache.jena.riot.web.HttpNames ;
+import org.apache.jena.riot.web.HttpResponseHandler ;
+import org.apache.jena.riot.web.HttpResponseLib ;
+import org.apache.jena.web.HttpSC ;
+import org.junit.Assert ;
+
+public class FusekiTest {
+
+    /** Check whether str is a comma separated list of expected (unordered) */
+    public static void assertStringList(String str, String... expected) {
+        str = str.replace(" ", "") ;
+        String[] x = str.split(",") ;
+        int count = 0 ;
+        for ( String ex : expected ) {
+            Assert.assertTrue("Got: "+str+" - Does not contain "+ex, containsStr(ex, x)) ;
+        }
+        for ( String s : x ) {
+            Assert.assertTrue("Got: "+str+" - Not expected "+s, containsStr(s, expected)) ;
+        }
+    }
+
+    /** Is v in the list of strings? */
+    public static boolean containsStr(String v, String[] strings) {
+        for ( String s: strings ) {
+            if ( Objects.equals(v, s)) 
+                return true ;
+        }
+        return false ;
+    }
+
+    /** Do an HTTP Options. */
+    public static String execOptions(String url) {
+        try {
+            // Prepare and execute
+            HttpResponseHandler handler = HttpResponseLib.nullResponse ;
+            HttpClient httpClient = new SystemDefaultHttpClient() ;
+            HttpUriRequest request = new HttpOptions(url) ;
+            HttpResponse response = httpClient.execute(request, (HttpContext)null);
+            
+            // Response
+            StatusLine statusLine = response.getStatusLine();
+            int statusCode = statusLine.getStatusCode();
+            if (HttpSC.isClientError(statusCode) || HttpSC.isServerError(statusCode)) {
+                // Error responses can have bodies so it is important to clear up.
+                String contentPayload = "" ;
+                if ( response.getEntity() != null )
+                    contentPayload = EntityUtils.toString(response.getEntity()) ;
+                throw new HttpException(statusLine.getStatusCode(), statusLine.getReasonPhrase(), contentPayload);
+            }
+            if (handler != null)
+                handler.handle(url, response);
+            return response.getFirstHeader(HttpNames.hAllow).getValue() ;
+        } catch (IOException ex) {
+            throw new HttpException(ex);
+        }
+    }
+    
+    public static void exec404(Runnable action) {
+        execWithHttpException(HttpSC.NOT_FOUND_404, action) ;
+    }
+    
+    public static void execWithHttpException(int statusCode, Runnable action) { 
+        try {
+            action.run();
+            Assert.fail("Expected HttpException") ;
+        } catch (HttpException ex) {
+            // -1 : any status code in HttpException 
+            if ( statusCode > 0 )
+                Assert.assertEquals(statusCode, ex.getResponseCode()) ;
+                
+        }
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java
index 5e916ac..bbe0db7 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java
@@ -59,7 +59,7 @@ public class ServerTest {
     public static final String  urlDataset    = "http://localhost:" + port + datasetPath ;
     public static final String  serviceUpdate = urlDataset + "/update" ;
     public static final String  serviceQuery  = urlDataset + "/query" ;
-    public static final String  serviceREST   = urlDataset + "/data" ;
+    public static final String  serviceGSP    = urlDataset + "/data" ;
 
     public static final String  gn1           = "http://graph/1" ;
     public static final String  gn2           = "http://graph/2" ;
@@ -85,8 +85,12 @@ public class ServerTest {
     // static { allocServer() ; }
 
     static public void allocServer() {
+        allocServer(true) ;
+    }
+    
+    static public void allocServer(boolean updateable) {
         if ( countServer == 0 )
-            setupServer() ;
+            setupServer(updateable) ;
         countServer++ ;
     }
 
@@ -98,16 +102,16 @@ public class ServerTest {
         }
     }
 
-    protected static void setupServer() {
+    protected static void setupServer(boolean updateable) {
         FusekiEnv.FUSEKI_HOME = Paths.get(TS_Fuseki.FusekiTestHome).toAbsolutePath() ;
         FileOps.ensureDir("target");
         FileOps.ensureDir(TS_Fuseki.FusekiTestHome);
         FileOps.ensureDir(TS_Fuseki.FusekiTestBase) ;
         FusekiEnv.FUSEKI_BASE = Paths.get(TS_Fuseki.FusekiTestBase).toAbsolutePath() ;
-        setupServer(ServerTest.port, null, ServerTest.datasetPath) ;
+        setupServer(ServerTest.port, null, ServerTest.datasetPath, updateable) ;
     }
     
-    protected static void setupServer(int port, String authConfigFile, String datasetPath) {
+    protected static void setupServer(int port, String authConfigFile, String datasetPath, boolean updateable) {
         SystemState.location = Location.mem() ;
         SystemState.init$() ;
         
@@ -115,7 +119,8 @@ public class ServerTest {
         DatasetGraph dsg = DatasetGraphFactory.createMem() ;
         params.dsg = dsg ;
         params.datasetPath = datasetPath ;
-        params.allowUpdate = true ;
+        params.allowUpdate = updateable ;
+        
         FusekiServerListener.initialSetup = params ;
         
         JettyServerConfig config = make(port, true, true) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java
index 17bc77f..2a2e46a 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java
@@ -40,7 +40,6 @@ import org.apache.jena.atlas.json.JSON ;
 import org.apache.jena.atlas.json.JsonArray ;
 import org.apache.jena.atlas.json.JsonObject ;
 import org.apache.jena.atlas.json.JsonValue ;
-import org.apache.jena.atlas.junit.BaseTest ;
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.web.HttpException ;
 import org.apache.jena.atlas.web.TypedInputStream ;
@@ -49,30 +48,14 @@ import org.apache.jena.riot.WebContent ;
 import org.apache.jena.riot.web.HttpOp ;
 import org.apache.jena.riot.web.HttpResponseHandler ;
 import org.apache.jena.web.HttpSC ;
-import org.junit.After ;
-import org.junit.AfterClass ;
-import org.junit.Before ;
 import org.junit.Test ;
 
 /** Tests of the admin functionality */
-public class TestAdmin extends BaseTest {
+public class TestAdmin extends AbstractFusekiTest {
     
     // Name of the dataset in the assembler file.
     static String dsTest = "test-ds2" ;
     
-    @Before public void beforeTest() {
-        ServerTest.allocServer() ;
-        ServerTest.resetServer() ;
-    }
-    
-    @After public void afterTest() {
-        ServerTest.freeServer() ;
-    }
-
-    @AfterClass public static void afterClass() {
-        ServerTest.teardownServer() ;
-    }
-  
     // --- Ping 
     
     @Test public void ping_1() {
@@ -120,11 +103,7 @@ public class TestAdmin extends BaseTest {
     
     // Specific dataset
     @Test public void list_datasets_4() {
-        try {
-            getDatasetDescription("does-not-exist") ;
-        } catch (HttpException ex) {
-            assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
-        }
+        FusekiTest.exec404( () -> getDatasetDescription("does-not-exist") ) ;
     }
     
     // Specific dataset
@@ -184,12 +163,7 @@ public class TestAdmin extends BaseTest {
     
     @Test public void delete_dataset_1() {
         String name = "NoSuchDataset" ;
-        try {
-            execHttpDelete(ServerTest.urlRoot+"$/"+opDatasets+"/"+name) ;
-            fail("delete did not cause an Http Exception") ;
-        } catch ( HttpException ex ) {
-            assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
-        }
+        FusekiTest.exec404( ()-> execHttpDelete(ServerTest.urlRoot+"$/"+opDatasets+"/"+name) ) ;
     }
 
     // ---- Active/Offline.
@@ -218,9 +192,7 @@ public class TestAdmin extends BaseTest {
 
     @Test public void state_3() {
         addTestDataset() ;
-        try {
-            execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/DoesNotExist?state=offline", null) ;
-        } catch (HttpException ex) { assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ; }
+        FusekiTest.exec404(()->execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/DoesNotExist?state=offline", null)) ;
         deleteDataset(dsTest) ;
     }
     
@@ -244,10 +216,9 @@ public class TestAdmin extends BaseTest {
 
     @Test public void stats_3() {
         addTestDataset() ;
-        try {
+        FusekiTest.exec404(()->{
             JsonValue v = execGetJSON(urlRoot+"$/"+opStats+"/DoesNotExist") ;
-            checkJsonStatsAll(v);
-        } catch (HttpException ex) { assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()); }
+        }) ;
         deleteDataset(dsTest) ;
     }
 
@@ -262,11 +233,7 @@ public class TestAdmin extends BaseTest {
     @Test public void task_2() {
         String x = "NoSuchTask" ;
         String url = urlRoot+"$/tasks/"+x ;
-        try {
-            httpGetJson(url) ;
-        } catch (HttpException ex) {
-            assertEquals(404, ex.getResponseCode()) ;
-        }
+        FusekiTest.exec404(()->httpGetJson(url) ) ;
         try { 
             checkInTasks(x) ;
             fail("No failure!") ;
@@ -454,18 +421,10 @@ private static void deleteDataset(String name) {
     }
 
     private static void checkNotThere(String name) {
-        if ( name.startsWith("/") )
-            name = name.substring(1) ;
+        String n = (name.startsWith("/")) ? name.substring(1) : name ;
         // Check gone exists.
-        try { adminPing(name) ; }
-        catch (HttpException ex) {
-            assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
-        }
-        
-        try { askPing(name) ; }
-        catch (HttpException ex) {
-            assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
-        }
+        FusekiTest.exec404(()->  adminPing(n) ) ;
+        FusekiTest.exec404(() -> askPing(n) ) ;
     }
 
     private static void checkJsonDatasetsAll(JsonValue v) {

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java
index cef7a22..a5158d2 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java
@@ -82,7 +82,7 @@ public class TestAuth {
         LogCtl.logLevel(Fuseki.actionLog.getName(), org.apache.log4j.Level.WARN, java.util.logging.Level.WARNING);
         LogCtl.logLevel("org.eclipse.jetty", org.apache.log4j.Level.WARN, java.util.logging.Level.WARNING);
 
-        ServerTest.setupServer(authPort, realmFile.getAbsolutePath(), authDatasetPath);
+        ServerTest.setupServer(authPort, realmFile.getAbsolutePath(), authDatasetPath, true);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java
index 7107310..179a020 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java
@@ -19,7 +19,7 @@
 package org.apache.jena.fuseki;
 
 import static org.apache.jena.fuseki.ServerTest.serviceQuery ;
-import static org.apache.jena.fuseki.ServerTest.serviceREST ;
+import static org.apache.jena.fuseki.ServerTest.serviceGSP ;
 import static org.apache.jena.fuseki.ServerTest.urlDataset ;
 import org.apache.http.HttpEntity ;
 import org.apache.http.entity.EntityTemplate ;
@@ -65,15 +65,15 @@ public class TestDatasetOps extends AbstractFusekiTest
     }
 
     @Test public void gsp_x_02() {
-        gsp_x(urlDataset, serviceREST) ;
+        gsp_x(urlDataset, serviceGSP) ;
     }
 
     @Test public void gsp_x_03() {
-        gsp_x(serviceREST, urlDataset) ;
+        gsp_x(serviceGSP, urlDataset) ;
     }
 
     @Test public void gsp_x_04() {
-        gsp_x(serviceREST, urlDataset) ;
+        gsp_x(serviceGSP, urlDataset) ;
     }
 
     private void gsp_x(String outward, String inward) {

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java
index eb96560..d351c7d 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java
@@ -18,7 +18,7 @@
 
 package org.apache.jena.fuseki;
 
-import static org.apache.jena.fuseki.ServerTest.serviceREST ;
+import static org.apache.jena.fuseki.ServerTest.serviceGSP ;
 import org.apache.jena.atlas.web.TypedInputStream ;
 import org.apache.jena.fuseki.http.TestDatasetAccessorHTTP ;
 import org.apache.jena.fuseki.http.TestHttpOp ;
@@ -42,12 +42,12 @@ public class TestFileUpload extends AbstractFusekiTest
 {
     @Test public void upload_gsp_01()
     {
-        FileSender x = new FileSender(ServerTest.serviceREST+"?default") ;
+        FileSender x = new FileSender(serviceGSP+"?default") ;
         x.add("D.ttl", "<http://example/s> <http://example/p> <http://example/o> .", "text/turtle") ;
         x.send("POST") ;
         
         Model m = ModelFactory.createDefaultModel() ;
-        TypedInputStream in = HttpOp.execHttpGet(serviceREST, "text/turtle") ;
+        TypedInputStream in = HttpOp.execHttpGet(serviceGSP, "text/turtle") ;
         RDFDataMgr.read(m, in, RDFLanguages.contentTypeToLang(in.getMediaType()) ) ;
         // which is is effectively :
 //        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
@@ -57,13 +57,13 @@ public class TestFileUpload extends AbstractFusekiTest
     
     @Test public void upload_gsp_02()
     {
-        FileSender x = new FileSender(ServerTest.serviceREST+"?default") ;
+        FileSender x = new FileSender(ServerTest.serviceGSP+"?default") ;
         x.add("D.ttl", "<http://example/s> <http://example/p> 123 .", "text/turtle") ;
         x.add("D.nt", "<http://example/s> <http://example/p> <http://example/o-456> .", "application/n-triples") ;
         x.send("PUT") ;
         
         // BUG
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         Model m = du.getModel() ;
         assertEquals(2, m.size()) ;
     }
@@ -71,12 +71,12 @@ public class TestFileUpload extends AbstractFusekiTest
     // Extension of GSP - no graph selector => dataset
     @Test public void upload_gsp_03()
     {
-        FileSender x = new FileSender(ServerTest.serviceREST) ;
+        FileSender x = new FileSender(ServerTest.serviceGSP) ;
         x.add("D.ttl", "<http://example/s> <http://example/p> <http://example/o> .", "text/turtle") ;
         x.add("D.trig", "<http://example/g> { <http://example/s> <http://example/p> <http://example/o> }", "text/trig") ;
         x.send("POST") ;
         
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         Model m = du.getModel() ;
         assertEquals(1, m.size()) ;
     }
@@ -84,7 +84,7 @@ public class TestFileUpload extends AbstractFusekiTest
     @Test public void upload_gsp_04()
     {
         {
-            DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+            DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
             Model m = du.getModel() ;
             assertEquals(0, m.size()) ;
         }
@@ -93,7 +93,7 @@ public class TestFileUpload extends AbstractFusekiTest
         x.add("D.trig", "<http://example/g> { <http://example/s> <http://example/p> 123,456 }", "text/plain") ;
         x.send("POST") ;
         
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         Model m = du.getModel() ;
         assertEquals(1, m.size()) ;
         m = du.getModel("http://example/g") ;
@@ -107,7 +107,7 @@ public class TestFileUpload extends AbstractFusekiTest
         x.add("D.nq", "", "application/-n-quads") ;
         x.send("PUT") ;
         
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         Model m = du.getModel() ;
         assertEquals(0, m.size()) ;
     }
@@ -117,7 +117,7 @@ public class TestFileUpload extends AbstractFusekiTest
         x.add("D.nq", "<http://example/s> <http://example/p> <http://example/o-456> <http://example/g> .", "application/n-quads") ;
         x.send("PUT") ;
         
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         Model m = du.getModel("http://example/g") ;
         assertEquals(1, m.size()) ;
         m = du.getModel() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java
index 08c837d..3a47102 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java
@@ -23,7 +23,7 @@ import static org.apache.jena.fuseki.ServerTest.gn2 ;
 import static org.apache.jena.fuseki.ServerTest.model1 ;
 import static org.apache.jena.fuseki.ServerTest.model2 ;
 import static org.apache.jena.fuseki.ServerTest.serviceQuery ;
-import static org.apache.jena.fuseki.ServerTest.serviceREST ;
+import static org.apache.jena.fuseki.ServerTest.serviceGSP ;
 
 import java.io.IOException ;
 import java.net.HttpURLConnection ;
@@ -61,15 +61,14 @@ public class TestQuery extends BaseTest {
     @BeforeClass
     public static void beforeClass() {
         ServerTest.allocServer() ;
-        ServerTest.resetServer() ;
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         du.putModel(model1) ;
         du.putModel(gn1, model2) ;
     }
 
     @AfterClass
     public static void afterClass() {
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         du.deleteDefault() ;
         ServerTest.freeServer() ;
     }
@@ -111,7 +110,7 @@ public class TestQuery extends BaseTest {
 
     @Test
     public void query_dynamic_dataset_01() {
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         du.putModel(model1);
         du.putModel(gn1, model2);
         {
@@ -136,7 +135,7 @@ public class TestQuery extends BaseTest {
     
     @Test
     public void query_dynamic_dataset_02() {
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         du.putModel(model1);
         du.putModel(gn1, model1);
         du.putModel(gn2, model2);

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
index bd53495..32bc663 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
@@ -37,9 +37,8 @@ public class TestSPARQLProtocol extends BaseTest
     @BeforeClass
     public static void beforeClass() {
         ServerTest.allocServer();
-        ServerTest.resetServer();
         // Load some data.
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST);
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP);
         du.putModel(model1);
         du.putModel(gn1, model2);
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java
index d7056d3..457ab96 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java
@@ -21,6 +21,7 @@ package org.apache.jena.fuseki.http;
 import static org.apache.jena.fuseki.ServerTest.* ;
 import org.apache.jena.atlas.junit.BaseTest ;
 import org.apache.jena.atlas.web.HttpException ;
+import org.apache.jena.fuseki.FusekiTest ;
 import org.apache.jena.fuseki.ServerTest ;
 import org.apache.jena.query.DatasetAccessor ;
 import org.apache.jena.query.DatasetAccessorFactory ;
@@ -39,7 +40,7 @@ public class TestDatasetAccessorHTTP extends BaseTest
     //Model level testing.
     
     static final String datasetURI_not_1    = "http://localhost:"+port+"/junk" ;
-    static final String datasetURI_not_2    = serviceREST+"/not" ;
+    static final String datasetURI_not_2    = serviceGSP+"/not" ;
     static final String datasetURI_not_3    = "http://localhost:"+port+datasetPath+"/not/data" ;
     
     @BeforeClass public static void beforeClass()   { ServerTest.allocServer() ; }
@@ -51,33 +52,23 @@ public class TestDatasetAccessorHTTP extends BaseTest
     {
         // Can GET the dataset service.
         try {
-            HttpOp.execHttpGet(serviceREST) ;
+            HttpOp.execHttpGet(serviceGSP) ;
         } catch (HttpException ex) {
             assertTrue(HttpSC.isClientError(ex.getResponseCode())) ;
             throw ex ;
         }
     }
     
-    @Test(expected=HttpException.class)
+    @Test
     public void test_ds_2()
     {
-        try {
-            HttpOp.execHttpGet(datasetURI_not_1) ;
-        } catch (HttpException ex) {
-            assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
-            throw ex ;
-        }
+        FusekiTest.exec404(()->HttpOp.execHttpGet(datasetURI_not_1)) ;
     }
 
-    @Test(expected=HttpException.class)
+    @Test
     public void test_ds_3()
     {
-        try {
-            HttpOp.execHttpGet(datasetURI_not_2) ;
-        } catch (HttpException ex) {
-            assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
-            throw ex ;
-        }
+        FusekiTest.exec404(()->HttpOp.execHttpGet(datasetURI_not_2)) ;
     }
 
     @Test
@@ -101,7 +92,7 @@ public class TestDatasetAccessorHTTP extends BaseTest
     public void test_404_3()
     {
         // Right service, wrong graph
-        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+        DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
         Model graph = du.getModel(gn99) ;
         assertNull(graph) ;
     }
@@ -317,7 +308,7 @@ public class TestDatasetAccessorHTTP extends BaseTest
 
     static DatasetAccessor connectToService()
     {
-        return DatasetAccessorFactory.createHTTP(ServerTest.serviceREST) ;
+        return DatasetAccessorFactory.createHTTP(ServerTest.serviceGSP) ;
     }
     
     static DatasetAccessor connectToDataset()

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
index 7687b2c..964511f 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
@@ -38,6 +38,6 @@ public class TestDatasetGraphAccessorHTTP extends AbstractTestDatasetGraphAccess
     @Override
     protected DatasetGraphAccessor getDatasetUpdater()
     {
-        return new DatasetGraphAccessorHTTP(ServerTest.serviceREST) ;
+        return new DatasetGraphAccessorHTTP(ServerTest.serviceGSP) ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java
index b8ad9de..488c517 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java
@@ -18,30 +18,26 @@
 
 package org.apache.jena.fuseki.http;
 
-import org.apache.jena.atlas.junit.BaseTest ;
 import org.apache.jena.atlas.lib.IRILib ;
 import org.apache.jena.atlas.web.HttpException ;
 import org.apache.jena.atlas.web.TypedInputStream ;
+import org.apache.jena.fuseki.AbstractFusekiTest ;
+import org.apache.jena.fuseki.FusekiTest ;
 import org.apache.jena.fuseki.ServerTest ;
 import org.apache.jena.riot.WebContent ;
 import org.apache.jena.riot.web.HttpOp ;
 import org.apache.jena.sparql.engine.http.Params ;
 import org.apache.jena.web.HttpSC ;
-import org.junit.AfterClass ;
-import org.junit.BeforeClass ;
 import org.junit.Test ;
 
 // This a mixture of testing HttpOp and testing basic operation of the SPARQL server
 // especially error cases abnd unusual usage that the higher level APIs don't use.
-public class TestHttpOp extends BaseTest {
+public class TestHttpOp extends AbstractFusekiTest {
     
-    static String pingURL = ServerTest.urlRoot+"$/ping" ;
-    @BeforeClass public static void beforeClass() { ServerTest.allocServer() ; }
-    @AfterClass  public static void afterClass()  { ServerTest.freeServer() ; }
-    
-    static String gspServiceURL     = ServerTest.serviceREST ;
-    static String defaultGraphURL   = ServerTest.serviceREST+"?default" ;
-    static String namedGraphURL     = ServerTest.serviceREST+"?graph=http://example/g" ;
+    static String pingURL           = ServerTest.urlRoot+"$/ping" ;
+    static String gspServiceURL     = ServerTest.serviceGSP ;
+    static String defaultGraphURL   = ServerTest.serviceGSP+"?default" ;
+    static String namedGraphURL     = ServerTest.serviceGSP+"?graph=http://example/g" ;
     static String queryURL          = ServerTest.serviceQuery ;
     static String updateURL         = ServerTest.serviceUpdate ;
     
@@ -53,13 +49,11 @@ public class TestHttpOp extends BaseTest {
         try ( TypedInputStream in = HttpOp.execHttpGet(pingURL) ) {}
     }
     
-    @Test(expected=HttpException.class) 
+    @Test
     public void httpGet_02() {
-        try ( TypedInputStream in = HttpOp.execHttpGet(ServerTest.urlRoot+"does-not-exist") ) { }
-        catch(HttpException ex) {
-            assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
-            throw ex ;
-        }
+        FusekiTest.exec404(() -> {
+            try (TypedInputStream in = HttpOp.execHttpGet(ServerTest.urlRoot + "does-not-exist")) {}
+        });
     }
 
     @Test public void httpGet_03() {
@@ -185,7 +179,7 @@ public class TestHttpOp extends BaseTest {
     }
     
     @Test public void gsp_06() {
-        //HttpOp.execHttpDelete(namedGraphURL) ; -- woudl be 404.
+        //HttpOp.execHttpDelete(namedGraphURL) ; -- would be 404.
         
         HttpOp.execHttpPost(namedGraphURL, WebContent.contentTypeTurtle, graphString) ;
         String s1 = HttpOp.execHttpGetString(namedGraphURL, WebContent.contentTypeNTriples) ;
@@ -196,13 +190,7 @@ public class TestHttpOp extends BaseTest {
         String s3 = HttpOp.execHttpGetString(defaultGraphURL, WebContent.contentTypeNTriples) ;
         assertTrue(s3.isEmpty()) ;
         
-        try {
-            HttpOp.execHttpDelete(namedGraphURL) ;
-            fail("Expected 404") ;
-        } catch (HttpException ex) {
-            assertEquals(ex.getResponseCode(), HttpSC.NOT_FOUND_404) ;
-        }
-        
+        FusekiTest.exec404(()->HttpOp.execHttpDelete(namedGraphURL)) ;
     }
 
     // Extended GSP - no ?default, no ?graph acts on the datasets as a whole.