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 <[email protected]> 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,
