This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit a281c70fa2e6f3b661a7e4b741494695633d85c6 Author: Andy Seaborne <[email protected]> AuthorDate: Tue Dec 17 20:23:33 2024 +0000 Convert Fuseki-main tests to JUnit5 --- jena-fuseki2/jena-fuseki-core/pom.xml | 6 + .../java/org/apache/jena/fuseki/TS_FusekiCore.java | 14 +- .../UtilsTests.java => TestPrefixesCore.java} | 21 +- .../jena/fuseki/servlets/prefixes/RegexTests.java | 44 ---- .../apache/jena/fuseki/mod/admin/FMod_Admin.java | 8 + .../org/apache/jena/fuseki/TC_FusekiServer.java | 12 +- .../jena/fuseki/main/AbstractFusekiTest.java | 9 +- .../jena/fuseki/main/AbstractTestAuth_JDK.java | 9 +- .../org/apache/jena/fuseki/main/FusekiTestLib.java | 2 +- .../org/apache/jena/fuseki/main/TC_FusekiMain.java | 40 ---- .../org/apache/jena/fuseki/main/TS_FusekiMain.java | 5 +- .../apache/jena/fuseki/main/TestAuthQuery_JDK.java | 2 +- .../jena/fuseki/main/TestAuthUpdate_JDK.java | 2 +- .../apache/jena/fuseki/main/TestConfigFile.java | 13 +- .../jena/fuseki/main/TestCrossOriginFilter.java | 32 +-- .../apache/jena/fuseki/main/TestFileUpload.java | 4 +- .../fuseki/main/TestFusekiCustomOperation.java | 28 ++- .../fuseki/main/TestFusekiCustomScriptFunc.java | 15 +- .../jena/fuseki/main/TestFusekiDatasetSharing.java | 25 +- .../apache/jena/fuseki/main/TestFusekiMainCmd.java | 8 +- .../fuseki/main/TestFusekiMainCmdArguments.java | 47 ++-- .../main/TestFusekiMainCmdCustomArguments.java | 14 +- .../jena/fuseki/main/TestFusekiServerBuild.java | 4 +- .../fuseki/main/TestFusekiShaclValidation.java | 15 +- .../fuseki/main/TestFusekiStdReadOnlySetup.java | 10 +- .../jena/fuseki/main/TestFusekiStdSetup.java | 10 +- .../jena/fuseki/main/TestHttpOperations.java | 41 ++-- .../apache/jena/fuseki/main/TestHttpOptions.java | 2 +- .../org/apache/jena/fuseki/main/TestMetrics.java | 4 +- .../jena/fuseki/main/TestMultipleEmbedded.java | 16 +- .../apache/jena/fuseki/main/TestPatchFuseki.java | 8 +- .../apache/jena/fuseki/main/TestPlainServer.java | 20 +- .../org/apache/jena/fuseki/main/TestQuery.java | 35 ++- .../jena/fuseki/main/TestSPARQLProtocol.java | 11 +- .../fuseki/main/TestSPARQLProtocolTimeout.java | 21 +- .../AbstractTestFusekiSecurityAssembler.java | 16 +- .../access/AbstractTestServiceDatasetAuth.java | 2 +- .../jena/fuseki/main/access/AccessTestLib.java | 3 +- .../jena/fuseki/main/access/TS_SecurityFuseki.java | 8 +- .../jena/fuseki/main/access/TestAuthorized.java | 10 +- .../jena/fuseki/main/access/TestPasswdOnly.java | 23 +- .../main/access/TestSecurityBuilderSetup.java | 21 +- .../fuseki/main/access/TestSecurityConfig.java | 7 +- .../main/access/TestSecurityFilterFuseki.java | 256 +++++++++++++-------- .../main/access/TestServiceDataAuthBuild.java | 10 +- .../main/access/TestServiceDataAuthConfig.java | 11 +- .../jena/fuseki/main/access/TestSimpleBearer.java | 7 +- ...esServiceTests.java => TS_PrefixesService.java} | 2 +- .../jena/fuseki/main/sys/TestFusekiModules.java | 43 ++-- .../mod/{TC_FusekiMods.java => TS_FusekiMods.java} | 4 +- .../jena/fuseki/mod/admin/TestFusekiReload.java | 16 +- .../src/test/resources/log4j2-test.properties | 3 +- 52 files changed, 505 insertions(+), 494 deletions(-) diff --git a/jena-fuseki2/jena-fuseki-core/pom.xml b/jena-fuseki2/jena-fuseki-core/pom.xml index 62913c924a..6a947e75c4 100644 --- a/jena-fuseki2/jena-fuseki-core/pom.xml +++ b/jena-fuseki2/jena-fuseki-core/pom.xml @@ -110,6 +110,12 @@ <scope>test</scope> </dependency> + <dependency> + <groupId>org.junit.platform</groupId> + <artifactId>junit-platform-suite</artifactId> + <scope>test</scope> + </dependency> + <!-- micrometer --> <dependency> <groupId>io.micrometer</groupId> diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TS_FusekiCore.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TS_FusekiCore.java index b67669aa9f..4a4600f53d 100644 --- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TS_FusekiCore.java +++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TS_FusekiCore.java @@ -18,21 +18,21 @@ package org.apache.jena.fuseki; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; +import org.junit.platform.suite.api.SelectClasses; +import org.junit.platform.suite.api.Suite; import org.apache.jena.fuseki.server.TestDatasetDescriptionMap; import org.apache.jena.fuseki.server.TestDispatchOnURI; import org.apache.jena.fuseki.servlets.TestCrossOriginFilterMock; +import org.apache.jena.fuseki.servlets.TestPrefixesCore; -// Most testing needs a server. -@RunWith(Suite.class) -@SuiteClasses({ +@Suite +@SelectClasses({ TestValidators.class, TestDispatchOnURI.class, TestCrossOriginFilterMock.class, - TestDatasetDescriptionMap.class + TestDatasetDescriptionMap.class, + TestPrefixesCore.class }) public class TS_FusekiCore {} diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/servlets/prefixes/UtilsTests.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/servlets/TestPrefixesCore.java similarity index 89% rename from jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/servlets/prefixes/UtilsTests.java rename to jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/servlets/TestPrefixesCore.java index f2810811af..56e82c1de4 100644 --- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/servlets/prefixes/UtilsTests.java +++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/servlets/TestPrefixesCore.java @@ -16,14 +16,16 @@ * limitations under the License. */ -package org.apache.jena.fuseki.servlets.prefixes; +package org.apache.jena.fuseki.servlets; import org.junit.jupiter.api.Test; +import org.apache.jena.fuseki.servlets.prefixes.PrefixUtils; + import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class UtilsTests { +public class TestPrefixesCore { @Test public void prefixIsValidTrue0() { assertTrue(PrefixUtils.prefixIsValid("prefix1")); @@ -48,10 +50,17 @@ public class UtilsTests { public void prefixIsValidTrue4() { assertTrue(PrefixUtils.prefixIsValid("ca7--t")); } + @Test public void prefixIsValidTrue5() { assertTrue(PrefixUtils.prefixIsValid("a__b")); } + + @Test + public void prefixIsValidTrue6() { + assertTrue(PrefixUtils.prefixIsValid("")); + } + @Test public void prefixIsValidFalse0() { assertFalse(PrefixUtils.prefixIsValid("-prefix1")); @@ -64,16 +73,11 @@ public class UtilsTests { @Test public void prefixIsValidFalse2() { - assertFalse(PrefixUtils.prefixIsValid("")); - } - - @Test - public void prefixIsValidFalse4() { assertFalse(PrefixUtils.prefixIsValid("c-b--")); } @Test - public void prefixIsValidFalse5() { + public void prefixIsValidFalse3() { assertFalse(PrefixUtils.prefixIsValid("pre/fix")); } @@ -86,5 +90,4 @@ public class UtilsTests { public void uriIsValidFalse0() { assertFalse(PrefixUtils.uriIsValid("...")); } - } diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/servlets/prefixes/RegexTests.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/servlets/prefixes/RegexTests.java deleted file mode 100644 index 3340e95c80..0000000000 --- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/servlets/prefixes/RegexTests.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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.servlets.prefixes; - -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; - -import java.util.regex.Pattern; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -public class RegexTests { - String serviceName = "prefixes"; - public final Pattern regex = Pattern.compile("^/" + serviceName + "(?:/.*)?$"); - - @ParameterizedTest - @ValueSource(strings = {"abc", "pre_fix/abc", "abcde", "prefix"}) - public void patternMatchFalse(String name) { - assertFalse(regex.matcher(name).matches()); - } - - @ParameterizedTest - @ValueSource(strings = {"/prefixes", "/prefixes/abc", "/prefixes/"}) - public void patternMatchTrue(String name) { - assertTrue(regex.matcher(name).matches()); - } -} diff --git a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mod/admin/FMod_Admin.java b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mod/admin/FMod_Admin.java index 09b0fcffc6..c48bd290bb 100644 --- a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mod/admin/FMod_Admin.java +++ b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mod/admin/FMod_Admin.java @@ -125,6 +125,14 @@ public class FMod_Admin implements FusekiModule { @Override public void prepare(FusekiServer.Builder builder, Set<String> datasetNames, Model configModel) { // Unpack + + // XXX Do better! + FusekiApp.FUSEKI_BASE = null; + +// FusekiApp fusekiApp = new FusekiApp(); +// //fusekiApp.init(); +// String fusekiApp.FUSEKI_BASE + Path path = FusekiApp.setup(); FmtLog.info(LOG, "Fuseki Admin: %s", path); diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/TC_FusekiServer.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/TC_FusekiServer.java index fd30ecb946..6b4d86c8fb 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/TC_FusekiServer.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/TC_FusekiServer.java @@ -21,12 +21,16 @@ package org.apache.jena.fuseki; import org.junit.platform.suite.api.SelectClasses; import org.junit.platform.suite.api.Suite; -import org.apache.jena.fuseki.main.TC_FusekiMain; -import org.apache.jena.fuseki.mod.TC_FusekiMods; +import org.apache.jena.fuseki.main.TS_FusekiMain; +import org.apache.jena.fuseki.main.access.TS_SecurityFuseki; +import org.apache.jena.fuseki.main.prefixes.TS_PrefixesService; +import org.apache.jena.fuseki.mod.TS_FusekiMods; @Suite @SelectClasses({ - TC_FusekiMain.class, - TC_FusekiMods.class + TS_FusekiMain.class, + TS_SecurityFuseki.class, + TS_FusekiMods.class, + TS_PrefixesService.class }) public class TC_FusekiServer {} diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractFusekiTest.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractFusekiTest.java index 7904221478..826ad1529a 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractFusekiTest.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractFusekiTest.java @@ -18,10 +18,11 @@ package org.apache.jena.fuseki.main; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; + import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.DatasetGraphFactory; -import org.junit.After; -import org.junit.Before; /** * Common setup for running a server with services and an initially empty database. @@ -39,7 +40,7 @@ public class AbstractFusekiTest { protected String serviceGSP_R() { return databaseURL()+"/get"; } protected String serviceGSP() { return databaseURL()+"/data"; } - @Before public void startServer() { + @BeforeEach public void startServer() { DatasetGraph dsgTesting = DatasetGraphFactory.createTxnMem(); server = FusekiServer.create() .port(0) @@ -50,7 +51,7 @@ public class AbstractFusekiTest { .start(); } - @After public void stopServer() { + @AfterEach public void stopServer() { if ( server != null ) server.stop(); } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractTestAuth_JDK.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractTestAuth_JDK.java index b897f07446..956701b845 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractTestAuth_JDK.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractTestAuth_JDK.java @@ -21,6 +21,9 @@ package org.apache.jena.fuseki.main; import java.net.Authenticator; import java.net.http.HttpClient; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; + import org.apache.jena.http.auth.AuthLib; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.DatasetGraphFactory; @@ -28,8 +31,6 @@ import org.apache.jena.sparql.exec.http.QueryExecutionHTTP; import org.apache.jena.sparql.exec.http.QueryExecutionHTTPBuilder; import org.apache.jena.sparql.exec.http.UpdateExecutionHTTP; import org.apache.jena.sparql.exec.http.UpdateExecutionHTTPBuilder; -import org.junit.After; -import org.junit.Before; /** * Common setup for running a server with an initially empty database with authentication by password file. @@ -44,7 +45,7 @@ public class AbstractTestAuth_JDK { protected String databaseURL() { return server.datasetURL(datasetPath()); } protected String serverURL() { return server.serverURL(); } - @Before public void startServer() { + @BeforeEach public void startServer() { String passwordFile = "testing/Access/auth-jdk-passwd"; DatasetGraph dsgTesting = DatasetGraphFactory.createTxnMem(); server = FusekiServer.create() @@ -57,7 +58,7 @@ public class AbstractTestAuth_JDK { server.start(); } - @After public void stopServer() { + @AfterEach public void stopServer() { if ( server != null ) server.stop(); } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/FusekiTestLib.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/FusekiTestLib.java index 7c539314fa..c57f85fa27 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/FusekiTestLib.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/FusekiTestLib.java @@ -18,7 +18,7 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.fail; import org.apache.jena.atlas.web.HttpException; import org.apache.jena.sparql.engine.http.QueryExceptionHTTP; diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TC_FusekiMain.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TC_FusekiMain.java deleted file mode 100644 index d79a974fbc..0000000000 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TC_FusekiMain.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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.main; - -import org.apache.jena.fuseki.main.access.TS_SecurityFuseki; -import org.junit.BeforeClass; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -@RunWith(Suite.class) [email protected]( { - TS_FusekiMain.class, - TS_SecurityFuseki.class -}) -public class TC_FusekiMain { - @BeforeClass public static void setupForFusekiServer() { - // controlled by src/test/resources/log4j.properties. -// LogCtl.setLevel(Fuseki.serverLogName, "WARN"); -// LogCtl.setLevel(Fuseki.actionLogName, "WARN"); -// LogCtl.setLevel(Fuseki.requestLogName, "WARN"); -// LogCtl.setLevel(Fuseki.adminLogName, "WARN"); -// LogCtl.setLevel("org.eclipse.jetty", "WARN"); - } -} diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TS_FusekiMain.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TS_FusekiMain.java index 92348e10d1..f2ba8dda13 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TS_FusekiMain.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TS_FusekiMain.java @@ -21,12 +21,11 @@ package org.apache.jena.fuseki.main; import org.junit.platform.suite.api.SelectClasses; import org.junit.platform.suite.api.Suite; -import org.apache.jena.fuseki.main.prefixes.PrefixesServiceTests; +import org.apache.jena.fuseki.main.prefixes.TS_PrefixesService; import org.apache.jena.fuseki.main.sys.TestFusekiModules; @Suite @SelectClasses({ - TestPlainServer.class // This tests modules and modifies the system state. @@ -55,7 +54,7 @@ import org.apache.jena.fuseki.main.sys.TestFusekiModules; , TestPatchFuseki.class , TestFusekiCustomScriptFunc.class - , PrefixesServiceTests.class + , TS_PrefixesService.class , TestMetrics.class , TestFusekiShaclValidation.class diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthQuery_JDK.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthQuery_JDK.java index 996bacc440..8c29bff30a 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthQuery_JDK.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthQuery_JDK.java @@ -26,7 +26,7 @@ import org.apache.jena.http.auth.AuthEnv; import org.apache.jena.sparql.exec.http.QueryExecutionHTTP; import org.junit.Assert; import org.junit.FixMethodOrder; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.runners.MethodSorters; @FixMethodOrder(MethodSorters.NAME_ASCENDING) diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthUpdate_JDK.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthUpdate_JDK.java index fe2becd3ca..d125091df9 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthUpdate_JDK.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthUpdate_JDK.java @@ -28,7 +28,7 @@ import org.apache.jena.update.UpdateFactory; import org.apache.jena.update.UpdateExecution; import org.apache.jena.update.UpdateRequest; import org.junit.FixMethodOrder; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.runners.MethodSorters; @FixMethodOrder(MethodSorters.NAME_ASCENDING) diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestConfigFile.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestConfigFile.java index bb891b7916..a0e8c17634 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestConfigFile.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestConfigFile.java @@ -20,10 +20,12 @@ package org.apache.jena.fuseki.main; import static org.apache.jena.fuseki.test.HttpTest.expect400; import static org.apache.jena.fuseki.test.HttpTest.expect404; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; +import org.junit.jupiter.api.Test; + import org.apache.jena.atlas.io.IO; import org.apache.jena.atlas.web.TypedInputStream; import org.apache.jena.base.Sys; @@ -34,7 +36,6 @@ import org.apache.jena.rdfconnection.RDFConnection; import org.apache.jena.rdfconnection.RDFConnectionRemote; import org.apache.jena.rdfconnection.RDFConnectionRemoteBuilder; import org.apache.jena.sparql.core.Var; -import org.junit.Test; /** Test server configuration by configuration file */ public class TestConfigFile { @@ -371,21 +372,21 @@ public class TestConfigFile { private static void assertCxtValueNotNull(RDFConnection conn, String contextSymbol) { boolean b = conn.queryAsk(PREFIXES+"ASK { FILTER (afn:context('"+contextSymbol+"') != '' ) }"); - assertTrue(contextSymbol, b); + assertTrue(b, contextSymbol); } private static void assertCxtValueNull(RDFConnection conn, String contextSymbol) { boolean b = conn.queryAsk(PREFIXES+"ASK { FILTER (afn:context('"+contextSymbol+"') = '' ) }"); - assertTrue("Not null: "+contextSymbol, b); + assertTrue(b, "Not null: "+contextSymbol); } private static void assertQueryTrue(RDFConnection conn, String qs) { boolean b = conn.queryAsk(PREFIXES+qs); - assertTrue(qs, b); + assertTrue(b, qs); } private static void assertQueryFalse(RDFConnection conn, String qs) { boolean b = conn.queryAsk(PREFIXES+qs); - assertFalse(qs, b); + assertFalse(b, qs); } private FusekiServer server(int port, String configFile) { diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestCrossOriginFilter.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestCrossOriginFilter.java index 34bc5303b3..624eca49cc 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestCrossOriginFilter.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestCrossOriginFilter.java @@ -20,10 +20,10 @@ package org.apache.jena.fuseki.main; import static org.apache.jena.fuseki.servlets.CrossOriginFilter.*; import static org.apache.jena.http.HttpLib.handleResponseNoBody; import static org.apache.jena.riot.web.HttpNames.*; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; import java.io.InputStream; @@ -39,14 +39,15 @@ import java.util.Optional; import java.util.Set; import java.util.function.Consumer; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + import org.apache.jena.atlas.lib.Lib; import org.apache.jena.atlas.web.WebLib; import org.apache.jena.fuseki.system.FusekiLogging; import org.apache.jena.http.HttpLib; import org.apache.jena.riot.web.HttpNames; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; /** * Integration tests for CORS handling. @@ -62,13 +63,13 @@ public class TestCrossOriginFilter { // private static String URL = null; private static Optional<String> systemValue = null; - @BeforeClass + @BeforeAll public static void beforeClass() { // Allow pretending to be another host systemValue = Optional.ofNullable(System.setProperty(jdkAllowRestrictedHeaders, "host")); } - @AfterClass + @AfterAll public static void afterClass() { if ( systemValue != null ) { systemValue.ifPresentOrElse((x)->System.setProperty(jdkAllowRestrictedHeaders, x), @@ -172,8 +173,9 @@ public class TestCrossOriginFilter { } private static void assertEqualsIgnoreCase(String allowCreds, String string) { - assertEquals("Not equals (ignoring case)", - Lib.lowercase(allowCreds), Lib.lowercase(string)); + assertEquals(Lib.lowercase(allowCreds), + Lib.lowercase(string), + "Not equals (ignoring case)"); } // Assumes no repeated but different case. @@ -215,7 +217,7 @@ public class TestCrossOriginFilter { assertNotNull(response); assertEquals(response.statusCode(), 200); String actualAllowedHeaders = HttpLib.responseHeader(response, HttpNames.hAccessControlAllowHeaders); - assertNotNull("Expecting valid headers", actualAllowedHeaders); + assertNotNull(actualAllowedHeaders, "Expecting valid headers"); assertEquals(expectedAllowedHeaders, actualAllowedHeaders); handleResponseNoBody(response); }); @@ -234,7 +236,7 @@ public class TestCrossOriginFilter { assertNotNull(response); assertEquals(response.statusCode(), 200); String actualAllowedHeaders = HttpLib.responseHeader(response, HttpNames.hAccessControlAllowHeaders); - assertNull("No headers expected given invalid request", actualAllowedHeaders); + assertNull(actualAllowedHeaders, "No headers expected given invalid request"); handleResponseNoBody(response); }); } @@ -254,7 +256,7 @@ public class TestCrossOriginFilter { assertNotNull(response); assertEquals(response.statusCode(), 200); String actualAllowedHeaders = HttpLib.responseHeader(response, HttpNames.hAccessControlAllowHeaders); - assertNotNull("Expecting valid headers", actualAllowedHeaders); + assertNotNull(actualAllowedHeaders, "Expecting valid headers"); assertEquals(expectedAllowedHeaders, actualAllowedHeaders); handleResponseNoBody(response); }); @@ -273,7 +275,7 @@ public class TestCrossOriginFilter { assertNotNull(response); assertEquals(response.statusCode(), 200); String actualAllowedHeaders = HttpLib.responseHeader(response, HttpNames.hAccessControlAllowHeaders); - assertNull("No headers expected given invalid request", actualAllowedHeaders); + assertNull(actualAllowedHeaders, "No headers expected given invalid request"); handleResponseNoBody(response); }); } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFileUpload.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFileUpload.java index 965f54a9da..957460c3fd 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFileUpload.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFileUpload.java @@ -18,7 +18,7 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import org.apache.jena.atlas.iterator.Iter; import org.apache.jena.atlas.web.TypedInputStream; @@ -35,7 +35,7 @@ import org.apache.jena.sparql.exec.http.GSP; import org.apache.jena.sparql.graph.GraphFactory; import org.apache.jena.web.FileSender; import org.apache.jena.web.HttpSC; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests for multi-part file upload. diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiCustomOperation.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiCustomOperation.java index c7dba503ff..fa19be5eb4 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiCustomOperation.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiCustomOperation.java @@ -19,7 +19,7 @@ package org.apache.jena.fuseki.main; import static org.apache.jena.fuseki.main.FusekiTestLib.expectFail; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.net.http.HttpRequest.BodyPublishers; @@ -45,7 +45,7 @@ import org.apache.jena.riot.WebContent; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.DatasetGraphFactory; import org.apache.jena.web.HttpSC; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** Test for adding a new operation */ public class TestFusekiCustomOperation { @@ -166,20 +166,24 @@ public class TestFusekiCustomOperation { testServer(server, url, "", false, true); } - @Test(expected = FusekiConfigException.class) + @Test public void cfg_bad_01() { - FusekiServer.create().port(port).registerOperation(newOp, null, customHandler).addEndpoint("/UNKNOWN", endpointName, newOp); - // .build(); + assertThrows(FusekiConfigException.class, ()-> + FusekiServer.create().port(port).registerOperation(newOp, null, customHandler).addEndpoint("/UNKNOWN", endpointName, newOp) + // .build(); + ); } - @Test(expected = FusekiConfigException.class) + @Test public void cfg_bad_02() { - FusekiServer.create().port(port) - // .registerOperation(newOp, null, customHandler) - .add("/ds", DatasetGraphFactory.createTxnMem(), true) - // Unregistered. - .addEndpoint("/ds", endpointName, newOp); - // .build(); + assertThrows(FusekiConfigException.class, ()-> + FusekiServer.create().port(port) + // .registerOperation(newOp, null, customHandler) + .add("/ds", DatasetGraphFactory.createTxnMem(), true) + // Unregistered. + .addEndpoint("/ds", endpointName, newOp) + // .build(); + ); } // Bad test: MIME type must match. diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiCustomScriptFunc.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiCustomScriptFunc.java index d6b0a82f2d..f3f0d3dc46 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiCustomScriptFunc.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiCustomScriptFunc.java @@ -18,8 +18,12 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.apache.jena.atlas.lib.StrUtils; import org.apache.jena.fuseki.server.DataService; @@ -36,9 +40,6 @@ import org.apache.jena.sparql.function.scripting.ScriptLangSymbols; import org.apache.jena.sparql.util.Context; import org.apache.jena.sparql.util.Symbol; import org.apache.jena.sys.JenaSystem; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; public class TestFusekiCustomScriptFunc { @@ -56,7 +57,7 @@ public class TestFusekiCustomScriptFunc { private static String dsName = "/ds" ; private static FusekiServer server = null; - @BeforeClass public static void enableScripting() { + @BeforeAll public static void enableScripting() { systemPropertyScriptingOldValue = System.getProperty(ARQ.systemPropertyScripting); scriptFunctionsOldValue = ARQ.getContext().get(symFunctions); // Enable @@ -79,7 +80,7 @@ public class TestFusekiCustomScriptFunc { .build().start(); } - @AfterClass public static void disableScripting() { + @AfterAll public static void disableScripting() { if ( server != null ) server.stop(); if ( systemPropertyScriptingOldValue != null ) diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiDatasetSharing.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiDatasetSharing.java index 3e075954ad..f89465d831 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiDatasetSharing.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiDatasetSharing.java @@ -18,14 +18,18 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.HashSet; import java.util.List; import java.util.Set; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + import org.apache.jena.graph.Graph; import org.apache.jena.riot.Lang; import org.apache.jena.riot.RDFParser; @@ -33,16 +37,10 @@ import org.apache.jena.sparql.core.assembler.NamedDatasetAssembler; import org.apache.jena.sparql.exec.http.GSP; import org.apache.jena.sparql.sse.SSE; import org.apache.jena.sys.JenaSystem; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.FixMethodOrder; -import org.junit.Test; -import org.junit.runners.MethodSorters; /** * Testing configurations involving shared datasets */ -@FixMethodOrder(MethodSorters.NAME_ASCENDING) public class TestFusekiDatasetSharing { static { JenaSystem.init(); @@ -63,7 +61,7 @@ public class TestFusekiDatasetSharing { private static String URL_ds_view_unnamed_1; private static String URL_ds_view_unnamed_2; - @BeforeClass public static void beforeClass() { + @BeforeAll public static void beforeClass() { NamedDatasetAssembler.sharedDatasetPool.clear(); Graph g = RDFParser.source(DIR+"ds-sharing.ttl").lang(Lang.TTL).toGraph(); @@ -103,7 +101,7 @@ public class TestFusekiDatasetSharing { assertEquals(all1.size(), all2.size()); } - @AfterClass public static void afterClass() { + @AfterAll public static void afterClass() { if ( server != null ) server.stop(); NamedDatasetAssembler.sharedDatasetPool.clear(); @@ -162,9 +160,8 @@ public class TestFusekiDatasetSharing { Graph data2 = GSP.service(URL2).defaultGraph().GET(); if ( canSee ) - assertFalse(msg, data2.isEmpty()); + assertFalse(data2.isEmpty(),msg); else - assertTrue(msg,data2.isEmpty()); + assertTrue(data2.isEmpty(), msg); } - } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmd.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmd.java index c32fcda6d0..27133a93de 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmd.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmd.java @@ -18,9 +18,9 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.IOException; import java.util.Arrays; @@ -35,7 +35,7 @@ import org.apache.jena.http.HttpOp; import org.apache.jena.query.ResultSetFormatter; import org.apache.jena.rdfconnection.RDFConnection; import org.junit.After; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Test Fuseki Main command line. diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmdArguments.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmdArguments.java index f8afce0dc1..d38b2d1b3a 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmdArguments.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmdArguments.java @@ -18,13 +18,18 @@ package org.apache.jena.fuseki.main; import static java.util.Collections.emptyList; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.List; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + import org.apache.jena.atlas.logging.LogCtl; import org.apache.jena.atlas.web.WebLib; import org.apache.jena.cmd.CmdException; @@ -34,11 +39,6 @@ import org.apache.jena.fuseki.main.cmds.ServerArgs; import org.apache.jena.fuseki.system.FusekiLogging; import org.apache.jena.riot.SysRIOT; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - /** * NOTE: we will randomise the port (--port=0) on all happy paths in order to avoid conflict with existing runs. */ @@ -48,7 +48,7 @@ public class TestFusekiMainCmdArguments { private static File jettyConfigFile; private static String jettyConfigFilename; - @BeforeClass public static void beforeClass() throws IOException { + @BeforeAll public static void beforeClass() throws IOException { // This is not reset by each running server. FusekiLogging.setLogging(); level = LogCtl.getLevel(Fuseki.serverLog); @@ -59,14 +59,14 @@ public class TestFusekiMainCmdArguments { jettyConfigFilename = jettyConfigFile.getAbsolutePath(); } - @AfterClass public static void afterClass() { + @AfterAll public static void afterClass() { if ( level != null ) LogCtl.setLevel(Fuseki.serverLog, level); jettyConfigFile.delete(); } private FusekiServer server = null; - @After public void after() { + @AfterEach public void after() { if ( server != null ) server.stop(); } @@ -76,8 +76,8 @@ public class TestFusekiMainCmdArguments { @Test public void argDefaults() { ServerArgs serverArgs = new ServerArgs(); - assertFalse("Wrong default setting: allowEmpty", serverArgs.allowEmpty); - assertFalse("Wrong default setting: bypassStdArgs", serverArgs.bypassStdArgs); + assertFalse(serverArgs.allowEmpty, "Wrong default setting: allowEmpty"); + assertFalse(serverArgs.bypassStdArgs, "Wrong default setting: bypassStdArgs"); } @Test @@ -165,16 +165,10 @@ public class TestFusekiMainCmdArguments { String emptyString = ""; String expectedMessage = "No dataset or configuration specified on the command line"; // when - Throwable actual = null; - try { - buildServer(emptyString); - } catch (Exception e) { - actual = e; - } + CmdException actual = assertThrows(CmdException.class, ()-> buildServer(emptyString)); + // then - assertNotNull(actual); - assertTrue("Expecting correct exception", (actual instanceof CmdException)); - assertEquals("Expecting correct message", expectedMessage, actual.getMessage()); + assertEquals(expectedMessage, actual.getMessage(), "Expecting correct message"); } @Test @@ -183,16 +177,9 @@ public class TestFusekiMainCmdArguments { String nullString = null; String expectedMessage = "No dataset or configuration specified on the command line"; // when - Throwable actual = null; - try { - buildServer(nullString); - } catch (Exception e) { - actual = e; - } + CmdException actual = assertThrows(CmdException.class, ()-> buildServer(nullString)); // then - assertNotNull(actual); - assertTrue("Expecting correct exception", (actual instanceof CmdException)); - assertEquals("Expecting correct message", expectedMessage, actual.getMessage()); + assertEquals(expectedMessage, actual.getMessage(), "Expecting correct message"); } @Test @@ -447,7 +434,7 @@ public class TestFusekiMainCmdArguments { // when CmdException actual = assertThrows(CmdException.class, ()->buildServer(buildCmdLineArguments(arguments))); // then - assertEquals("Expecting correct message", expectedMessage, actual.getMessage()); + assertEquals(expectedMessage, actual.getMessage(), "Expecting correct message"); } private static String[] buildCmdLineArguments(List<String> listArgs) { diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmdCustomArguments.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmdCustomArguments.java index e2708b153d..aa64bc5f77 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmdCustomArguments.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiMainCmdCustomArguments.java @@ -23,9 +23,9 @@ import static org.junit.jupiter.api.Assertions.*; import java.util.function.Consumer; import org.junit.After; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.apache.jena.atlas.logging.LogCtl; import org.apache.jena.cmd.ArgDecl; @@ -61,13 +61,13 @@ public class TestFusekiMainCmdCustomArguments { private static String level = null; - @BeforeClass public static void beforeClass() { + @BeforeAll public static void beforeClass() { FusekiLogging.setLogging(); level = LogCtl.getLevel(Fuseki.serverLog); LogCtl.setLevel(Fuseki.serverLog, "WARN"); } - @AfterClass public static void afterClass() { + @AfterAll public static void afterClass() { if ( level != null ) LogCtl.setLevel(Fuseki.serverLog, level); } @@ -85,10 +85,10 @@ public class TestFusekiMainCmdCustomArguments { test(new ArgDecl(false, "special"), arguments, false, null); } - @Test(expected = CmdException.class) + @Test public void test_custom_no_custom_args_decl() { String[] arguments = {"--port=0", "--special", "--mem","/ds"}; - FusekiServer server = FusekiMain.build(arguments); + assertThrows(CmdException.class, ()->FusekiMain.build(arguments)); } @Test diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiServerBuild.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiServerBuild.java index 611ca3a80e..6cd6786195 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiServerBuild.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiServerBuild.java @@ -22,7 +22,7 @@ import static org.apache.jena.fuseki.main.FusekiTestLib.expect400; import static org.apache.jena.fuseki.main.FusekiTestLib.expect404; import static org.apache.jena.fuseki.main.FusekiTestLib.expectQuery400; import static org.apache.jena.fuseki.main.FusekiTestLib.expectQuery404; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.util.function.Consumer; @@ -53,7 +53,7 @@ import org.apache.jena.sparql.exec.http.QueryExecHTTP; import org.apache.jena.sparql.sse.SSE; import org.apache.jena.system.Txn; import org.apache.jena.update.UpdateExecution; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; public class TestFusekiServerBuild { diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiShaclValidation.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiShaclValidation.java index a4d09747aa..4a62dc73f3 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiShaclValidation.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiShaclValidation.java @@ -18,17 +18,18 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.apache.jena.graph.Graph; import org.apache.jena.http.HttpRDF; import org.apache.jena.rdfconnection.RDFConnection; import org.apache.jena.riot.RDFDataMgr; import org.apache.jena.shacl.ValidationReport; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; public class TestFusekiShaclValidation { // Fuseki Main server @@ -36,7 +37,7 @@ public class TestFusekiShaclValidation { private static String serverURL = null; private static final String DIR = "testing/ShaclValidation/"; - @BeforeClass + @BeforeAll public static void beforeClass() { FusekiServer server = FusekiServer.create() .port(0) @@ -46,7 +47,7 @@ public class TestFusekiShaclValidation { serverURL = "http://localhost:"+server.getPort(); } - @AfterClass + @AfterAll public static void afterClass() { if ( server != null ) server.stop(); diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiStdReadOnlySetup.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiStdReadOnlySetup.java index fe16e1d569..6c38f43138 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiStdReadOnlySetup.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiStdReadOnlySetup.java @@ -20,9 +20,9 @@ package org.apache.jena.fuseki.main; import java.util.function.Consumer; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.apache.jena.atlas.lib.StrUtils; import org.apache.jena.atlas.web.HttpException; @@ -48,7 +48,7 @@ public class TestFusekiStdReadOnlySetup { private static String URL; - @BeforeClass + @BeforeAll public static void beforeClass() { data = SSE.parseGraph(StrUtils.strjoinNL ("(graph" @@ -68,7 +68,7 @@ public class TestFusekiStdReadOnlySetup { URL = server.datasetURL("/ds"); } - @AfterClass + @AfterAll public static void afterClass() { if ( server != null ) server.stop(); diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiStdSetup.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiStdSetup.java index ecd71d6b50..17d8c0f8e1 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiStdSetup.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFusekiStdSetup.java @@ -20,9 +20,9 @@ package org.apache.jena.fuseki.main; import java.util.function.Consumer; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.apache.jena.atlas.lib.StrUtils; import org.apache.jena.atlas.web.HttpException; @@ -47,7 +47,7 @@ public class TestFusekiStdSetup { private static String URL; - @BeforeClass + @BeforeAll public static void beforeClass() { data = SSE.parseGraph(StrUtils.strjoinNL ("(graph" @@ -67,7 +67,7 @@ public class TestFusekiStdSetup { URL = server.datasetURL("/ds"); } - @AfterClass + @AfterAll public static void afterClass() { if ( server != null ) server.stop(); diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestHttpOperations.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestHttpOperations.java index 478a10c737..bfb6dd4341 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestHttpOperations.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestHttpOperations.java @@ -18,8 +18,8 @@ package org.apache.jena.fuseki.main; - import static java.net.http.HttpRequest.BodyPublishers.ofString; +import static org.junit.jupiter.api.Assertions.*; import org.apache.jena.atlas.web.HttpException; import org.apache.jena.atlas.web.TypedInputStream; @@ -27,8 +27,7 @@ import org.apache.jena.http.HttpOp; import org.apache.jena.riot.WebContent; import org.apache.jena.sparql.exec.http.Params; import org.apache.jena.sparql.util.Convert; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** Operation by HTTP - test dispatch - lower level than TestSPARQLProtocol */ public class TestHttpOperations extends AbstractFusekiTest { @@ -38,7 +37,7 @@ public class TestHttpOperations extends AbstractFusekiTest { String qs = Convert.encWWWForm("ASK{}"); String u = serviceQuery()+"?query=" + qs; try (TypedInputStream in = HttpOp.httpGet(u)) { - Assert.assertNotNull(in); + assertNotNull(in); } } @@ -48,7 +47,7 @@ public class TestHttpOperations extends AbstractFusekiTest { try (TypedInputStream in = HttpOp.httpPostStream(serviceQuery(), WebContent.contentTypeSPARQLQuery, ofString("ASK{}"), "*")) { - Assert.assertNotNull(in); + assertNotNull(in); } } @@ -57,7 +56,7 @@ public class TestHttpOperations extends AbstractFusekiTest { String qs = Convert.encWWWForm("ASK{}"); String u = serviceQuery()+"?query=" + qs; try (TypedInputStream in = HttpOp.httpPostStream(u)) { - Assert.assertNotNull(in); + assertNotNull(in); } } @@ -65,16 +64,18 @@ public class TestHttpOperations extends AbstractFusekiTest { public void query_by_form_1() { Params params = Params.create().add("query", "ASK{}"); try (TypedInputStream in = HttpOp.httpPostForm(serviceQuery(), params, "*") ) { - Assert.assertNotNull(in); + assertNotNull(in); } } - @Test(expected=HttpException.class) + @Test public void query_by_form_2() { Params params = Params.create().add("foobar", "ASK{}"); // Wrong. - try (TypedInputStream in = HttpOp.httpPostForm(serviceQuery(), params, "*") ) { - Assert.assertNotNull(in); - } + assertThrows(HttpException.class, ()->{ + try (TypedInputStream in = HttpOp.httpPostForm(serviceQuery(), params, "*") ) { + assertNotNull(in); + }; + }); } @Test @@ -88,7 +89,7 @@ public class TestHttpOperations extends AbstractFusekiTest { // String us = Convert.encWWWForm("INSERT DATA {}"); // String u = serviceUpdate+"?update=" + us; // try (TypedInputStream in = HttpOp.execHttpPostStream(u, null, null)) { -// Assert.assertNotNull(in); +// assertNotNull(in); // } // } @@ -96,16 +97,18 @@ public class TestHttpOperations extends AbstractFusekiTest { public void update_by_form_1() { Params params = Params.create().add("update", "INSERT DATA{}"); try (TypedInputStream in = HttpOp.httpPostForm(serviceUpdate(), params, "*") ) { - Assert.assertNotNull(in); + assertNotNull(in); } } - @Test(expected=HttpException.class) + @Test public void update_by_form_2() { Params params = Params.create().add("query", "INSERT DATA{}"); // Wrong paramater - try (TypedInputStream in = HttpOp.httpPostForm(serviceUpdate(), params, "*") ) { - Assert.assertNotNull(in); - } + assertThrows(HttpException.class, ()->{ + try (TypedInputStream in = HttpOp.httpPostForm(serviceUpdate(), params, "*") ) { + assertNotNull(in); + } + }); } // ---- Dataset direct, with content type. @@ -114,7 +117,7 @@ public class TestHttpOperations extends AbstractFusekiTest { public void ds_fetch_by_get_1() { String u = databaseURL(); try (TypedInputStream in = HttpOp.httpGet(u)) { - Assert.assertNotNull(in); + assertNotNull(in); } } @@ -122,7 +125,7 @@ public class TestHttpOperations extends AbstractFusekiTest { public void ds_query_by_post_1() { String u = databaseURL(); try (TypedInputStream in = HttpOp.httpPostStream(u, WebContent.contentTypeSPARQLQuery, ofString("ASK{}"), "*")) { - Assert.assertNotNull(in); + assertNotNull(in); } } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestHttpOptions.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestHttpOptions.java index 69af53e601..cc0d1e4a87 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestHttpOptions.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestHttpOptions.java @@ -20,7 +20,7 @@ package org.apache.jena.fuseki.main; import org.apache.jena.fuseki.test.FusekiTest; import org.apache.jena.http.HttpOp; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TestHttpOptions extends AbstractFusekiTest { diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMetrics.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMetrics.java index 841626938b..c473c18aaa 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMetrics.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMetrics.java @@ -18,7 +18,7 @@ package org.apache.jena.fuseki.main; import static org.apache.jena.http.HttpLib.handleResponseRtnString; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.InputStream; import java.net.http.HttpRequest; @@ -29,7 +29,7 @@ import org.apache.jena.http.HttpEnv; import org.apache.jena.http.HttpLib; import org.apache.jena.riot.WebContent; import org.apache.jena.riot.web.HttpNames; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TestMetrics extends AbstractFusekiTest { diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMultipleEmbedded.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMultipleEmbedded.java index d056a3c3c9..92559b38ae 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMultipleEmbedded.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMultipleEmbedded.java @@ -18,8 +18,9 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.function.Consumer; @@ -35,7 +36,7 @@ import org.apache.jena.sparql.exec.http.QueryExecHTTP; import org.apache.jena.sparql.sse.SSE; import org.apache.jena.sys.JenaSystem; import org.apache.jena.system.Txn; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TestMultipleEmbedded { @@ -45,7 +46,7 @@ public class TestMultipleEmbedded { static Quad q2 = SSE.parseQuad("(_ :s :p 2)"); // Two servers, same port -> bad. - @Test(expected=FusekiException.class) + @Test public void multiple_01() { DatasetGraph dsg = dataset(); @@ -54,18 +55,15 @@ public class TestMultipleEmbedded { // Same port - Bad. FusekiServer server2 = FusekiServer.create().port(port).add("/ds2", dsg).build(); - server1.start(); - try { - server2.start(); - } catch (FusekiException ex) { + server1.start(); + FusekiException ex = assertThrows(FusekiException.class, ()->server2.start()); // Jetty 9.4.12 throws BindException // Jetty 9.4.26 throws IOException cause BindException Throwable cause = ex.getCause(); if ( cause instanceof java.io.IOException ) cause = cause.getCause(); assertTrue(cause instanceof java.net.BindException); - throw ex; } finally { try { server1.stop(); } catch (Exception ex) {} try { server2.stop(); } catch (Exception ex) {} diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestPatchFuseki.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestPatchFuseki.java index 503fecc157..1bccb04f49 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestPatchFuseki.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestPatchFuseki.java @@ -17,9 +17,9 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.net.http.HttpRequest.BodyPublishers; import java.util.function.BiConsumer; @@ -39,7 +39,7 @@ import org.apache.jena.sparql.exec.RowSet; import org.apache.jena.sparql.exec.RowSetOps; import org.apache.jena.sparql.exec.http.QueryExecHTTP; import org.apache.jena.sparql.sse.SSE; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TestPatchFuseki { diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestPlainServer.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestPlainServer.java index 424cda1007..3831aca619 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestPlainServer.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestPlainServer.java @@ -18,22 +18,22 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; - import org.apache.jena.http.HttpOp; import org.apache.jena.sparql.core.DatasetGraphFactory; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; /** Test Fuseki with plain servlet and handling a file area */ public class TestPlainServer { @@ -43,7 +43,7 @@ public class TestPlainServer { private static String serverURL; - @BeforeClass + @BeforeAll public static void beforeClass() { FusekiServer server = FusekiServer.create() .port(0) @@ -76,7 +76,7 @@ public class TestPlainServer { } } - @AfterClass + @AfterAll public static void afterClass() { if ( server != null ) server.stop(); diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java index fe13606695..60d4c392e3 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java @@ -18,9 +18,9 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.*; import java.net.HttpURLConnection; @@ -28,9 +28,8 @@ import java.net.URL; import java.net.http.HttpClient; import java.util.Iterator; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.apache.jena.atlas.json.JsonArray; import org.apache.jena.atlas.web.AcceptList; @@ -62,7 +61,7 @@ public class TestQuery extends AbstractFusekiTest { private static final Graph graph1 = SSE.parseGraph("(base <http://example/> (graph (<x> <p> 1)))"); private static final Graph graph2 = SSE.parseGraph("(base <http://example/> (graph (<x> <p> 2)))"); - @Before + @BeforeEach public void before() { GSP.service(serviceGSP()).defaultGraph().PUT(graph1); GSP.service(serviceGSP()).graphName(gn1).PUT(graph2); @@ -89,7 +88,7 @@ public class TestQuery extends AbstractFusekiTest { Var x = Var.alloc("x"); while (rs.hasNext()) { Binding b = rs.nextBinding(); - Assert.assertNotNull(b.get(x)); + assertNotNull(b.get(x)); } } finally { Fuseki.getContext().set(Service.httpServiceAllowed, serverSetting); @@ -101,7 +100,7 @@ public class TestQuery extends AbstractFusekiTest { String query = "ASK { }"; try (QueryExecution qExec = QueryExecution.service(serviceQuery() + "?output=json", query)) { boolean result = qExec.execAsk(); - Assert.assertTrue(result); + assertTrue(result); } } @@ -110,7 +109,7 @@ public class TestQuery extends AbstractFusekiTest { String qs = Convert.encWWWForm("ASK{}"); URL u = new URL(serviceQuery() + "?query=" + qs); HttpURLConnection conn = (HttpURLConnection)u.openConnection(); - Assert.assertTrue(conn.getHeaderField(Fuseki.FusekiRequestIdHeader) != null); + assertTrue(conn.getHeaderField(Fuseki.FusekiRequestIdHeader) != null); } @Test @@ -155,8 +154,8 @@ public class TestQuery extends AbstractFusekiTest { try ( QueryExecutionHTTP qExec = QueryExecutionHTTP.service(serviceQuery(), query) ) { Iterator<Quad> result = qExec.execConstructQuads(); - Assert.assertTrue(result.hasNext()); - Assert.assertEquals( "http://eg/g", result.next().getGraph().getURI()); + assertTrue(result.hasNext()); + assertEquals( "http://eg/g", result.next().getGraph().getURI()); } } @@ -169,8 +168,8 @@ public class TestQuery extends AbstractFusekiTest { try ( QueryExecution qExec = QueryExecution.service(serviceQuery(), query) ) { Dataset result = qExec.execConstructDataset(); - Assert.assertTrue(result.asDatasetGraph().find().hasNext()); - Assert.assertEquals( "http://eg/g", result.asDatasetGraph().find().next().getGraph().getURI()); + assertTrue(result.asDatasetGraph().find().hasNext()); + assertEquals( "http://eg/g", result.asDatasetGraph().find().next().getGraph().getURI()); } } @@ -180,7 +179,7 @@ public class TestQuery extends AbstractFusekiTest { String query = " CONSTRUCT {?s ?p ?o} WHERE {?s ?p ?o}"; try ( QueryExecution qExec = QueryExecution.service(serviceQuery(), query) ) { Iterator<Triple> result = qExec.execConstructTriples(); - Assert.assertTrue(result.hasNext()); + assertTrue(result.hasNext()); } } @@ -302,8 +301,8 @@ public class TestQuery extends AbstractFusekiTest { } result = sb.toString(); } - Assert.assertNotNull(result); - Assert.assertTrue(result.contains("http://example/x")); + assertNotNull(result); + assertTrue(result.contains("http://example/x")); } private void execQuery(String queryString, int exceptedRowCount) { @@ -318,7 +317,7 @@ public class TestQuery extends AbstractFusekiTest { try ( QueryExecution qExec = QueryExecution.service(serviceQuery(), queryString) ) { ResultSet rs = qExec.execSelect(); boolean b = ResultSetCompare.equalsByTerm(rs, expectedResultSet); - assertTrue("Result sets different", b); + assertTrue(b, "Result sets different"); } } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestSPARQLProtocol.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestSPARQLProtocol.java index 109cc2fc1d..fd27f70e1c 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestSPARQLProtocol.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestSPARQLProtocol.java @@ -18,15 +18,16 @@ package org.apache.jena.fuseki.main; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.apache.jena.graph.Graph; import org.apache.jena.graph.Node; import org.apache.jena.graph.NodeFactory; -import org.apache.jena.query.*; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryFactory; import org.apache.jena.riot.WebContent; import org.apache.jena.sparql.exec.QueryExec; import org.apache.jena.sparql.exec.RowSet; @@ -50,7 +51,7 @@ public class TestSPARQLProtocol extends AbstractFusekiTest private static final Graph graph1 = SSE.parseGraph("(base <http://example/> (graph (<x> <p> 1)))"); private static final Graph graph2 = SSE.parseGraph("(base <http://example/> (graph (<x> <p> 2)))"); - @Before + @BeforeEach public void before() { GSP.service(serviceGSP()).defaultGraph().PUT(graph1); GSP.service(serviceGSP()).graphName(gn1).PUT(graph2); diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestSPARQLProtocolTimeout.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestSPARQLProtocolTimeout.java index ee80f16159..5a89f8ea9b 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestSPARQLProtocolTimeout.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestSPARQLProtocolTimeout.java @@ -18,9 +18,14 @@ package org.apache.jena.fuseki.main; +import static org.junit.jupiter.api.Assertions.assertThrows; + import java.util.concurrent.TimeUnit; import java.util.stream.IntStream; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import org.apache.jena.atlas.web.HttpException; import org.apache.jena.graph.Graph; import org.apache.jena.graph.NodeFactory; @@ -28,12 +33,10 @@ import org.apache.jena.sparql.exec.http.GSP; import org.apache.jena.sparql.graph.GraphFactory; import org.apache.jena.sparql.util.Convert; import org.apache.jena.update.UpdateExecution; -import org.junit.Before; -import org.junit.Test; public class TestSPARQLProtocolTimeout extends AbstractFusekiTest { - @Before + @BeforeEach public void before() { Graph graph = createTestGraph(); GSP.service(serviceGSP()).defaultGraph().PUT(graph); @@ -54,11 +57,13 @@ public class TestSPARQLProtocolTimeout extends AbstractFusekiTest /** If the HTTP client reaches its timeout and disconnects from the server then it is up * to the server whether it will cancel or complete the started SPARQL update execution. */ - @Test(expected = HttpException.class) + @Test public void update_timeout_01() { - UpdateExecution.service(serviceUpdate()) - .update("INSERT { } WHERE { ?a ?b ?c . ?d ?e ?f . ?g ?h ?i . }") - .timeout(500, TimeUnit.MILLISECONDS) - .execute(); + assertThrows(HttpException.class, ()-> + UpdateExecution.service(serviceUpdate()) + .update("INSERT { } WHERE { ?a ?b ?c . ?d ?e ?f . ?g ?h ?i . }") + .timeout(500, TimeUnit.MILLISECONDS) + .execute() + ); } } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestFusekiSecurityAssembler.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestFusekiSecurityAssembler.java index ade33038b7..9d00a6f742 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestFusekiSecurityAssembler.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestFusekiSecurityAssembler.java @@ -19,8 +19,8 @@ package org.apache.jena.fuseki.main.access; import static org.apache.jena.fuseki.main.access.AccessTestLib.assertSeen; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; import java.util.HashSet; import java.util.List; @@ -28,6 +28,10 @@ import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicReference; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import org.apache.jena.atlas.iterator.Iter; import org.apache.jena.atlas.lib.SetUtils; import org.apache.jena.atlas.lib.StrUtils; @@ -48,9 +52,6 @@ import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.Quad; import org.apache.jena.sparql.sse.SSE; import org.apache.jena.system.Txn; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.Test; /** * Tests on the assembler for data access control. @@ -78,13 +79,14 @@ public abstract class AbstractTestFusekiSecurityAssembler { return server; } - @AfterClass public static void afterClass() { + @AfterAll + public static void afterClass() { server.stop(); server = null; user.set(null); } - @Before + @BeforeEach public void before() { user.set(null); } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestServiceDatasetAuth.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestServiceDatasetAuth.java index 4f03c952e6..ac5d0fd3f7 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestServiceDatasetAuth.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestServiceDatasetAuth.java @@ -23,7 +23,7 @@ import static org.apache.jena.fuseki.main.FusekiTestLib.expectOK; import static org.apache.jena.fuseki.main.FusekiTestLib.expectQuery401; import static org.apache.jena.fuseki.main.FusekiTestLib.expectQuery403; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.apache.jena.atlas.web.WebLib; import org.apache.jena.fuseki.main.FusekiServer; diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AccessTestLib.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AccessTestLib.java index 4b32c450e2..91b65ce01a 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AccessTestLib.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AccessTestLib.java @@ -18,7 +18,7 @@ package org.apache.jena.fuseki.main.access; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Arrays; import java.util.Set; @@ -31,7 +31,6 @@ import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.sse.SSE; import org.apache.jena.system.Txn; - /** Some data and functions common to access control tests. */ public class AccessTestLib { private static String dataStr = StrUtils.strjoinNL diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TS_SecurityFuseki.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TS_SecurityFuseki.java index 0852f23f94..af2bf7f68c 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TS_SecurityFuseki.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TS_SecurityFuseki.java @@ -18,11 +18,11 @@ package org.apache.jena.fuseki.main.access; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; +import org.junit.platform.suite.api.SelectClasses; +import org.junit.platform.suite.api.Suite; -@RunWith(Suite.class) [email protected]( { +@Suite +@SelectClasses({ TestAuthorized.class , TestSimpleBearer.class diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestAuthorized.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestAuthorized.java index 752e4a08c4..43b93510ac 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestAuthorized.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestAuthorized.java @@ -18,12 +18,12 @@ package org.apache.jena.fuseki.main.access; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.apache.jena.atlas.logging.LogCtl; import org.apache.jena.fuseki.Fuseki; diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestPasswdOnly.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestPasswdOnly.java index 32436580ab..c7db6978b9 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestPasswdOnly.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestPasswdOnly.java @@ -20,10 +20,11 @@ package org.apache.jena.fuseki.main.access; import static org.apache.jena.fuseki.main.FusekiTestLib.expectOK; import static org.apache.jena.fuseki.main.FusekiTestLib.expectQuery401; +import static org.junit.jupiter.api.Assertions.assertThrows; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.apache.jena.atlas.web.WebLib; import org.apache.jena.fuseki.main.FusekiServer; @@ -44,7 +45,7 @@ public class TestPasswdOnly { protected static int port; private static AuthSetup auth1; - @BeforeClass public static void beforeClass () { + @BeforeAll public static void beforeClass () { port = WebLib.choosePort(); server = FusekiServer.create() //.verbose(true) @@ -59,18 +60,20 @@ public class TestPasswdOnly { auth1 = new AuthSetup("localhost", port, "user1", "pw1", null); } - @AfterClass public static void afterClass () { + @AfterAll public static void afterClass () { server.stop(); } // Bounced by Jetty. - @Test(expected=QueryExceptionHTTP.class) + @Test public void passwd_no_user_A() { - try (RDFLink conn = RDFLink.queryConnect("http://localhost:" + port + "/db")) { - try ( QueryExec qExec = conn.query("ASK{}") ) { - qExec.ask(); + assertThrows(QueryExceptionHTTP.class, () -> { + try (RDFLink conn = RDFLink.queryConnect("http://localhost:" + port + "/db")) { + try (QueryExec qExec = conn.query("ASK{}")) { + qExec.ask(); + } } - } + }); } @Test diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityBuilderSetup.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityBuilderSetup.java index ff7a425f73..4f806681e5 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityBuilderSetup.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityBuilderSetup.java @@ -18,12 +18,17 @@ package org.apache.jena.fuseki.main.access; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.fail; import java.net.http.HttpClient; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import org.apache.jena.atlas.web.HttpException; import org.apache.jena.atlas.web.TypedInputStream; import org.apache.jena.atlas.web.WebLib; @@ -40,10 +45,6 @@ import org.apache.jena.web.AuthSetup; import org.apache.jena.web.HttpSC; import org.eclipse.jetty.ee10.servlet.security.ConstraintSecurityHandler; import org.eclipse.jetty.security.UserStore; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; /** * Tests for access to services using programmatic setup. @@ -62,7 +63,7 @@ public class TestSecurityBuilderSetup { // Not in the user store. private static AuthSetup authSetupX; - @BeforeClass + @BeforeAll public static void beforeClass() { int port = WebLib.choosePort(); @@ -109,14 +110,14 @@ public class TestSecurityBuilderSetup { } - @Before + @BeforeEach public void before() { // // Reset before every test and after the suite. // HttpClient hc = HttpOp.createDefaultHttpClient(); // HttpOp.setDefaultHttpClient(hc); } - @AfterClass + @AfterAll public static void afterClass() { fusekiServer.stop(); // HttpClient hc = HttpOp.createDefaultHttpClient(); diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityConfig.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityConfig.java index b68f9c00a1..02377d44f2 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityConfig.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityConfig.java @@ -20,14 +20,16 @@ package org.apache.jena.fuseki.main.access; import static org.apache.jena.fuseki.test.HttpTest.expectQuery401; import static org.apache.jena.fuseki.test.HttpTest.expectQuery403; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; import java.io.IOException; import java.io.InputStream; import java.net.http.HttpClient; import java.util.function.Consumer; +import org.junit.jupiter.api.Test; + import org.apache.jena.atlas.io.IO; import org.apache.jena.atlas.web.HttpException; import org.apache.jena.atlas.web.TypedInputStream; @@ -39,7 +41,6 @@ import org.apache.jena.rdfconnection.RDFConnectionRemote; import org.apache.jena.sparql.exec.http.QueryExecHTTP; import org.apache.jena.web.AuthSetup; import org.apache.jena.web.HttpSC; -import org.junit.Test; /** * Tests for security of the server, services and endpoints using configuration file setup. diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityFilterFuseki.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityFilterFuseki.java index 5bb7f2ae4f..315e80c15e 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityFilterFuseki.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSecurityFilterFuseki.java @@ -19,17 +19,20 @@ package org.apache.jena.fuseki.main.access; import static org.apache.jena.fuseki.main.access.AccessTestLib.*; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; -import java.util.*; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Stream; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.apache.jena.atlas.iterator.Iter; import org.apache.jena.atlas.web.HttpException; @@ -57,18 +60,20 @@ import org.eclipse.jetty.security.UserStore; import org.eclipse.jetty.util.security.Credential; import org.eclipse.jetty.util.security.Password; -@RunWith(Parameterized.class) public class TestSecurityFilterFuseki { - @Parameters(name = "{index}: {0}") - public static Iterable<Object[]> data() { - Object[] obj1 = { "TDB", "data1" }; - Object[] obj2 = { "TDB2", "data2" }; - Object[] obj3 = { "TIM", "data3" }; - return Arrays.asList(obj1, obj2, obj3); + private static Stream<Arguments> provideTestArgs() { + return Stream.of( +// Arguments.of("TDB", "data1"), +// Arguments.of("TDB2", "data2"), + Arguments.of("TIM", "data3") + ); + } + + private String baseUrl(String dsName) { + return fusekiServer.datasetURL(dsName); } - private final String baseUrl; private static DatasetGraph testdsg1 = TDB1Factory.createDatasetGraph(); private static DatasetGraph testdsg2 = DatabaseMgr.createDatasetGraph(); private static DatasetGraph testdsg3 = DatasetGraphFactory.createTxnMem(); @@ -76,7 +81,7 @@ public class TestSecurityFilterFuseki { private static FusekiServer fusekiServer; // Set up Fuseki with two datasets, "data1" backed by TDB and "data2" backed by TDB2. - @BeforeClass public static void beforeClass() { + @BeforeAll public static void beforeClass() { addTestData(testdsg1); addTestData(testdsg2); addTestData(testdsg3); @@ -110,7 +115,7 @@ public class TestSecurityFilterFuseki { fusekiServer.start(); } - @AfterClass public static void afterClass() { + @AfterAll public static void afterClass() { fusekiServer.stop(); } @@ -131,9 +136,7 @@ public class TestSecurityFilterFuseki { propertyUserStore.addUser(user, cred, roles); } - public TestSecurityFilterFuseki(String label, String dsName) { - baseUrl = fusekiServer.datasetURL(dsName); - } + public TestSecurityFilterFuseki() {} private static String queryAll = "SELECT * { { ?s ?p ?o } UNION { GRAPH ?g { ?s ?p ?o } } }"; private static String queryDft = "SELECT * { ?s ?p ?o }"; @@ -142,9 +145,9 @@ public class TestSecurityFilterFuseki { private static String queryG2 = "SELECT * { GRAPH <http://test/graph2> { ?s ?p ?o } }"; private static String queryGraphNames = "SELECT * { GRAPH ?g { } }"; - private Set<Node> query(String user, String password, String queryString) { + private Set<Node> query(String user, String password, String dsName, String queryString) { Set<Node> results = new HashSet<>(); - try (RDFConnection conn = RDFConnection.connectPW(baseUrl, user, password)) { + try (RDFConnection conn = RDFConnection.connectPW(baseUrl(dsName), user, password)) { conn.queryResultSet(queryString, rs->{ List<QuerySolution> list = Iter.toList(rs); list.stream() @@ -157,17 +160,17 @@ public class TestSecurityFilterFuseki { return results; } - private void query401(String user, String password, String queryString) { - queryHttp(401, user, password, queryString); + private void query401(String user, String password, String dsName, String queryString) { + queryHttp(401, user, password, dsName, queryString); } - private void query403(String user, String password, String queryString) { - queryHttp(403, user, password, queryString); + private void query403(String user, String password, String dsName, String queryString) { + queryHttp(403, user, password, dsName, queryString); } - private void queryHttp(int statusCode, String user, String password, String queryString) { + private void queryHttp(int statusCode, String user, String password, String dsName, String queryString) { try { - query(user, password, queryString); + query(user, password, dsName, queryString); if ( statusCode < 200 && statusCode > 299 ) fail("Should have responded with "+statusCode); } catch (QueryExceptionHTTP ex) { @@ -175,68 +178,91 @@ public class TestSecurityFilterFuseki { } } - @Test public void query_userDft() { - Set<Node> results = query("userDft", "pwDft", queryAll); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_userDft(String label, String dsName) { + Set<Node> results = query("userDft", "pwDft", dsName, queryAll); assertSeen(results, s0); } - @Test public void query_userNone() { - Set<Node> results = query("userNone", "pwNone", queryAll); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_userNone(String label, String dsName) { + Set<Node> results = query("userNone", "pwNone", dsName, queryAll); assertSeen(results); } - @Test public void query_user0() { - Set<Node> results = query("user0", "pw0", queryAll); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_user0(String label, String dsName) { + Set<Node> results = query("user0", "pw0", dsName, queryAll); assertSeen(results, s0); } - @Test public void query_user1() { - Set<Node> results = query("user1", "pw1", queryAll); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_user1(String label, String dsName) { + Set<Node> results = query("user1", "pw1", dsName, queryAll); assertSeen(results, s0, s1); } - @Test public void query_bad_user() { - query401("userX", "pwX", queryAll); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_bad_user(String label, String dsName) { + query401("userX", "pwX", dsName, queryAll); } - @Test public void query_bad_password() { - query401("user0", "not-the-password", queryAll); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_bad_password(String label, String dsName) { + query401("user0", "not-the-password", dsName, queryAll); } // Visibility of data. - @Test public void query_dyn_1() { - Set<Node> results = query("user1", "pw1", "SELECT * FROM <http://test/g1> { ?s ?p ?o }"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_dyn_1(String label, String dsName) { + Set<Node> results = query("user1", "pw1", dsName, "SELECT * FROM <http://test/g1> { ?s ?p ?o }"); assertSeen(results, s1); } - @Test public void query_dyn_2() { - Set<Node> results = query("user1", "pw1", "SELECT * FROM <http://test/g2> { ?s ?p ?o }"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_dyn_2(String label, String dsName) { + Set<Node> results = query("user1", "pw1", dsName, "SELECT * FROM <http://test/g2> { ?s ?p ?o }"); assertSeen(results); } - @Test public void query_dyn_3() { - Set<Node> results = query("user1", "pw1", "SELECT * FROM <http://test/g1> FROM <http://test/g2> { ?s ?p ?o }"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_dyn_3(String label, String dsName) { + Set<Node> results = query("user1", "pw1", dsName, "SELECT * FROM <http://test/g1> FROM <http://test/g2> { ?s ?p ?o }"); assertSeen(results,s1); } - @Test public void query_dyn_4() { - Set<Node> results = query("user3", "pw3", "SELECT * FROM <"+Quad.unionGraph.getURI()+"> { ?s ?p ?o }"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_dyn_4(String label, String dsName) { + Set<Node> results = query("user3", "pw3", dsName, "SELECT * FROM <"+Quad.unionGraph.getURI()+"> { ?s ?p ?o }"); assertSeen(results, s2, s3); - Set<Node> results2 = query("user3", "pw3", "SELECT * { GRAPH <"+Quad.unionGraph.getURI()+"> { ?s ?p ?o } }"); + Set<Node> results2 = query("user3", "pw3", dsName, "SELECT * { GRAPH <"+Quad.unionGraph.getURI()+"> { ?s ?p ?o } }"); assertEquals(results, results2); } - @Test public void query_dyn_5() { - Set<Node> results = query("user3", "pw3", "SELECT * FROM NAMED <http://test/g1> { ?s ?p ?o }"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void query_dyn_5(String label, String dsName) { + Set<Node> results = query("user3", "pw3", dsName, "SELECT * FROM NAMED <http://test/g1> { ?s ?p ?o }"); assertSeen(results); - Set<Node> results2 = query("user3", "pw3", "SELECT * { GRAPH <http://test/g1> { ?s ?p ?o } }"); + Set<Node> results2 = query("user3", "pw3", dsName, "SELECT * { GRAPH <http://test/g1> { ?s ?p ?o } }"); assertEquals(results, results2); } - private Set<Node> gsp(String user, String password, String graphName) { + private Set<Node> gsp(String user, String password, String dsName, String graphName) { Set<Node> results = new HashSet<>(); - try (RDFLink conn = RDFLink.connectPW(baseUrl, user, password)) { + String baseURL = baseUrl(dsName); + try (RDFLink conn = RDFLink.connectPW(baseUrl(dsName), user, password)) { Graph graph = (graphName == null) ? conn.get() : conn.get(graphName); // Extract subjects. Set<Node> seen = Iter.toSet(G.iterSubjects(graph)); @@ -244,21 +270,21 @@ public class TestSecurityFilterFuseki { } } - private void gsp401(String user, String password, String graphName) { - gspHttp(401, user, password, graphName); + private void gsp401(String user, String password, String dsName, String graphName) { + gspHttp(401, user, password, dsName, graphName); } - private void gsp403(String user, String password, String graphName) { - gspHttp(403, user, password, graphName); + private void gsp403(String user, String password, String dsName, String graphName) { + gspHttp(403, user, password, dsName, graphName); } - private void gsp404(String user, String password, String graphName) { - gspHttp(404, user, password, graphName); + private void gsp404(String user, String password, String dsName, String graphName) { + gspHttp(404, user, password, dsName, graphName); } - private void gspHttp(int statusCode, String user, String password, String queryString) { + private void gspHttp(int statusCode, String user, String password, String dsName, String graphName) { try { - gsp(user, password, queryString); + gsp(user, password, dsName, graphName); if ( statusCode < 200 && statusCode > 299 ) fail("Should have responded with "+statusCode); } catch (HttpException ex) { @@ -269,78 +295,112 @@ public class TestSecurityFilterFuseki { // When a graph is not visible, it should return 404 except // for the default graph which should be empty. - @Test public void gsp_dft_userDft() { - Set<Node> results = gsp("userDft", "pwDft", null); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_dft_userDft(String label, String dsName) { + Set<Node> results = gsp("userDft", "pwDft", dsName, null); assertSeen(results, s0); } - @Test public void gsp_dft_userNone() { - Set<Node> results = gsp("userNone", "pwNone", null); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_dft_userNone(String label, String dsName) { + Set<Node> results = gsp("userNone", "pwNone", dsName, null); assertSeen(results); } - @Test public void gsp_dft_user0() { - Set<Node> results = gsp("user0", "pw0", null); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_dft_user0(String label, String dsName) { + Set<Node> results = gsp("user0", "pw0", dsName, null); assertSeen(results, s0); } - @Test public void gsp_dft_user1() { - Set<Node> results = gsp("user1", "pw1", null); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_dft_user1(String label, String dsName) { + Set<Node> results = gsp("user1", "pw1", dsName, null); assertSeen(results, s0); } - @Test public void gsp_dft_user2() { - Set<Node> results = gsp("user2", "pw2", null); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_dft_user2(String label, String dsName) { + Set<Node> results = gsp("user2", "pw2", dsName, null); assertSeen(results); } - @Test public void gsp_graph1_userDft() { - gsp404("userDft", "pwDft", "http://test/g1"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graph1_userDft(String label, String dsName) { + gsp404("userDft", "pwDft", dsName, "http://test/g1"); } - @Test public void gsp_graph1_userNone() { - gsp404("userNone", "pwNone", "http://test/g1"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graph1_userNone(String label, String dsName) { + gsp404("userNone", "pwNone", dsName, "http://test/g1"); } - @Test public void gsp_graph1_user0() { - gsp404("user0", "pw0", "http://test/g1"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graph1_user0(String label, String dsName) { + gsp404("user0", "pw0", dsName, "http://test/g1"); } - @Test public void gsp_graph1_user1() { - Set<Node> results = gsp("user1", "pw1", "http://test/g1"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graph1_user1(String label, String dsName) { + Set<Node> results = gsp("user1", "pw1", dsName, "http://test/g1"); assertSeen(results, s1); } - @Test public void gsp_graph1_user2() { - gsp404("user2", "pw2", "http://test/g1"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graph1_user2(String label, String dsName) { + gsp404("user2", "pw2", dsName, "http://test/g1"); } // No such graph. - @Test public void gsp_graphX_userDft() { - gsp404("userDft", "pwDft", "http://test/gX"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graphX_userDft(String label, String dsName) { + gsp404("userDft", "pwDft", dsName, "http://test/gX"); } - @Test public void gsp_graphX_userNone() { - gsp404("userNone", "pwNone", "http://test/gX"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graphX_userNone(String label, String dsName) { + gsp404("userNone", "pwNone", dsName, "http://test/gX"); } - @Test public void gsp_graphX_user0() { - gsp404("user0", "pw0", "http://test/gX"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graphX_user0(String label, String dsName) { + gsp404("user0", "pw0", dsName, "http://test/gX"); } - @Test public void gsp_graphX_user1() { - gsp404("user1", "pw1", "http://test/g1X"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graphX_user1(String label, String dsName) { + gsp404("user1", "pw1", dsName, "http://test/g1X"); } - @Test public void gsp_graphX_user2() { - gsp404("user2", "pw2", "http://test/gX"); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_graphX_user2(String label, String dsName) { + gsp404("user2", "pw2", dsName, "http://test/gX"); } - @Test public void gsp_bad_user() { - gsp401("userX", "pwX", null); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_bad_user(String label, String dsName) { + gsp401("userX", "pwX", dsName, null); } - @Test public void gsp_bad_password() { - gsp401("user0", "not-the-password", null); + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestArgs") + public void gsp_bad_password(String label, String dsName) { + gsp401("user0", "not-the-password", dsName, null); } } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthBuild.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthBuild.java index 33c109e56a..58a4be56db 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthBuild.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthBuild.java @@ -18,9 +18,11 @@ package org.apache.jena.fuseki.main.access; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; + import org.apache.jena.fuseki.main.FusekiServer; -import org.junit.After; -import org.junit.Before; /** * AbstractTestServiceDatasetAuth with a configuration file. @@ -29,7 +31,7 @@ public class TestServiceDataAuthBuild extends AbstractTestServiceDatasetAuth { private FusekiServer server; - @Before public void before() { + @BeforeEach public void before() { server = FusekiServer.create() //.verbose(true) .port(port) @@ -38,7 +40,7 @@ public class TestServiceDataAuthBuild extends AbstractTestServiceDatasetAuth { server.start(); } - @After public void after () { + @AfterEach public void after () { server.stop(); } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthConfig.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthConfig.java index 0a1768dbb1..b54b8743b5 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthConfig.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthConfig.java @@ -18,6 +18,9 @@ package org.apache.jena.fuseki.main.access; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; + import org.apache.jena.fuseki.auth.Auth; import org.apache.jena.fuseki.auth.AuthPolicy; import org.apache.jena.fuseki.main.FusekiServer; @@ -26,8 +29,6 @@ import org.apache.jena.fuseki.server.Endpoint; import org.apache.jena.fuseki.server.Operation; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.DatasetGraphFactory; -import org.junit.After; -import org.junit.Before; /** * AbstractTestServiceDatasetAuth with a programmatically built server which should be @@ -36,12 +37,14 @@ import org.junit.Before; public class TestServiceDataAuthConfig extends AbstractTestServiceDatasetAuth { private FusekiServer server; - @Before public void before() { + @BeforeEach + public void before() { server = build(port, null); server.start(); } - @After public void after () { + @AfterEach + public void after () { server.stop(); } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSimpleBearer.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSimpleBearer.java index 87735ac5a2..d179095fd9 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSimpleBearer.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestSimpleBearer.java @@ -18,10 +18,13 @@ package org.apache.jena.fuseki.main.access; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; import org.apache.jena.fuseki.main.auth.SimpleBearer; -import org.junit.Test; public class TestSimpleBearer { diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/prefixes/PrefixesServiceTests.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/prefixes/TS_PrefixesService.java similarity index 96% rename from jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/prefixes/PrefixesServiceTests.java rename to jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/prefixes/TS_PrefixesService.java index 20c45c9479..5ad83830a0 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/prefixes/PrefixesServiceTests.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/prefixes/TS_PrefixesService.java @@ -30,4 +30,4 @@ import org.junit.platform.suite.api.Suite; , TestPrefixesActionResponse.class }) -public class PrefixesServiceTests {} +public class TS_PrefixesService {} diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/sys/TestFusekiModules.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/sys/TestFusekiModules.java index 75e48612cc..fda3ebbd6c 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/sys/TestFusekiModules.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/sys/TestFusekiModules.java @@ -18,26 +18,25 @@ package org.apache.jena.fuseki.main.sys; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.apache.jena.fuseki.main.FusekiServer; import org.apache.jena.rdf.model.Model; import org.apache.jena.sys.JenaSystem; -/** Same packege for access */ +/** Same package for access */ public class TestFusekiModules { private static FusekiModules system = null; - @BeforeClass public static void beforeClass() { JenaSystem.init(); } + @BeforeAll + public static void beforeClass() { JenaSystem.init(); } @Test public void modules_0() { ModuleForTest module = new ModuleForTest(); @@ -77,28 +76,28 @@ public class TestFusekiModules { } private void lifecycle(FusekiServer.Builder builder, ModuleForTest module) { - assertEquals("prepare:", 0, module.countPrepared.get()); - assertEquals("configured:", 0, module.countConfiguration.get()); - assertEquals("server: ", 0, module.countServer.get()); - assertEquals("serverBefore: ", 0, module.countServerBeforeStarting.get()); - assertEquals("serverAfter: ", 0, module.countServerAfterStarting.get()); + assertEquals(0, module.countPrepared.get(), "prepare:"); + assertEquals(0, module.countConfiguration.get(), "configured:"); + assertEquals(0, module.countServer.get(), "server:"); + assertEquals(0, module.countServerBeforeStarting.get(), "serverBefore:"); + assertEquals(0, module.countServerAfterStarting.get(), "serverAfter:"); FusekiServer server = builder.build(); assertFalse(server.getModules().asList().isEmpty()); - assertEquals("prepare:", 1, module.countPrepared.getPlain()); - assertEquals("configured:", 1, module.countConfiguration.get()); - assertEquals("server: ", 1, module.countServer.get()); - assertEquals("serverBefore: ", 0, module.countServerBeforeStarting.get()); - assertEquals("serverAfter: ", 0, module.countServerAfterStarting.get()); + assertEquals(1, module.countPrepared.get(), "prepare:"); + assertEquals(1, module.countConfiguration.get(), "configured:"); + assertEquals(1, module.countServer.get(), "server:"); + assertEquals(0, module.countServerBeforeStarting.get(), "serverBefore:"); + assertEquals(0, module.countServerAfterStarting.get(), "serverAfter:"); server.start(); - assertEquals("prepare:", 1, module.countPrepared.get()); - assertEquals("configured:", 1, module.countConfiguration.get()); - assertEquals("server: ", 1, module.countServer.get()); - assertEquals("serverBefore: ", 1, module.countServerBeforeStarting.get()); - assertEquals("serverAfter: ", 1, module.countServerAfterStarting.get()); + assertEquals(1, module.countPrepared.get(), "prepare:"); + assertEquals(1, module.countConfiguration.get(), "configured:"); + assertEquals(1, module.countServer.get(), "server:"); + assertEquals(1, module.countServerBeforeStarting.get(), "serverBefore:"); + assertEquals(1, module.countServerAfterStarting.get(), "serverAfter:"); server.stop(); } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/TC_FusekiMods.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/TS_FusekiMods.java similarity index 95% rename from jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/TC_FusekiMods.java rename to jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/TS_FusekiMods.java index d2fafda62f..6771fa2f90 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/TC_FusekiMods.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/TS_FusekiMods.java @@ -35,6 +35,6 @@ import org.apache.jena.fuseki.mod.shiro.TestModShiro; // Apache Shiro TestModShiro.class }) -public class TC_FusekiMods { - public TC_FusekiMods() {} +public class TS_FusekiMods { + public TS_FusekiMods() {} } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/admin/TestFusekiReload.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/admin/TestFusekiReload.java index ee68e96df1..079a30e149 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/admin/TestFusekiReload.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/mod/admin/TestFusekiReload.java @@ -18,7 +18,7 @@ package org.apache.jena.fuseki.mod.admin; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.io.UncheckedIOException; @@ -26,9 +26,9 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.apache.jena.atlas.io.IOX; import org.apache.jena.atlas.logging.LogCtl; @@ -53,12 +53,12 @@ public class TestFusekiReload { private static Path fConfig1 = DIR.resolve("reload-config1.ttl"); private static Path fConfig2 = DIR.resolve("reload-config2.ttl"); - @Before public void before() { + @BeforeEach public void before() { // Initial state copyFile(fConfig1, fConfigServer); } - @AfterClass public static void after() { + @AfterAll public static void after() { try { Files.delete(fConfigServer); } catch (IOException ex) { @@ -138,9 +138,9 @@ public class TestFusekiReload { QueryExec qExec = QueryExecHTTP.service(server.datasetURL(datasetName)).query(queryString).build(); try { RowSetOps.consume(qExec.select()); - assertEquals(datasetName, expectedStatusCode, 200); + assertEquals(expectedStatusCode, 200, datasetName); } catch (QueryExceptionHTTP ex) { - assertEquals(datasetName, expectedStatusCode, ex.getStatusCode()); + assertEquals(expectedStatusCode, ex.getStatusCode(), datasetName); } } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/resources/log4j2-test.properties b/jena-fuseki2/jena-fuseki-main/src/test/resources/log4j2-test.properties index 26b8c4b2e2..fb3efdb6de 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/resources/log4j2-test.properties +++ b/jena-fuseki2/jena-fuseki-main/src/test/resources/log4j2-test.properties @@ -25,8 +25,9 @@ logger.arq-exec.level = INFO logger.fuseki.name = org.apache.jena.fuseki logger.fuseki.level = WARN +## Some tests correctly log warnings. TS_PrefixesService logger.fuseki-fuseki.name = org.apache.jena.fuseki.Fuseki -logger.fuseki-fuseki.level = WARN +logger.fuseki-fuseki.level = ERROR logger.fuseki-autoload.name = org.apache.jena.fuseki.main.sys.FusekiAutoModules logger.fuseki-autoload.level = ERROR
