You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2026/09/09 20:56:29 UTC
(jena) 04/12: GH-3236: Convert TestDefaultModel to JUnit6
This is an automated email from the ASF dual-hosted git repository.
afs pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git
commit eab293a31f966714abe06c0eb52096da06b1376c
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Mon Sep 7 15:12:07 2026 +0100
GH-3236: Convert TestDefaultModel to JUnit6
---
.../java/org/apache/jena/rdf/model/TS6_Model.java | 40 +++++++++++++++
...DefaultModel.java => TestDefaultModel_JU6.java} | 57 ++++++++++++----------
.../org/apache/jena/test/JenaCoreTestAll_JU4.java | 2 +-
.../org/apache/jena/test/JenaCoreTestAll_JU6.java | 3 ++
4 files changed, 76 insertions(+), 26 deletions(-)
diff --git a/jena-core/src/test/java/org/apache/jena/rdf/model/TS6_Model.java b/jena-core/src/test/java/org/apache/jena/rdf/model/TS6_Model.java
new file mode 100644
index 0000000000..3949795fd3
--- /dev/null
+++ b/jena-core/src/test/java/org/apache/jena/rdf/model/TS6_Model.java
@@ -0,0 +1,40 @@
+/*
+ * 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
+ *
+ * https://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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.apache.jena.rdf.model;
+
+import org.junit.platform.suite.api.BeforeSuite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
+
+import org.apache.jena.test.JenaTestLib;
+
+@Suite
+@SelectClasses({
+ TestDefaultModel_JU6.class
+})
+
+public class TS6_Model {
+ @BeforeSuite
+ public static void beforeSuite() {
+ JenaTestLib.setup();
+ }
+}
diff --git a/jena-core/src/test/java/org/apache/jena/rdf/model/TestDefaultModel.java b/jena-core/src/test/java/org/apache/jena/rdf/model/TestDefaultModel_JU6.java
similarity index 91%
rename from jena-core/src/test/java/org/apache/jena/rdf/model/TestDefaultModel.java
rename to jena-core/src/test/java/org/apache/jena/rdf/model/TestDefaultModel_JU6.java
index e24b578dd5..cb71d48a24 100644
--- a/jena-core/src/test/java/org/apache/jena/rdf/model/TestDefaultModel.java
+++ b/jena-core/src/test/java/org/apache/jena/rdf/model/TestDefaultModel_JU6.java
@@ -21,8 +21,12 @@
package org.apache.jena.rdf.model;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import static org.junit.jupiter.api.Assertions.*;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
import org.apache.jena.graph.GraphTestLib;
import org.apache.jena.graph.Node;
import org.apache.jena.graph.Triple;
@@ -31,17 +35,9 @@ import org.apache.jena.rdf.model.impl.ModelCom;
import org.apache.jena.shared.PropertyNotFoundException;
import org.apache.jena.test.JenaTestLib;
-public class TestDefaultModel extends TestCase {
-
- public TestDefaultModel(String name) {
- super(name);
- }
+public class TestDefaultModel_JU6 {
- static public TestSuite suite() {
- TestSuite ts = new TestSuite();
- ts.addTestSuite(TestDefaultModel.class);
- return ts;
- }
+ static { JenaTestLib.setup(); }
public Model newModel() {
return ModelFactory.createDefaultModel();
@@ -49,39 +45,44 @@ public class TestDefaultModel extends TestCase {
private Model model;
- @Override
+ @BeforeEach
public void setUp() {
model = newModel();
}
- @Override
+ @AfterEach
public void tearDown() {
model.close();
}
+ @Test
public void testTransactions() {
if ( model.supportsTransactions() )
model.executeInTxn(() -> {});
}
+ @Test
public void testCreateResourceFromNode() {
RDFNode S = model.getRDFNode(NodeCreateUtils.create("spoo:S"));
JenaTestLib.assertInstanceOf(Resource.class, S);
assertEquals("spoo:S", ((Resource)S).getURI());
}
+ @Test
public void testCreateLiteralFromNode() {
RDFNode S = model.getRDFNode(NodeCreateUtils.create("42"));
JenaTestLib.assertInstanceOf(Literal.class, S);
assertEquals("42", ((Literal)S).getLexicalForm());
}
+ @Test
public void testCreateBlankFromNode() {
RDFNode S = model.getRDFNode(NodeCreateUtils.create("_Blank"));
JenaTestLib.assertInstanceOf(Resource.class, S);
assertEquals(new AnonId("_Blank"), ((Resource)S).getId());
}
+ @Test
public void testIsEmpty() {
Statement S1 = ModelTestLib.statement(model, "model rdf:type nonEmpty");
Statement S2 = ModelTestLib.statement(model, "pinky rdf:type Pig");
@@ -96,6 +97,7 @@ public class TestDefaultModel extends TestCase {
assertTrue(model.isEmpty());
}
+ @Test
public void testContainsResource() {
ModelTestLib.modelAdd(model, "x R y; _a P _b");
assertTrue(model.containsResource(ModelTestLib.resource(model, "x")));
@@ -112,6 +114,7 @@ public class TestDefaultModel extends TestCase {
* Test the new version of getProperty(), which delivers null for not-found
* properties.
*/
+ @Test
public void testGetProperty() {
ModelTestLib.modelAdd(model, "x P a; x P b; x R c");
Resource x = ModelTestLib.resource(model, "x");
@@ -125,6 +128,7 @@ public class TestDefaultModel extends TestCase {
* Tests {@link Resource#getProperty(Property, String)} and
* {@link Resource#getRequiredProperty(Property, String)}.
*/
+ @Test
public void testGetPropertyWithLanguage() {
model.add(ModelTestLib.resource(model, "x"), ModelTestLib.property(model, "P"), "a", "pt");
model.add(ModelTestLib.resource(model, "x"), ModelTestLib.property(model, "P"), "b", "en");
@@ -145,16 +149,16 @@ public class TestDefaultModel extends TestCase {
final Resource x = ModelTestLib.resource(model, "x");
assertEquals("a", x.getRequiredProperty(ModelTestLib.property(model, "P"), "pt").getString());
assertEquals("b", x.getRequiredProperty(ModelTestLib.property(model, "P"), "en").getString());
- try {
- x.getRequiredProperty(ModelTestLib.property(model, "P"), "ja");
- fail("Must thrown PropertyNotFoundException.");
- } catch (PropertyNotFoundException e) {}
+ assertThrows(PropertyNotFoundException.class,
+ ()->x.getRequiredProperty(ModelTestLib.property(model, "P"), "ja"),
+ "Must thrown PropertyNotFoundException.");
final Literal l = x.getRequiredProperty(ModelTestLib.property(model, "R")).getLiteral();
assertTrue("d".equals(l.getString()) || "e".equals(l.getString()));
assertTrue("de".equals(l.getLanguage()) || "fr".equals(l.getLanguage()));
}
}
+ @Test
public void testToStatement() {
Triple t = GraphTestLib.triple("a P b");
Statement s = model.asStatement(t);
@@ -163,6 +167,7 @@ public class TestDefaultModel extends TestCase {
assertEquals(GraphTestLib.node("b"), s.getObject().asNode());
}
+ @Test
public void testAsRDF() {
testPresentAsRDFNode(GraphTestLib.node("a"), Resource.class);
testPresentAsRDFNode(GraphTestLib.node("17"), Literal.class);
@@ -175,21 +180,21 @@ public class TestDefaultModel extends TestCase {
JenaTestLib.assertInstanceOf(nodeClass, r);
}
+ @Test
public void testURINodeAsResource() {
Node n = GraphTestLib.node("a");
Resource r = model.wrapAsResource(n);
assertSame(n, r.asNode());
}
+ @Test
public void testLiteralNodeAsResourceFails() {
- try {
- model.wrapAsResource(GraphTestLib.node("17"));
- fail("should fail to convert literal to Resource");
- } catch (UnsupportedOperationException e) {
- JenaTestLib.pass();
- }
+ assertThrows(UnsupportedOperationException.class,
+ ()->model.wrapAsResource(GraphTestLib.node("17")),
+ "should fail to convert literal to Resource");
}
+ @Test
public void testRemoveAll() {
testRemoveAll("");
testRemoveAll("a RR b");
@@ -200,7 +205,7 @@ public class TestDefaultModel extends TestCase {
protected void testRemoveAll(String statements) {
ModelTestLib.modelAdd(model, statements);
assertSame(model, model.removeAll());
- assertEquals("model should have size 0 following removeAll(): ", 0, model.size());
+ assertEquals(0, model.size(), "model should have size 0 following removeAll(): ");
}
/**
@@ -229,6 +234,7 @@ public class TestDefaultModel extends TestCase {
* mean emptiness isn't available. This is why we go round the houses and test
* that expected ~= initialContent + addedStuff - removed - initialContent.
*/
+ @Test
public void testRemoveSPO() {
ModelCom mc = (ModelCom)ModelFactory.createDefaultModel();
for ( String[] aCase : cases ) {
@@ -249,6 +255,7 @@ public class TestDefaultModel extends TestCase {
}
}
+ @Test
public void testIsClosedDelegatedToGraph() {
Model m = newModel();
assertFalse(m.isClosed());
diff --git a/jena-core/src/test/java/org/apache/jena/test/JenaCoreTestAll_JU4.java b/jena-core/src/test/java/org/apache/jena/test/JenaCoreTestAll_JU4.java
index bd789ea41f..4810dd3122 100644
--- a/jena-core/src/test/java/org/apache/jena/test/JenaCoreTestAll_JU4.java
+++ b/jena-core/src/test/java/org/apache/jena/test/JenaCoreTestAll_JU4.java
@@ -53,7 +53,7 @@ public class JenaCoreTestAll_JU4 extends TestCase {
// ** COMPLEX
addTest(ts, "Model1", org.apache.jena.rdf.model.TS3_Model1.suite());
// ** COMPLEX
- addTest(ts, "Default Model", org.apache.jena.rdf.model.TestDefaultModel.suite());
+//JU6 addTest(ts, "Default Model", org.apache.jena.rdf.model.TestDefaultModel.suite());
// Test suite building
addTest(ts, "XML Input [ARP1]", org.apache.jena.rdfxml.arp1tests.TS3_xmlinput1.suite());
diff --git a/jena-core/src/test/java/org/apache/jena/test/JenaCoreTestAll_JU6.java b/jena-core/src/test/java/org/apache/jena/test/JenaCoreTestAll_JU6.java
index 5a2c797abe..22962c3246 100644
--- a/jena-core/src/test/java/org/apache/jena/test/JenaCoreTestAll_JU6.java
+++ b/jena-core/src/test/java/org/apache/jena/test/JenaCoreTestAll_JU6.java
@@ -34,6 +34,7 @@ import org.apache.jena.mem.TS6_GraphMem;
import org.apache.jena.memvalue.TS6_GraphMemValue;
import org.apache.jena.ontology.impl.TS6_ont;
import org.apache.jena.ontology.makers.TS6_ModelMakers;
+import org.apache.jena.rdf.model.TS6_Model;
import org.apache.jena.rdfxml.xmloutput.TS6_xmloutput;
import org.apache.jena.shared.TS6_SharedPackage;
import org.apache.jena.util.TS6_coreutil;
@@ -55,6 +56,8 @@ import org.apache.jena.vocabulary.TS6_Vocabularies;
TS6_GraphMem.class,
TS6_GraphMemValue.class,
+ TS6_Model.class,
+
TS6_xmloutput.class,
TS6_coreutil.class,