From f45b48ba9867984cb0247e378dff5d0c84b9e08a Mon Sep 17 00:00:00 2001 From: David Beaumont Date: Tue, 31 Mar 2026 10:00:03 +0000 Subject: [PATCH] 8380307: Refactor miscellaneous JAXP tests in javax/xml/jaxp/unittest to JUnit Reviewed-by: liach, joehw --- .../parsers/ptests/FactoryConfErrorTest.java | 3 - .../xml/transform/ptests/TransformTest.java | 3 - .../validation/ptests/SchemaFactoryTest.java | 4 - .../xml/jaxp/unittest/bcel/UtilityTest.java | 9 +- .../catalog/CatalogFileInputTest.java | 190 ++++++------ .../unittest/catalog/CatalogResolverTest.java | 51 ++-- .../unittest/catalog/CatalogReuseTest.java | 56 ++-- .../jaxp/unittest/catalog/CatalogSupport.java | 67 +++-- .../unittest/catalog/CatalogSupport1.java | 69 ++--- .../unittest/catalog/CatalogSupport2.java | 153 +++++----- .../unittest/catalog/CatalogSupport3.java | 151 +++++----- .../unittest/catalog/CatalogSupport4.java | 74 +++-- .../unittest/catalog/CatalogSupport5.java | 120 ++++---- .../unittest/catalog/CatalogSupportBase.java | 103 +++---- .../jaxp/unittest/catalog/CatalogTest.java | 273 +++++++++--------- .../xml/jaxp/unittest/catalog/GroupTest.java | 29 +- .../jaxp/unittest/datatype/Bug6320118.java | 30 +- .../unittest/datatype/Bug6937951Test.java | 18 +- .../unittest/datatype/Bug6937964Test.java | 187 +++++------- .../unittest/datatype/Bug7042647Test.java | 18 +- .../datatype/DatatypeFactoryTest.java | 68 ++--- .../jaxp/unittest/datatype/DurationTest.java | 262 +++++++---------- .../unittest/datatype/FactoryFindTest.java | 38 +-- .../jaxp/unittest/datatype/HashCodeTest.java | 53 ++-- .../unittest/datatype/JDK8068839Test.java | 13 +- .../datatype/XMLGregorianCalendarTest.java | 111 +++---- .../unittest/sax/Attributes2ImplTest.java | 98 +++---- .../xml/jaxp/unittest/sax/Bug6889654Test.java | 60 +--- .../xml/jaxp/unittest/sax/Bug6925410Test.java | 35 +-- .../xml/jaxp/unittest/sax/Bug6949607Test.java | 59 ++-- .../xml/jaxp/unittest/sax/Bug6992561Test.java | 52 ++-- .../xml/jaxp/unittest/sax/Bug7057778.xml | 3 - .../xml/jaxp/unittest/sax/Bug7057778Test.java | 178 ++---------- .../jaxp/unittest/sax/DeclarationTest.java | 67 ++--- .../unittest/sax/DefaultHandler2Test.java | 266 ++++++----------- .../jaxp/unittest/sax/IssueTracker56Test.java | 99 ++----- .../xml/jaxp/unittest/sax/NSSupportTest.java | 93 +++--- .../unittest/sax/SAXExceptionInitCause.java | 74 ++--- .../xml/jaxp/unittest/sax/SAXParserTest.java | 58 ++-- .../unittest/sax/SymbolTableResetTest.java | 23 +- .../xml/jaxp/unittest/sax/XMLReaderTest.java | 40 ++- .../unittest/sbd/test/ExternalRefTest.java | 21 +- 42 files changed, 1457 insertions(+), 1922 deletions(-) delete mode 100644 test/jaxp/javax/xml/jaxp/unittest/sax/Bug7057778.xml diff --git a/test/jaxp/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java b/test/jaxp/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java index fe4288fc2b1..3ee91ff6555 100644 --- a/test/jaxp/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java +++ b/test/jaxp/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java @@ -26,8 +26,6 @@ package javax.xml.parsers.ptests; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.parallel.Execution; -import org.junit.jupiter.api.parallel.ExecutionMode; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.FactoryConfigurationError; @@ -44,7 +42,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows; * @library /javax/xml/jaxp/libs * @run junit/othervm javax.xml.parsers.ptests.FactoryConfErrorTest */ -@Execution(ExecutionMode.SAME_THREAD) public class FactoryConfErrorTest { /** diff --git a/test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java b/test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java index 1d9600b330b..7ca7fc6c6d8 100644 --- a/test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java +++ b/test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java @@ -26,8 +26,6 @@ package javax.xml.transform.ptests; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; -import org.junit.jupiter.api.parallel.Execution; -import org.junit.jupiter.api.parallel.ExecutionMode; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.w3c.dom.Document; @@ -77,7 +75,6 @@ import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR; * @summary Tests for variable combination of Transformer.transform(Source, Result) */ @TestInstance(Lifecycle.PER_CLASS) -@Execution(ExecutionMode.SAME_THREAD) public class TransformTest { /* diff --git a/test/jaxp/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java b/test/jaxp/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java index dc5acdfe1a3..e7ebdb973f3 100644 --- a/test/jaxp/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java +++ b/test/jaxp/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java @@ -22,13 +22,10 @@ */ package javax.xml.validation.ptests; -import jaxp.library.JAXPDataProvider; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; -import org.junit.jupiter.api.parallel.Execution; -import org.junit.jupiter.api.parallel.ExecutionMode; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.w3c.dom.Document; @@ -78,7 +75,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue; * @run junit/othervm javax.xml.validation.ptests.SchemaFactoryTest * @summary Class containing the test cases for SchemaFactory */ -@Execution(ExecutionMode.SAME_THREAD) @TestInstance(Lifecycle.PER_CLASS) public class SchemaFactoryTest { diff --git a/test/jaxp/javax/xml/jaxp/unittest/bcel/UtilityTest.java b/test/jaxp/javax/xml/jaxp/unittest/bcel/UtilityTest.java index 56545698778..020010628cf 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/bcel/UtilityTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/bcel/UtilityTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,14 +24,15 @@ package bcel; import com.sun.org.apache.bcel.internal.classfile.Utility; +import org.junit.jupiter.api.Test; + import java.util.Base64; -import org.testng.annotations.Test; /* * @test * @bug 8256919 * @modules java.xml/com.sun.org.apache.bcel.internal.classfile - * @run testng bcel.UtilityTest + * @run junit bcel.UtilityTest * @summary Tests the Utility. */ public class UtilityTest { @@ -42,7 +43,7 @@ public class UtilityTest { */ @Test public void test() throws Exception { - /** + /* * public class Hello { * public void hello(){ * System.out.println("Hello,world"); diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogFileInputTest.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogFileInputTest.java index 9a19c0237d7..ece63b7e3f1 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogFileInputTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogFileInputTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,24 @@ package catalog; +import com.sun.net.httpserver.HttpServer; +import com.sun.net.httpserver.SimpleFileServer; +import jdk.test.lib.net.URIBuilder; +import jdk.test.lib.util.JarUtils; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.xml.sax.InputSource; + +import javax.xml.catalog.Catalog; +import javax.xml.catalog.CatalogException; +import javax.xml.catalog.CatalogFeatures; +import javax.xml.catalog.CatalogManager; +import javax.xml.catalog.CatalogResolver; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -41,32 +59,18 @@ import java.nio.file.Paths; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import javax.xml.catalog.Catalog; -import javax.xml.catalog.CatalogException; -import javax.xml.catalog.CatalogFeatures; -import javax.xml.catalog.CatalogManager; -import javax.xml.catalog.CatalogResolver; - import static java.nio.file.StandardOpenOption.APPEND; import static java.nio.file.StandardOpenOption.CREATE; -import static jaxp.library.JAXPTestUtilities.getSystemProperty; - -import com.sun.net.httpserver.HttpServer; -import com.sun.net.httpserver.SimpleFileServer; -import jdk.test.lib.net.URIBuilder; -import jdk.test.lib.util.JarUtils; -import org.testng.Assert; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.xml.sax.InputSource; +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.assertThrows; /* * @test * @bug 8151154 8171243 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest /test/lib - * @run testng/othervm catalog.CatalogFileInputTest + * @run junit/othervm catalog.CatalogFileInputTest * @summary Verifies that the Catalog API accepts valid URIs only; * Verifies that the CatalogFeatures' builder throws * IllegalArgumentException on invalid file inputs. @@ -74,11 +78,12 @@ import org.xml.sax.InputSource; * JDK-8168968, it has to only run without SecurityManager * because an ACE will be thrown for invalid path. */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogFileInputTest extends CatalogSupportBase { static final CatalogFeatures FEATURES = CatalogFeatures.builder(). with(CatalogFeatures.Feature.PREFER, "system").build(); - static String CLS_DIR = getSystemProperty("test.classes"); + static String CLS_DIR = System.getProperty("test.classes"); static String SRC_DIR = System.getProperty("test.src"); static String JAR_CONTENT = "META-INF"; final static String SCHEME_JARFILE = "jar:"; @@ -91,7 +96,7 @@ public class CatalogFileInputTest extends CatalogSupportBase { /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { super.setUp(); // set up HttpServer @@ -107,7 +112,7 @@ public class CatalogFileInputTest extends CatalogSupportBase { .build().toString() + REMOTE_FILE_LOCATION; } - @AfterClass + @AfterAll protected void tearDown() { if (httpserver != null) { httpserver.stop(0); @@ -119,87 +124,86 @@ public class CatalogFileInputTest extends CatalogSupportBase { * Verifies that the Catalog can be created with file system paths including JAR * and http URL, and used to resolve a systemId as expected. */ - @Test(dataProvider = "acceptedURI") - public void testMatch(final String uri, final String sysId, final String pubId, - final String expectedId, final String msg) { + @ParameterizedTest + @MethodSource("acceptedURI") + public void testMatch(String uri, String sysId, String pubId, String expectedId, String msg) { CatalogResolver cr = CatalogManager.catalogResolver(FEATURES, URI.create(uri)); InputSource is = cr.resolveEntity(pubId, sysId); - Assert.assertNotNull(is, msg); - Assert.assertEquals(expectedId, is.getSystemId(), msg); + assertNotNull(is, msg); + assertEquals(expectedId, is.getSystemId(), msg); } - @Test(dataProvider = "invalidCatalog") - public void testEmptyCatalog(final String uri, final String publicId, final String msg) { + @ParameterizedTest + @MethodSource("invalidCatalog") + public void testEmptyCatalog(String uri, String publicId, String msg) { Catalog c = CatalogManager.catalog(FEATURES, uri != null ? URI.create(uri) : null); - Assert.assertNull(c.matchSystem(publicId), msg); + assertNull(c.matchSystem(publicId), msg); } - @Test(dataProvider = "invalidCatalog", expectedExceptions = CatalogException.class) - public void testCatalogResolverWEmptyCatalog(final String uri, final String publicId, final String msg) { + @ParameterizedTest + @MethodSource("invalidCatalog") + public void testCatalogResolverWEmptyCatalog(String uri, String publicId, String msg) { CatalogResolver cr = CatalogManager.catalogResolver( CatalogFeatures.builder().with(CatalogFeatures.Feature.RESOLVE, "strict").build(), uri != null ? URI.create(uri) : null); - InputSource is = cr.resolveEntity(publicId, ""); + assertThrows(CatalogException.class, () -> cr.resolveEntity(publicId, "")); } - @Test(dataProvider = "invalidCatalog") - public void testCatalogResolverWEmptyCatalog1(final String uri, final String publicId, final String msg) { + @ParameterizedTest + @MethodSource("invalidCatalog") + public void testCatalogResolverWEmptyCatalog1(String uri, String publicId, String msg) { CatalogResolver cr = CatalogManager.catalogResolver( CatalogFeatures.builder().with(CatalogFeatures.Feature.RESOLVE, "continue").build(), uri != null ? URI.create(uri) : null); - Assert.assertNull(cr.resolveEntity(publicId, ""), msg); + assertNull(cr.resolveEntity(publicId, ""), msg); } - @Test(dataProvider = "invalidInput", expectedExceptions = IllegalArgumentException.class) - public void testFileInput(final String file) { - CatalogFeatures features = CatalogFeatures.builder() - .with(CatalogFeatures.Feature.FILES, file) - .build(); + @ParameterizedTest + @MethodSource("invalidInput") + public void testFileInput(String file) { + assertThrows( + IllegalArgumentException.class, + () -> CatalogFeatures.builder().with(CatalogFeatures.Feature.FILES, file)); } - @Test(dataProvider = "invalidInput", expectedExceptions = IllegalArgumentException.class) - public void testInvalidUri(final String file) { - CatalogResolver cr = CatalogManager.catalogResolver(FEATURES, file != null ? URI.create(file) : null); + @ParameterizedTest + @MethodSource("invalidInput") + public void testInvalidUri(String file) { + URI uri = file != null ? URI.create(file) : null; + assertThrows(IllegalArgumentException.class, () -> CatalogManager.catalogResolver(FEATURES, uri)); } - @Test(dataProvider = "invalidInput", expectedExceptions = IllegalArgumentException.class) - public void testInvalidUri1(final String file) { - Catalog c = CatalogManager.catalog(FEATURES, file != null ? URI.create(file) : null); - System.err.println("Catalog =" + c); + @ParameterizedTest + @MethodSource("invalidInput") + public void testInvalidUri1(String file) { + URI uri = file != null ? URI.create(file) : null; + assertThrows(IllegalArgumentException.class, () -> CatalogManager.catalog(FEATURES, uri)); } - - @Test(expectedExceptions = NullPointerException.class) - public void testNullFileInput() { - CatalogFeatures features = CatalogFeatures.builder() - .with(CatalogFeatures.Feature.FILES, null) - .build(); + @Test + public void testNull() { + assertThrows( + NullPointerException.class, + () -> CatalogFeatures.builder().with(CatalogFeatures.Feature.FILES, null)); } - @Test(expectedExceptions = NullPointerException.class) + @Test public void testNullUri() { - URI uri = null; - CatalogResolver cr = CatalogManager.catalogResolver(FEATURES, uri); + assertThrows(NullPointerException.class, () -> CatalogManager.catalogResolver(FEATURES, (URI) null)); + assertThrows(NullPointerException.class, () -> CatalogManager.catalog(FEATURES, (URI) null)); } - @Test(expectedExceptions = NullPointerException.class) - public void testNullUri1() { - URI uri = null; - Catalog c = CatalogManager.catalog(FEATURES, uri); - } - - private String systemId = "http://www.sys00test.com/rewrite.dtd"; - private String publicId = "PUB-404"; - private String expected = "http://www.groupxmlbase.com/dtds/rewrite.dtd"; - private String errMsg = "Relative rewriteSystem with xml:base at group level failed"; + private static final String systemId = "http://www.sys00test.com/rewrite.dtd"; + private static final String publicId = "PUB-404"; + private static final String expected = "http://www.groupxmlbase.com/dtds/rewrite.dtd"; + private static final String errMsg = "Relative rewriteSystem with xml:base at group level failed"; /* DataProvider: used to verify CatalogResolver's resolveEntity function. Data columns: catalog, systemId, publicId, expectedUri, msg */ - @DataProvider(name = "acceptedURI") - Object[][] getData() throws Exception { + Object[][] acceptedURI() throws IOException { String filename = "rewriteSystem_id.xml"; String urlFile = getClass().getResource(filename).toExternalForm(); String urlHttp = remoteFilePath + "/jax-ws-catalog.xml"; @@ -209,12 +213,7 @@ public class CatalogFileInputTest extends CatalogSupportBase { String xsd = jarPath.substring(0, jarPath.lastIndexOf("/")) + "/catalog/ws-addr.xsd"; // create JAR file - try { - JarUtils.createJarFile(Paths.get(CLS_DIR + "/JDK8171243.jar"), - Paths.get(SRC_DIR + "/jar"), JAR_CONTENT); - } catch (IOException ex) { - Assert.fail("Failed to create JAR: " + ex.getMessage()); - } + JarUtils.createJarFile(Paths.get(CLS_DIR + "/JDK8171243.jar"), Paths.get(SRC_DIR + "/jar"), JAR_CONTENT); return new Object[][]{ // URL @@ -230,8 +229,7 @@ public class CatalogFileInputTest extends CatalogSupportBase { * Note: the difference from invalidInput is that invalidInput is syntactically * rejected with an IAE. */ - @DataProvider(name = "invalidCatalog") - public Object[][] getInvalidCatalog() { + public Object[][] invalidCatalog() { String catalogUri = getClass().getResource("catalog_invalid.xml").toExternalForm(); return new Object[][]{ {catalogUri, "-//W3C//DTD XHTML 1.0 Strict//EN", @@ -245,38 +243,24 @@ public class CatalogFileInputTest extends CatalogSupportBase { * DataProvider: a list of invalid inputs, expects IAE * Note: exclude null since NPE would have been expected */ - @DataProvider(name = "invalidInput") - public Object[][] getFiles() throws Exception { + public Object[][] invalidInput() throws Exception { String filename = "rewriteSystem_id.xml"; copyFile(Paths.get(SRC_DIR + "/" + filename), Paths.get(filename)); String absolutePath = getClass().getResource(filename).getFile(); - return new Object[][]{ - {""}, - {"file:a/b\\c"}, - {"c:/te:t"}, - {"c:/te?t"}, - {"c/te*t"}, - {"in|valid.txt"}, - {"shema:invalid.txt"}, - // relative file path - {filename}, - // absolute file path - {absolutePath} + return new Object[][] { + { "c:/te:t" }, + { "c:/te?t" }, + { "c/te*t" }, + { "shema:invalid.txt" }, + // relative file path + { filename }, + // absolute file path + { absolutePath } }; } - /* - DataProvider: a list of invalid inputs - */ - @DataProvider(name = "nullTest") - public Object[][] getNull() { - return new Object[][]{ - {null}, - }; - } - - void copyFile(final Path src, final Path target) throws Exception { + private static void copyFile(final Path src, final Path target) throws Exception { try (InputStream in = Files.newInputStream(src); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogResolverTest.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogResolverTest.java index 6ad23785b64..b4a2d20efcc 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogResolverTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogResolverTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,36 +22,41 @@ */ package catalog; -import java.net.URI; -import java.nio.file.Paths; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.xml.sax.InputSource; + import javax.xml.catalog.Catalog; import javax.xml.catalog.CatalogException; import javax.xml.catalog.CatalogFeatures; import javax.xml.catalog.CatalogManager; import javax.xml.catalog.CatalogResolver; import javax.xml.catalog.CatalogResolver.NotFoundAction; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.xml.sax.InputSource; +import java.net.URI; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; /* * @test * @bug 8316996 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm catalog.CatalogResolverTest + * @run junit/othervm catalog.CatalogResolverTest * @summary Tests CatalogResolver functions. See CatalogTest for existing basic * functional tests. */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogResolverTest extends CatalogSupportBase { - static final String KEY_FILES = "javax.xml.catalog.files"; static final String SYSTEM_ID = "http://openjdk_java_net/xml/catalog/dtd/system.dtd"; /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { super.setUp(); } @@ -63,7 +68,6 @@ public class CatalogResolverTest extends CatalogSupportBase { resolve property for the Catalog, resolve property for the CatalogResolver, system ID to be resolved, expected result, expected exception */ - @DataProvider(name = "factoryMethodInput") public Object[][] getInputs() throws Exception { return new Object[][]{ @@ -80,7 +84,6 @@ public class CatalogResolverTest extends CatalogSupportBase { }; } - @DataProvider(name = "NPETest") public Object[][] getNPETest() throws Exception { return new Object[][]{ {null, null}, @@ -104,22 +107,22 @@ public class CatalogResolverTest extends CatalogSupportBase { * @param expectedThrow the expected exception * @throws Exception if the test fails */ - @Test(dataProvider = "factoryMethodInput") + @ParameterizedTest + @MethodSource("getInputs") public void testResolveProperty(String cResolve, NotFoundAction action, String systemId, String expectedResult, Class expectedThrow) throws Exception { Catalog c = getCatalog(cResolve); if (expectedThrow != null) { - Assert.assertThrows(expectedThrow, - () -> resolveRef(c, action, systemId)); + assertThrows(expectedThrow, () -> resolveRef(c, action, systemId)); } else { - String sysId = resolveRef(c, action, systemId); System.out.println(sysId); - Assert.assertEquals(sysId, - (expectedResult == null) ? null : Paths.get(filepath + expectedResult).toUri().toString().replace("///", "/"), - "System ID match not right"); + String expected = (expectedResult == null) + ? null + : Paths.get(filepath + expectedResult).toUri().toString().replace("///", "/"); + assertEquals(expected, sysId, "System ID match not right"); } } @@ -127,9 +130,10 @@ public class CatalogResolverTest extends CatalogSupportBase { * Verifies that the catalogResolver method throws NullPointerException if * any of the parameters is null. */ - @Test(dataProvider = "NPETest", expectedExceptions = NullPointerException.class) + @ParameterizedTest + @MethodSource("getNPETest") public void testCatalogProperty(Catalog c, NotFoundAction action) { - CatalogManager.catalogResolver(c, action); + assertThrows(NullPointerException.class, () -> CatalogManager.catalogResolver(c, action)); } private String resolveRef(Catalog c, NotFoundAction action, String systemId) throws Exception { @@ -140,9 +144,8 @@ public class CatalogResolverTest extends CatalogSupportBase { private Catalog getCatalog(String cResolve) throws Exception { URI catalogFile = getClass().getResource("catalog.xml").toURI(); - Catalog c = CatalogManager.catalog( + return CatalogManager.catalog( CatalogFeatures.builder().with(CatalogFeatures.Feature.RESOLVE, cResolve).build(), catalogFile); - return c; } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogReuseTest.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogReuseTest.java index 6bc563f3df3..fc4329fa198 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogReuseTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogReuseTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,22 +22,27 @@ */ package catalog; -import java.net.URI; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + import javax.xml.catalog.Catalog; import javax.xml.catalog.CatalogFeatures; import javax.xml.catalog.CatalogManager; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; +import java.net.URI; + +import static org.junit.jupiter.api.Assertions.assertTrue; /* * @test * @bug 8253569 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng catalog.CatalogReuseTest + * @run junit catalog.CatalogReuseTest * @summary Verifies that a catalog can be reused. */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogReuseTest extends CatalogSupportBase { static final CatalogFeatures FEATURES_STRICT = CatalogFeatures.builder(). with(CatalogFeatures.Feature.RESOLVE, "strict").build(); @@ -46,7 +51,6 @@ public class CatalogReuseTest extends CatalogSupportBase { DataProvider: reuses a catalog. The length of the URIs is in descending order. Data columns: catalog, uri, expected */ - @DataProvider(name = "dataWithCatalogD") public Object[][] dataWithCatalogD() { Catalog c = getCatalog(); return new Object[][]{ @@ -59,7 +63,6 @@ public class CatalogReuseTest extends CatalogSupportBase { DataProvider: reuses a catalog. The length of the URIs is in ascending order. Data columns: catalog, uri, expected */ - @DataProvider(name = "dataWithCatalogA") public Object[][] dataWithCatalogA() { Catalog c = getCatalog(); return new Object[][]{ @@ -72,18 +75,17 @@ public class CatalogReuseTest extends CatalogSupportBase { DataProvider: provides no catalog. A new catalog will be created for each test. Data columns: uri, expected */ - @DataProvider(name = "dataWithoutCatalog") public Object[][] dataWithoutCatalog() { - return new Object[][]{ - {"http://entailments/example.org/A/B/derived.ttl", "derived/A/B/derived.ttl"}, - {"http://example.org/A/B.owl", "sources/A/B.owl"}, - }; + return new Object[][] { + { "http://entailments/example.org/A/B/derived.ttl", "derived/A/B/derived.ttl" }, + { "http://example.org/A/B.owl", "sources/A/B.owl" }, + }; } /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { super.setUp(); } @@ -91,36 +93,38 @@ public class CatalogReuseTest extends CatalogSupportBase { /* * Verifies that a Catalog object can be reused, that no state data are * in the way of a subsequent matching attempt. - */ - @Test(dataProvider = "dataWithCatalogD") + */ + @ParameterizedTest + @MethodSource("dataWithCatalogD") public void testD(Catalog c, String uri, String expected) throws Exception { String m = c.matchURI(uri); - Assert.assertTrue(m.endsWith(expected), "Expected: " + expected); + assertTrue(m.endsWith(expected), "Expected: " + expected); } /* * Verifies that a Catalog object can be reused. - */ - @Test(dataProvider = "dataWithCatalogA") + */ + @ParameterizedTest + @MethodSource("dataWithCatalogA") public void testA(Catalog c, String uri, String expected) throws Exception { String m = c.matchURI(uri); - Assert.assertTrue(m.endsWith(expected), "Expected: " + expected); + assertTrue(m.endsWith(expected), "Expected: " + expected); } /* * Verifies that a match is found in a newly created Catalog. - */ - @Test(dataProvider = "dataWithoutCatalog") + */ + @ParameterizedTest + @MethodSource("dataWithoutCatalog") public void testNew(String uri, String expected) throws Exception { Catalog c = getCatalog(); String m = c.matchURI(uri); - Assert.assertTrue(m.endsWith(expected), "Expected: " + expected); + assertTrue(m.endsWith(expected), "Expected: " + expected); } private Catalog getCatalog() { String uri = "file://" + slash + filepath + "/catalogReuse.xml"; - Catalog c = CatalogManager.catalog(FEATURES_STRICT, uri != null? URI.create(uri) : null); - return c; + return CatalogManager.catalog(FEATURES_STRICT, URI.create(uri)); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport.java index 4344bc1c623..1bd44d3c26b 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,14 @@ package catalog; -import java.io.File; -import java.io.StringReader; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.w3c.dom.ls.LSResourceResolver; +import org.xml.sax.InputSource; + import javax.xml.stream.XMLResolver; import javax.xml.transform.Source; import javax.xml.transform.URIResolver; @@ -32,17 +38,14 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stax.StAXSource; import javax.xml.transform.stream.StreamSource; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.w3c.dom.ls.LSResourceResolver; -import org.xml.sax.InputSource; +import java.io.File; +import java.io.StringReader; -/** +/* * @test * @bug 8158084 8162438 8162442 8166220 8166398 8290740 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm catalog.CatalogSupport + * @run junit/othervm catalog.CatalogSupport * @summary verifies the use of Catalog in SAX/DOM/StAX/Validation/Transform. * The two main scenarios for all processors are: * A custom resolver is used whether or not there's a Catalog; @@ -51,12 +54,12 @@ import org.xml.sax.InputSource; */ /** - * Support Catalog: + *

Support Catalog:

* With this patch, the Catalog features are supported by all of the JAXP processors. * The support is enabled by default. Using Catalog is as simple as setting a * path to a catalog, through the API, or System property, or jaxp.properties. * - * Test notes: + *

Test notes:

* For all DataProviders, the 1st and 2nd columns determine whether to set USE_CATALOG * through the API and to use Catalog. When a custom resolver is specified, these * settings should not affect the operation, thus the tests are repeated for both @@ -64,11 +67,12 @@ import org.xml.sax.InputSource; * * @author huizhe.wang@oracle.com */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogSupport extends CatalogSupportBase { /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { setUp(); } @@ -76,7 +80,8 @@ public class CatalogSupport extends CatalogSupportBase { /* Verifies the Catalog support on SAXParser. */ - @Test(dataProvider = "data_SAXA") + @ParameterizedTest + @MethodSource("getDataSAX") public void testSAXA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testSAX(setUseCatalog, useCatalog, catalog, xml, handler, expected); @@ -85,7 +90,8 @@ public class CatalogSupport extends CatalogSupportBase { /* Verifies the Catalog support on XMLReader. */ - @Test(dataProvider = "data_SAXA") + @ParameterizedTest + @MethodSource("getDataSAX") public void testXMLReaderA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testXMLReader(setUseCatalog, useCatalog, catalog, xml, handler, expected); @@ -94,7 +100,8 @@ public class CatalogSupport extends CatalogSupportBase { /* Verifies the Catalog support on XInclude. */ - @Test(dataProvider = "data_XIA") + @ParameterizedTest + @MethodSource("getDataXI") public void testXIncludeA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testXInclude(setUseCatalog, useCatalog, catalog, xml, handler, expected); @@ -104,7 +111,8 @@ public class CatalogSupport extends CatalogSupportBase { Verifies that the Catalog is used when the handler is null. The test shall run through without an Exception (that was thrown before the fix). */ - @Test(dataProvider = "data_XIA") + @ParameterizedTest + @MethodSource("getDataXI") public void testXIncludeA_NullHandler(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { handler = null; @@ -114,7 +122,8 @@ public class CatalogSupport extends CatalogSupportBase { /* Verifies the Catalog support on DOM parser. */ - @Test(dataProvider = "data_DOMA") + @ParameterizedTest + @MethodSource("getDataDOM") public void testDOMA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testDOM(setUseCatalog, useCatalog, catalog, xml, handler, expected); @@ -123,7 +132,8 @@ public class CatalogSupport extends CatalogSupportBase { /* Verifies the Catalog support on XMLStreamReader. */ - @Test(dataProvider = "data_StAXA") + @ParameterizedTest + @MethodSource("getDataStAX") public void testStAXA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, XMLResolver resolver, String expected) throws Exception { testStAX(setUseCatalog, useCatalog, catalog, xml, resolver, expected); @@ -133,7 +143,8 @@ public class CatalogSupport extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsd import and include in Schema files. */ - @Test(dataProvider = "data_SchemaA") + @ParameterizedTest + @MethodSource("getDataSchema") public void testValidationA(boolean setUseCatalog, boolean useCatalog, String catalog, String xsd, LSResourceResolver resolver) throws Exception { @@ -145,7 +156,8 @@ public class CatalogSupport extends CatalogSupportBase { @bug 8158084 8162438 these tests also verifies the fix for 8162438 Verifies the Catalog support on the Schema Validator. */ - @Test(dataProvider = "data_ValidatorA") + @ParameterizedTest + @MethodSource("getDataValidator") public void testValidatorA(boolean setUseCatalog1, boolean setUseCatalog2, boolean useCatalog, Source source, LSResourceResolver resolver1, LSResourceResolver resolver2, String catalog1, String catalog2) @@ -158,7 +170,8 @@ public class CatalogSupport extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLA") + @ParameterizedTest + @MethodSource("getDataXSL") public void testXSLImportA(boolean setUseCatalog, boolean useCatalog, String catalog, SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { @@ -171,7 +184,8 @@ public class CatalogSupport extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLA") + @ParameterizedTest + @MethodSource("getDataXSL") public void testXSLImportWTemplatesA(boolean setUseCatalog, boolean useCatalog, String catalog, SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { @@ -182,7 +196,6 @@ public class CatalogSupport extends CatalogSupportBase { DataProvider: for testing the SAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_SAXA") public Object[][] getDataSAX() { String[] systemIds = {"system.dtd"}; return new Object[][]{ @@ -198,7 +211,6 @@ public class CatalogSupport extends CatalogSupportBase { DataProvider: for testing XInclude Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_XIA") public Object[][] getDataXI() { String[] systemIds = {"XI_simple.xml"}; InputSource[] returnValues = {new InputSource(xml_xIncludeSimple)}; @@ -214,7 +226,6 @@ public class CatalogSupport extends CatalogSupportBase { DataProvider: for testing DOM parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_DOMA") public Object[][] getDataDOM() { String[] systemIds = {"system.dtd"}; InputSource[] returnValues = {new InputSource(new StringReader(dtd_systemResolved))}; @@ -232,7 +243,6 @@ public class CatalogSupport extends CatalogSupportBase { DataProvider: for testing the StAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_StAXA") public Object[][] getDataStAX() { return new Object[][]{ @@ -250,7 +260,6 @@ public class CatalogSupport extends CatalogSupportBase { DataProvider: for testing Schema validation Data: set use_catalog, use_catalog, catalog file, xsd file, a LSResourceResolver */ - @DataProvider(name = "data_SchemaA") public Object[][] getDataSchema() { String[] systemIds = {"pathto/XMLSchema.dtd", "datatypes.dtd"}; XmlInput[] returnValues = {new XmlInput(null, dtd_xmlSchema, null), new XmlInput(null, dtd_datatypes, null)}; @@ -285,7 +294,6 @@ public class CatalogSupport extends CatalogSupportBase { DataProvider: for testing Schema Validator Data: source, resolver1, resolver2, catalog1, a catalog2 */ - @DataProvider(name = "data_ValidatorA") public Object[][] getDataValidator() { DOMSource ds = getDOMSource(xml_val_test, xml_val_test_id, false, true, xml_catalog); @@ -325,7 +333,6 @@ public class CatalogSupport extends CatalogSupportBase { DataProvider: for testing XSL import and include Data: set use_catalog, use_catalog, catalog file, xsl file, xml file, a URIResolver, expected result */ - @DataProvider(name = "data_XSLA") public Object[][] getDataXSL() { // XSLInclude.xsl has one import XSLImport_html.xsl and two includes, // XSLInclude_header.xsl and XSLInclude_footer.xsl; diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport1.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport1.java index 2025e2d14d3..d8e7f8bb77e 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport1.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport1.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,11 +23,14 @@ package catalog; -import static jaxp.library.JAXPTestUtilities.clearSystemProperty; -import static jaxp.library.JAXPTestUtilities.setSystemProperty; - -import java.io.File; -import java.io.StringReader; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.w3c.dom.ls.LSResourceResolver; +import org.xml.sax.InputSource; import javax.xml.catalog.CatalogFeatures.Feature; import javax.xml.stream.XMLResolver; @@ -37,19 +40,14 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stax.StAXSource; import javax.xml.transform.stream.StreamSource; - -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.w3c.dom.ls.LSResourceResolver; -import org.xml.sax.InputSource; +import java.io.File; +import java.io.StringReader; /* * @test * @bug 8158084 8162438 8162442 8166220 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm catalog.CatalogSupport1 + * @run junit/othervm catalog.CatalogSupport1 * @summary extends CatalogSupport, verifies that the catalog file can be set * using the System property. */ @@ -60,25 +58,27 @@ import org.xml.sax.InputSource; * * @author huizhe.wang@oracle.com */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogSupport1 extends CatalogSupportBase { /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { setUp(); - setSystemProperty(Feature.FILES.getPropertyName(), xml_catalog); + System.setProperty(Feature.FILES.getPropertyName(), xml_catalog); } - @AfterClass + @AfterAll public void tearDownClass() throws Exception { - clearSystemProperty(Feature.FILES.getPropertyName()); + System.clearProperty(Feature.FILES.getPropertyName()); } /* Verifies the Catalog support on SAXParser. */ - @Test(dataProvider = "data_SAXC") + @ParameterizedTest + @MethodSource("getDataSAXC") public void testSAXC(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testSAX(setUseCatalog, useCatalog, catalog, xml, handler, expected); } @@ -86,7 +86,8 @@ public class CatalogSupport1 extends CatalogSupportBase { /* Verifies the Catalog support on XMLReader. */ - @Test(dataProvider = "data_SAXC") + @ParameterizedTest + @MethodSource("getDataSAXC") public void testXMLReaderC(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testXMLReader(setUseCatalog, useCatalog, catalog, xml, handler, expected); } @@ -94,7 +95,8 @@ public class CatalogSupport1 extends CatalogSupportBase { /* Verifies the Catalog support on XInclude. */ - @Test(dataProvider = "data_XIC") + @ParameterizedTest + @MethodSource("getDataXIC") public void testXIncludeC(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testXInclude(setUseCatalog, useCatalog, catalog, xml, handler, expected); } @@ -102,7 +104,8 @@ public class CatalogSupport1 extends CatalogSupportBase { /* Verifies the Catalog support on DOM parser. */ - @Test(dataProvider = "data_DOMC") + @ParameterizedTest + @MethodSource("getDataDOMC") public void testDOMC(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testDOM(setUseCatalog, useCatalog, catalog, xml, handler, expected); } @@ -110,7 +113,8 @@ public class CatalogSupport1 extends CatalogSupportBase { /* Verifies the Catalog support on XMLStreamReader. */ - @Test(dataProvider = "data_StAXC") + @ParameterizedTest + @MethodSource("getDataStAX") public void testStAXC(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, XMLResolver resolver, String expected) throws Exception { testStAX(setUseCatalog, useCatalog, catalog, xml, resolver, expected); @@ -120,7 +124,8 @@ public class CatalogSupport1 extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsd import and include in Schema files. */ - @Test(dataProvider = "data_SchemaC") + @ParameterizedTest + @MethodSource("getDataSchemaC") public void testValidationC(boolean setUseCatalog, boolean useCatalog, String catalog, String xsd, LSResourceResolver resolver) throws Exception { @@ -131,7 +136,8 @@ public class CatalogSupport1 extends CatalogSupportBase { @bug 8158084 8162438 these tests also verifies the fix for 8162438 Verifies the Catalog support on the Schema Validator. */ - @Test(dataProvider = "data_ValidatorC") + @ParameterizedTest + @MethodSource("getDataValidator") public void testValidatorA(boolean setUseCatalog1, boolean setUseCatalog2, boolean useCatalog, Source source, LSResourceResolver resolver1, LSResourceResolver resolver2, String catalog1, String catalog2) @@ -144,7 +150,8 @@ public class CatalogSupport1 extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLC") + @ParameterizedTest + @MethodSource("getDataXSLC") public void testXSLImportC(boolean setUseCatalog, boolean useCatalog, String catalog, SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { @@ -156,7 +163,8 @@ public class CatalogSupport1 extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLC") + @ParameterizedTest + @MethodSource("getDataXSLC") public void testXSLImportWTemplatesC(boolean setUseCatalog, boolean useCatalog, String catalog, SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { testXSLImportWTemplates(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected); @@ -166,7 +174,6 @@ public class CatalogSupport1 extends CatalogSupportBase { DataProvider: for testing the SAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_SAXC") public Object[][] getDataSAXC() { return new Object[][]{ {false, true, null, xml_system, new MyHandler(elementInSystem), expectedWCatalog} @@ -178,7 +185,6 @@ public class CatalogSupport1 extends CatalogSupportBase { DataProvider: for testing XInclude Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_XIC") public Object[][] getDataXIC() { return new Object[][]{ {false, true, null, xml_xInclude, new MyHandler(elementInXISimple), contentInUIutf8Catalog}, @@ -189,7 +195,6 @@ public class CatalogSupport1 extends CatalogSupportBase { DataProvider: for testing DOM parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_DOMC") public Object[][] getDataDOMC() { return new Object[][]{ {false, true, null, xml_system, new MyHandler(elementInSystem), expectedWCatalog} @@ -200,7 +205,6 @@ public class CatalogSupport1 extends CatalogSupportBase { DataProvider: for testing the StAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_StAXC") public Object[][] getDataStAX() { return new Object[][]{ @@ -212,7 +216,6 @@ public class CatalogSupport1 extends CatalogSupportBase { DataProvider: for testing Schema validation Data: set use_catalog, use_catalog, catalog file, xsd file, a LSResourceResolver */ - @DataProvider(name = "data_SchemaC") public Object[][] getDataSchemaC() { return new Object[][]{ @@ -230,7 +233,6 @@ public class CatalogSupport1 extends CatalogSupportBase { DataProvider: for testing Schema Validator Data: source, resolver1, resolver2, catalog1, a catalog2 */ - @DataProvider(name = "data_ValidatorC") public Object[][] getDataValidator() { DOMSource ds = getDOMSource(xml_val_test, xml_val_test_id, false, true, null); @@ -270,7 +272,6 @@ public class CatalogSupport1 extends CatalogSupportBase { DataProvider: for testing XSL import and include Data: set use_catalog, use_catalog, catalog file, xsl file, xml file, a URIResolver, expected */ - @DataProvider(name = "data_XSLC") public Object[][] getDataXSLC() { SAXSource xslSourceDTD = new SAXSource(new InputSource(new StringReader(xsl_includeDTD))); StreamSource xmlSourceDTD = new StreamSource(new StringReader(xml_xslDTD)); diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport2.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport2.java index ecb88de1932..2346a8577b0 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport2.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport2.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,13 +23,17 @@ package catalog; -import static jaxp.library.JAXPTestUtilities.clearSystemProperty; -import static jaxp.library.JAXPTestUtilities.getSystemProperty; -import static jaxp.library.JAXPTestUtilities.setSystemProperty; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.w3c.dom.ls.LSResourceResolver; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; -import java.io.File; -import java.io.IOException; -import java.io.StringReader; import javax.xml.stream.XMLResolver; import javax.xml.stream.XMLStreamException; import javax.xml.transform.Source; @@ -39,21 +43,16 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stax.StAXSource; import javax.xml.transform.stream.StreamSource; +import java.io.File; +import java.io.StringReader; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.w3c.dom.ls.LSResourceResolver; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; +import static org.junit.jupiter.api.Assertions.assertThrows; /* * @test * @bug 8158084 8162438 8162442 8163535 8166220 8344800 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm catalog.CatalogSupport2 + * @run junit/othervm catalog.CatalogSupport2 * @summary extends CatalogSupport tests, verifies that the use of the Catalog may * be disabled through the System property. */ @@ -65,108 +64,130 @@ import org.xml.sax.SAXParseException; * * @author huizhe.wang@oracle.com */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogSupport2 extends CatalogSupportBase { static final String TTIMEOUTREAD = "sun.net.client.defaultReadTimeout"; static final String TIMEOUTCONNECT = "sun.net.client.defaultConnectTimeout"; - static String timeoutRead = getSystemProperty(TTIMEOUTREAD); - static String timeoutConnect = getSystemProperty(TIMEOUTCONNECT); + static String timeoutRead = System.getProperty(TTIMEOUTREAD); + static String timeoutConnect = System.getProperty(TIMEOUTCONNECT); /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { setUp(); - setSystemProperty(SP_USE_CATALOG, "false"); - setSystemProperty(SP_ACCESS_EXTERNAL_DTD, "file"); - timeoutRead = getSystemProperty(TTIMEOUTREAD); - timeoutConnect = getSystemProperty(TIMEOUTCONNECT); - setSystemProperty(TTIMEOUTREAD, "1000"); - setSystemProperty(TIMEOUTCONNECT, "1000"); + System.setProperty(SP_USE_CATALOG, "false"); + System.setProperty(SP_ACCESS_EXTERNAL_DTD, "file"); + timeoutRead = System.getProperty(TTIMEOUTREAD); + timeoutConnect = System.getProperty(TIMEOUTCONNECT); + System.setProperty(TTIMEOUTREAD, "1000"); + System.setProperty(TIMEOUTCONNECT, "1000"); } - @AfterClass - public void tearDownClass() throws Exception { - clearSystemProperty(SP_USE_CATALOG); - clearSystemProperty(SP_ACCESS_EXTERNAL_DTD); - setSystemProperty(TIMEOUTCONNECT, "-1"); - setSystemProperty(TTIMEOUTREAD, "-1"); + @AfterAll + public void tearDownClass() { + System.clearProperty(SP_USE_CATALOG); + System.clearProperty(SP_ACCESS_EXTERNAL_DTD); + System.setProperty(TIMEOUTCONNECT, "-1"); + System.setProperty(TTIMEOUTREAD, "-1"); } /* Verifies the Catalog support on SAXParser. */ - @Test(dataProvider = "data_SAXC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataSAXC") public void testSAXC(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { - testSAX(setUseCatalog, useCatalog, catalog, xml, handler, expected); + assertThrows( + SAXParseException.class, + () -> testSAX(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on XMLReader. */ - @Test(dataProvider = "data_SAXC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataSAXC") public void testXMLReaderC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testXMLReader(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) throws Exception { + assertThrows( + SAXParseException.class, + () -> testXMLReader(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on XInclude. */ - @Test(dataProvider = "data_XIC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataXIC") public void testXIncludeC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testXInclude(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) throws Exception { + assertThrows( + SAXParseException.class, + () -> testXInclude(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on DOM parser. */ - @Test(dataProvider = "data_DOMC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataDOMC") public void testDOMC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testDOM(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) throws Exception { + assertThrows( + SAXParseException.class, + () -> testDOM(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on XMLStreamReader. */ - @Test(dataProvider = "data_StAXC", expectedExceptions = XMLStreamException.class) + @ParameterizedTest + @MethodSource("getDataStAX") public void testStAXC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, XMLResolver resolver, String expected) throws Exception { - testStAXNegative(setUseCatalog, useCatalog, catalog, xml, resolver, expected); + String xml, XMLResolver resolver, String expected) throws Exception { + assertThrows( + XMLStreamException.class, + () -> testStAXNegative(setUseCatalog, useCatalog, catalog, xml, resolver, expected)); } /* Verifies the Catalog support on resolving DTD, xsd import and include in Schema files. */ - @Test(dataProvider = "data_SchemaC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataSchemaC") public void testValidationC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xsd, LSResourceResolver resolver) - throws Exception { - testValidation(setUseCatalog, useCatalog, catalog, xsd, resolver) ; + String xsd, LSResourceResolver resolver) { + assertThrows( + SAXParseException.class, + () -> testValidation(setUseCatalog, useCatalog, catalog, xsd, resolver)); } - @Test(dataProvider = "data_ValidatorC", expectedExceptions = {SAXException.class, IOException.class}) + @ParameterizedTest + @MethodSource("getDataValidator") public void testValidatorC(boolean setUseCatalog1, boolean setUseCatalog2, boolean useCatalog, - Source source, LSResourceResolver resolver1, LSResourceResolver resolver2, - String catalog1, String catalog2) - throws Exception { - testValidator(setUseCatalog1, setUseCatalog2, useCatalog, source, - resolver1, resolver2, catalog1, catalog2); + Source source, LSResourceResolver resolver1, LSResourceResolver resolver2, + String catalog1, String catalog2) { + assertThrows( + SAXException.class, + () -> testValidator(setUseCatalog1, setUseCatalog2, useCatalog, source, resolver1, resolver2, catalog1, catalog2)); } /* Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLC", expectedExceptions = TransformerException.class) + @ParameterizedTest + @MethodSource("getDataXSLC") public void testXSLImportC(boolean setUseCatalog, boolean useCatalog, String catalog, - SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { + SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) { - testXSLImport(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected); + assertThrows( + TransformerException.class, + () -> testXSLImport(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected)); } /* @@ -174,17 +195,19 @@ public class CatalogSupport2 extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLC", expectedExceptions = TransformerException.class) + @ParameterizedTest + @MethodSource("getDataXSLC") public void testXSLImportWTemplatesC(boolean setUseCatalog, boolean useCatalog, String catalog, - SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { - testXSLImportWTemplates(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected); + SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) { + assertThrows( + TransformerException.class, + () -> testXSLImportWTemplates(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected)); } /* DataProvider: for testing the SAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_SAXC") public Object[][] getDataSAXC() { return new Object[][]{ {false, true, xml_catalog, xml_system, new MyHandler(elementInSystem), expectedWCatalog} @@ -196,7 +219,6 @@ public class CatalogSupport2 extends CatalogSupportBase { DataProvider: for testing XInclude Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_XIC") public Object[][] getDataXIC() { return new Object[][]{ {false, true, xml_catalog, xml_xInclude, new MyHandler(elementInXISimple), contentInUIutf8Catalog}, @@ -207,7 +229,6 @@ public class CatalogSupport2 extends CatalogSupportBase { DataProvider: for testing DOM parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_DOMC") public Object[][] getDataDOMC() { return new Object[][]{ {false, true, xml_catalog, xml_system, new MyHandler(elementInSystem), expectedWCatalog} @@ -218,7 +239,6 @@ public class CatalogSupport2 extends CatalogSupportBase { DataProvider: for testing the StAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_StAXC") public Object[][] getDataStAX() { return new Object[][]{ {false, true, xml_catalog, xml_system, null, "null"}, @@ -229,7 +249,6 @@ public class CatalogSupport2 extends CatalogSupportBase { DataProvider: for testing Schema validation Data: set use_catalog, use_catalog, catalog file, xsd file, a LSResourceResolver */ - @DataProvider(name = "data_SchemaC") public Object[][] getDataSchemaC() { return new Object[][]{ @@ -247,7 +266,6 @@ public class CatalogSupport2 extends CatalogSupportBase { DataProvider: for testing Schema Validator Data: source, resolver1, resolver2, catalog1, a catalog2 */ - @DataProvider(name = "data_ValidatorC") public Object[][] getDataValidator() { DOMSource ds = getDOMSource(xml_val_test, xml_val_test_id, true, true, xml_catalog); @@ -276,7 +294,6 @@ public class CatalogSupport2 extends CatalogSupportBase { DataProvider: for testing XSL import and include Data: set use_catalog, use_catalog, catalog file, xsl file, xml file, a URIResolver, expected */ - @DataProvider(name = "data_XSLC") public Object[][] getDataXSLC() { SAXSource xslSourceDTD = new SAXSource(new InputSource(new StringReader(xsl_includeDTD))); StreamSource xmlSourceDTD = new StreamSource(new StringReader(xml_xslDTD)); diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport3.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport3.java index 4d44ce80fe6..cd06c2b6cba 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport3.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport3.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,13 +23,17 @@ package catalog; -import static jaxp.library.JAXPTestUtilities.clearSystemProperty; -import static jaxp.library.JAXPTestUtilities.getSystemProperty; -import static jaxp.library.JAXPTestUtilities.setSystemProperty; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.w3c.dom.ls.LSResourceResolver; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; -import java.io.File; -import java.io.IOException; -import java.io.StringReader; import javax.xml.stream.XMLResolver; import javax.xml.stream.XMLStreamException; import javax.xml.transform.Source; @@ -39,21 +43,16 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stax.StAXSource; import javax.xml.transform.stream.StreamSource; +import java.io.File; +import java.io.StringReader; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.w3c.dom.ls.LSResourceResolver; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; +import static org.junit.jupiter.api.Assertions.assertThrows; /* * @test * @bug 8158084 8162438 8162442 8163535 8166220 8344800 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm catalog.CatalogSupport3 + * @run junit/othervm catalog.CatalogSupport3 * @summary extends CatalogSupport tests, verifies that the use of the Catalog may * be disabled through the API property. */ @@ -65,109 +64,131 @@ import org.xml.sax.SAXParseException; * * @author huizhe.wang@oracle.com */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogSupport3 extends CatalogSupportBase { static final String TTIMEOUTREAD = "sun.net.client.defaultReadTimeout"; static final String TIMEOUTCONNECT = "sun.net.client.defaultConnectTimeout"; - static String timeoutRead = getSystemProperty(TTIMEOUTREAD); - static String timeoutConnect = getSystemProperty(TIMEOUTCONNECT); + static String timeoutRead = System.getProperty(TTIMEOUTREAD); + static String timeoutConnect = System.getProperty(TIMEOUTCONNECT); /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { setUp(); - timeoutRead = getSystemProperty(TTIMEOUTREAD); - timeoutConnect = getSystemProperty(TIMEOUTCONNECT); - setSystemProperty(TTIMEOUTREAD, "1000"); - setSystemProperty(TIMEOUTCONNECT, "1000"); - setSystemProperty(SP_ACCESS_EXTERNAL_DTD, "file"); + timeoutRead = System.getProperty(TTIMEOUTREAD); + timeoutConnect = System.getProperty(TIMEOUTCONNECT); + System.setProperty(TTIMEOUTREAD, "1000"); + System.setProperty(TIMEOUTCONNECT, "1000"); + System.setProperty(SP_ACCESS_EXTERNAL_DTD, "file"); } - @AfterClass - public void tearDownClass() throws Exception { - setSystemProperty(TIMEOUTCONNECT, "-1"); - setSystemProperty(TTIMEOUTREAD, "-1"); - clearSystemProperty(SP_ACCESS_EXTERNAL_DTD); + @AfterAll + public void tearDownClass() { + System.setProperty(TIMEOUTCONNECT, "-1"); + System.setProperty(TTIMEOUTREAD, "-1"); + System.clearProperty(SP_ACCESS_EXTERNAL_DTD); } /* Verifies the Catalog support on SAXParser. */ - @Test(dataProvider = "data_SAXC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataSAXC") public void testSAXC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testSAX(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) { + assertThrows( + SAXParseException.class, + () -> testSAX(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on XMLReader. */ - @Test(dataProvider = "data_SAXC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataSAXC") public void testXMLReaderC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testXMLReader(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) { + assertThrows( + SAXParseException.class, + () -> testXMLReader(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on XInclude. */ - @Test(dataProvider = "data_XIC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataXIC") public void testXIncludeC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testXInclude(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) { + assertThrows( + SAXParseException.class, + () -> testXInclude(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on DOM parser. */ - @Test(dataProvider = "data_DOMC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataDOMC") public void testDOMC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testDOM(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) { + assertThrows( + SAXParseException.class, + () -> testDOM(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on XMLStreamReader. */ - @Test(dataProvider = "data_StAXC", expectedExceptions = XMLStreamException.class) + @ParameterizedTest + @MethodSource("getDataStAX") public void testStAXC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, XMLResolver resolver, String expected) throws Exception { - testStAXNegative(setUseCatalog, useCatalog, catalog, xml, resolver, expected); + String xml, XMLResolver resolver, String expected) { + assertThrows( + XMLStreamException.class, + () -> testStAXNegative(setUseCatalog, useCatalog, catalog, xml, resolver, expected)); } /* Verifies the Catalog support on resolving DTD, xsd import and include in Schema files. */ - @Test(dataProvider = "data_SchemaC", expectedExceptions = SAXParseException.class) + @ParameterizedTest + @MethodSource("getDataSchemaC") public void testValidationC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xsd, LSResourceResolver resolver) - throws Exception { - testValidation(setUseCatalog, useCatalog, catalog, xsd, resolver) ; + String xsd, LSResourceResolver resolver) { + assertThrows( + SAXParseException.class, + () -> testValidation(setUseCatalog, useCatalog, catalog, xsd, resolver)); } /* @bug 8158084 8162438 these tests also verifies the fix for 8162438 Verifies the Catalog support on the Schema Validator. */ - @Test(dataProvider = "data_ValidatorC", expectedExceptions = {SAXException.class, IOException.class}) + @ParameterizedTest + @MethodSource("getDataValidator") public void testValidatorC(boolean setUseCatalog1, boolean setUseCatalog2, boolean useCatalog, - Source source, LSResourceResolver resolver1, LSResourceResolver resolver2, - String catalog1, String catalog2) - throws Exception { - testValidator(setUseCatalog1, setUseCatalog2, useCatalog, source, - resolver1, resolver2, catalog1, catalog2); + Source source, LSResourceResolver resolver1, LSResourceResolver resolver2, + String catalog1, String catalog2) { + assertThrows( + SAXException.class, + () -> testValidator(setUseCatalog1, setUseCatalog2, useCatalog, source, resolver1, resolver2, catalog1, catalog2)); } /* Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLC", expectedExceptions = TransformerException.class) + @ParameterizedTest + @MethodSource("getDataXSLC") public void testXSLImportC(boolean setUseCatalog, boolean useCatalog, String catalog, SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { - testXSLImport(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected); + assertThrows( + TransformerException.class, + () -> testXSLImport(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected)); } /* @@ -175,18 +196,20 @@ public class CatalogSupport3 extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLC", expectedExceptions = TransformerException.class) + @ParameterizedTest + @MethodSource("getDataXSLC") public void testXSLImportWTemplatesC(boolean setUseCatalog, boolean useCatalog, String catalog, - SAXSource xsl, StreamSource xml, - URIResolver resolver, String expected) throws Exception { - testXSLImportWTemplates(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected); + SAXSource xsl, StreamSource xml, + URIResolver resolver, String expected) throws Exception { + assertThrows( + TransformerException.class, + () -> testXSLImportWTemplates(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected)); } /* DataProvider: for testing the SAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_SAXC") public Object[][] getDataSAXC() { return new Object[][]{ {true, false, xml_catalog, xml_system, new MyHandler(elementInSystem), expectedWCatalog} @@ -198,7 +221,6 @@ public class CatalogSupport3 extends CatalogSupportBase { DataProvider: for testing XInclude Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_XIC") public Object[][] getDataXIC() { return new Object[][]{ {true, false, xml_catalog, xml_xInclude, new MyHandler(elementInXISimple), contentInUIutf8Catalog}, @@ -209,7 +231,6 @@ public class CatalogSupport3 extends CatalogSupportBase { DataProvider: for testing DOM parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_DOMC") public Object[][] getDataDOMC() { return new Object[][]{ {true, false, xml_catalog, xml_system, new MyHandler(elementInSystem), expectedWCatalog} @@ -220,7 +241,6 @@ public class CatalogSupport3 extends CatalogSupportBase { DataProvider: for testing the StAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_StAXC") public Object[][] getDataStAX() { return new Object[][]{ {true, false, xml_catalog, xml_system, null, "null"}, @@ -231,7 +251,6 @@ public class CatalogSupport3 extends CatalogSupportBase { DataProvider: for testing Schema validation Data: set use_catalog, use_catalog, catalog file, xsd file, a LSResourceResolver */ - @DataProvider(name = "data_SchemaC") public Object[][] getDataSchemaC() { return new Object[][]{ @@ -249,7 +268,6 @@ public class CatalogSupport3 extends CatalogSupportBase { DataProvider: for testing Schema Validator Data: source, resolver1, resolver2, catalog1, a catalog2 */ - @DataProvider(name = "data_ValidatorC") public Object[][] getDataValidator() { DOMSource ds = getDOMSource(xml_val_test, xml_val_test_id, false, true, xml_catalog); @@ -287,7 +305,6 @@ public class CatalogSupport3 extends CatalogSupportBase { DataProvider: for testing XSL import and include Data: set use_catalog, use_catalog, catalog file, xsl file, xml file, a URIResolver, expected */ - @DataProvider(name = "data_XSLC") public Object[][] getDataXSLC() { SAXSource xslSourceDTD = new SAXSource(new InputSource(new StringReader(xsl_includeDTD))); StreamSource xmlSourceDTD = new StreamSource(new StringReader(xml_xslDTD)); diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport4.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport4.java index 8d06cc61355..f666e198228 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport4.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport4.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,11 +23,15 @@ package catalog; -import static jaxp.library.JAXPTestUtilities.clearSystemProperty; -import static jaxp.library.JAXPTestUtilities.setSystemProperty; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.w3c.dom.ls.LSResourceResolver; +import org.xml.sax.InputSource; -import java.io.File; -import java.io.StringReader; import javax.xml.stream.XMLResolver; import javax.xml.transform.Source; import javax.xml.transform.URIResolver; @@ -35,19 +39,14 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stax.StAXSource; import javax.xml.transform.stream.StreamSource; +import java.io.File; +import java.io.StringReader; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.w3c.dom.ls.LSResourceResolver; -import org.xml.sax.InputSource; - -/** +/* * @test * @bug 8158084 8162438 8162442 8166220 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm catalog.CatalogSupport4 + * @run junit/othervm catalog.CatalogSupport4 * @summary verifies the overriding over of the USE_CATALOG feature. Extending * CatalogSupport tests, the USE_CATALOG is turned off system-wide, however, * a JAXP processor may decide to use Catalog by enabling it through the factory @@ -62,26 +61,28 @@ import org.xml.sax.InputSource; * * @author huizhe.wang@oracle.com */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogSupport4 extends CatalogSupportBase { /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { setUp(); //turn off USE_CATALOG system-wide - setSystemProperty(SP_USE_CATALOG, "false"); + System.setProperty(SP_USE_CATALOG, "false"); } - @AfterClass + @AfterAll public void tearDownClass() throws Exception { - clearSystemProperty(SP_USE_CATALOG); + System.clearProperty(SP_USE_CATALOG); } /* Verifies the Catalog support on SAXParser. */ - @Test(dataProvider = "data_SAXA") + @ParameterizedTest + @MethodSource("getDataSAX") public void testSAXA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testSAX(setUseCatalog, useCatalog, catalog, xml, handler, expected); @@ -90,7 +91,8 @@ public class CatalogSupport4 extends CatalogSupportBase { /* Verifies the Catalog support on XMLReader. */ - @Test(dataProvider = "data_SAXA") + @ParameterizedTest + @MethodSource("getDataSAX") public void testXMLReaderA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testXMLReader(setUseCatalog, useCatalog, catalog, xml, handler, expected); @@ -99,7 +101,8 @@ public class CatalogSupport4 extends CatalogSupportBase { /* Verifies the Catalog support on XInclude. */ - @Test(dataProvider = "data_XIA") + @ParameterizedTest + @MethodSource("getDataXI") public void testXIncludeA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testXInclude(setUseCatalog, useCatalog, catalog, xml, handler, expected); @@ -108,7 +111,8 @@ public class CatalogSupport4 extends CatalogSupportBase { /* Verifies the Catalog support on DOM parser. */ - @Test(dataProvider = "data_DOMA") + @ParameterizedTest + @MethodSource("getDataDOM") public void testDOMA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, MyHandler handler, String expected) throws Exception { testDOM(setUseCatalog, useCatalog, catalog, xml, handler, expected); @@ -117,7 +121,8 @@ public class CatalogSupport4 extends CatalogSupportBase { /* Verifies the Catalog support on XMLStreamReader. */ - @Test(dataProvider = "data_StAXA") + @ParameterizedTest + @MethodSource("getDataStAX") public void testStAXA(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, XMLResolver resolver, String expected) throws Exception { testStAX(setUseCatalog, useCatalog, catalog, xml, resolver, expected); @@ -127,7 +132,8 @@ public class CatalogSupport4 extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsd import and include in Schema files. */ - @Test(dataProvider = "data_SchemaA") + @ParameterizedTest + @MethodSource("getDataSchema") public void testValidationA(boolean setUseCatalog, boolean useCatalog, String catalog, String xsd, LSResourceResolver resolver) throws Exception { @@ -139,7 +145,8 @@ public class CatalogSupport4 extends CatalogSupportBase { @bug 8158084 8162438 these tests also verifies the fix for 8162438 Verifies the Catalog support on the Schema Validator. */ - @Test(dataProvider = "data_ValidatorA") + @ParameterizedTest + @MethodSource("getDataValidator") public void testValidatorA(boolean setUseCatalog1, boolean setUseCatalog2, boolean useCatalog, Source source, LSResourceResolver resolver1, LSResourceResolver resolver2, String catalog1, String catalog2) @@ -152,7 +159,8 @@ public class CatalogSupport4 extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLA") + @ParameterizedTest + @MethodSource("getDataXSL") public void testXSLImportA(boolean setUseCatalog, boolean useCatalog, String catalog, SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { @@ -165,7 +173,8 @@ public class CatalogSupport4 extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLA") + @ParameterizedTest + @MethodSource("getDataXSL") public void testXSLImportWTemplatesA(boolean setUseCatalog, boolean useCatalog, String catalog, SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { @@ -176,7 +185,6 @@ public class CatalogSupport4 extends CatalogSupportBase { DataProvider: for testing the SAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_SAXA") public Object[][] getDataSAX() { return new Object[][]{ {true, true, xml_catalog, xml_system, new MyHandler(elementInSystem), expectedWCatalog}, @@ -187,7 +195,6 @@ public class CatalogSupport4 extends CatalogSupportBase { DataProvider: for testing XInclude Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_XIA") public Object[][] getDataXI() { return new Object[][]{ {true, true, xml_catalog, xml_xInclude, new MyHandler(elementInXISimple), contentInUIutf8Catalog}, @@ -198,7 +205,6 @@ public class CatalogSupport4 extends CatalogSupportBase { DataProvider: for testing DOM parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_DOMA") public Object[][] getDataDOM() { return new Object[][]{ {true, true, xml_catalog, xml_system, new MyHandler(elementInSystem), expectedWCatalog}, @@ -209,7 +215,6 @@ public class CatalogSupport4 extends CatalogSupportBase { DataProvider: for testing the StAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_StAXA") public Object[][] getDataStAX() { return new Object[][]{ @@ -217,15 +222,10 @@ public class CatalogSupport4 extends CatalogSupportBase { }; } - MyEntityHandler getMyEntityHandler(String elementName, String[] systemIds, InputSource... returnValues) { - return new MyEntityHandler(systemIds, returnValues, elementName); - } - /* DataProvider: for testing Schema validation Data: set use_catalog, use_catalog, catalog file, xsd file, a LSResourceResolver */ - @DataProvider(name = "data_SchemaA") public Object[][] getDataSchema() { return new Object[][]{ // for resolving DTD in xsd @@ -241,7 +241,6 @@ public class CatalogSupport4 extends CatalogSupportBase { DataProvider: for testing Schema Validator Data: source, resolver1, resolver2, catalog1, a catalog2 */ - @DataProvider(name = "data_ValidatorA") public Object[][] getDataValidator() { DOMSource ds = getDOMSource(xml_val_test, xml_val_test_id, true, true, xml_catalog); @@ -270,7 +269,6 @@ public class CatalogSupport4 extends CatalogSupportBase { DataProvider: for testing XSL import and include Data: set use_catalog, use_catalog, catalog file, xsl file, xml file, a URIResolver, expected result */ - @DataProvider(name = "data_XSLA") public Object[][] getDataXSL() { // XSLInclude.xsl has one import XSLImport_html.xsl and two includes, // XSLInclude_header.xsl and XSLInclude_footer.xsl; diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport5.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport5.java index 564848e2e1a..9a09fb9a45e 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport5.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupport5.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,15 @@ package catalog; -import java.io.File; -import java.io.StringReader; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.w3c.dom.ls.LSResourceResolver; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + import javax.xml.stream.XMLResolver; import javax.xml.stream.XMLStreamException; import javax.xml.transform.Source; @@ -34,19 +41,16 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stax.StAXSource; import javax.xml.transform.stream.StreamSource; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.w3c.dom.ls.LSResourceResolver; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; +import java.io.File; +import java.io.StringReader; + +import static org.junit.jupiter.api.Assertions.assertThrows; /* * @test * @bug 8158084 8163232 8166220 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm catalog.CatalogSupport5 + * @run junit/othervm catalog.CatalogSupport5 * @summary extends CatalogSupport tests, verifies that when errors occur, * relevant checked Exceptions are returned. */ @@ -58,12 +62,13 @@ import org.xml.sax.SAXException; * * @author huizhe.wang@oracle.com */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogSupport5 extends CatalogSupportBase { /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { setUp(); } @@ -72,77 +77,98 @@ public class CatalogSupport5 extends CatalogSupportBase { /* Verifies the Catalog support on SAXParser. */ - @Test(dataProvider = "data_SAXC", expectedExceptions = SAXException.class) + @ParameterizedTest + @MethodSource("getDataSAXC") public void testSAXC(boolean setUseCatalog, boolean useCatalog, String catalog, String - xml, MyHandler handler, String expected) throws Exception { - testSAX(setUseCatalog, useCatalog, catalog, xml, handler, expected); + xml, MyHandler handler, String expected) { + assertThrows( + SAXException.class, + () -> testSAX(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on XMLReader. */ - @Test(dataProvider = "data_SAXC", expectedExceptions = SAXException.class) + @ParameterizedTest + @MethodSource("getDataSAXC") public void testXMLReaderC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testXMLReader(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) { + assertThrows( + SAXException.class, + () -> testXMLReader(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on XInclude. */ - @Test(dataProvider = "data_XIC", expectedExceptions = SAXException.class) + @ParameterizedTest + @MethodSource("getDataXIC") public void testXIncludeC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testXInclude(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) { + assertThrows( + SAXException.class, + () -> testXInclude(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on DOM parser. */ - @Test(dataProvider = "data_DOMC", expectedExceptions = SAXException.class) + @ParameterizedTest + @MethodSource("getDataDOMC") public void testDOMC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, MyHandler handler, String expected) throws Exception { - testDOM(setUseCatalog, useCatalog, catalog, xml, handler, expected); + String xml, MyHandler handler, String expected) { + assertThrows( + SAXException.class, + () -> testDOM(setUseCatalog, useCatalog, catalog, xml, handler, expected)); } /* Verifies the Catalog support on XMLStreamReader. */ - @Test(dataProvider = "data_StAXC", expectedExceptions = XMLStreamException.class) + @ParameterizedTest + @MethodSource("getDataStAX") public void testStAXC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xml, XMLResolver resolver, String expected) throws Exception { - testStAX(setUseCatalog, useCatalog, catalog, xml, resolver, expected); + String xml, XMLResolver resolver, String expected) { + assertThrows( + XMLStreamException.class, + () -> testStAX(setUseCatalog, useCatalog, catalog, xml, resolver, expected)); } /* Verifies the Catalog support on resolving DTD, xsd import and include in Schema files. */ - @Test(dataProvider = "data_SchemaC", expectedExceptions = SAXException.class) + @ParameterizedTest + @MethodSource("getDataSchemaC") public void testValidationC(boolean setUseCatalog, boolean useCatalog, String catalog, - String xsd, LSResourceResolver resolver) - throws Exception { - testValidation(setUseCatalog, useCatalog, catalog, xsd, resolver) ; + String xsd, LSResourceResolver resolver) { + assertThrows( + SAXException.class, + () -> testValidation(setUseCatalog, useCatalog, catalog, xsd, resolver)); } - @Test(dataProvider = "data_ValidatorC", expectedExceptions = SAXException.class) + @ParameterizedTest + @MethodSource("getDataValidator") public void testValidatorC(boolean setUseCatalog1, boolean setUseCatalog2, boolean useCatalog, - Source source, LSResourceResolver resolver1, LSResourceResolver resolver2, - String catalog1, String catalog2) - throws Exception { - testValidator(setUseCatalog1, setUseCatalog2, useCatalog, source, - resolver1, resolver2, catalog1, catalog2); + Source source, LSResourceResolver resolver1, LSResourceResolver resolver2, + String catalog1, String catalog2) { + assertThrows( + SAXException.class, + () -> testValidator(setUseCatalog1, setUseCatalog2, useCatalog, source, resolver1, resolver2, catalog1, catalog2)); } /* Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLC", expectedExceptions = TransformerException.class) + @ParameterizedTest + @MethodSource("getDataXSLC") public void testXSLImportC(boolean setUseCatalog, boolean useCatalog, String catalog, SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { - testXSLImport(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected); + assertThrows( + TransformerException.class, + () -> testXSLImport(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected)); } /* @@ -150,17 +176,19 @@ public class CatalogSupport5 extends CatalogSupportBase { Verifies the Catalog support on resolving DTD, xsl import and include in XSL files. */ - @Test(dataProvider = "data_XSLC", expectedExceptions = TransformerException.class) + @ParameterizedTest + @MethodSource("getDataXSLC") public void testXSLImportWTemplatesC(boolean setUseCatalog, boolean useCatalog, String catalog, - SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { - testXSLImportWTemplates(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected); + SAXSource xsl, StreamSource xml, URIResolver resolver, String expected) throws Exception { + assertThrows( + TransformerException.class, + () -> testXSLImportWTemplates(setUseCatalog, useCatalog, catalog, xsl, xml, resolver, expected)); } /* DataProvider: for testing the SAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_SAXC") public Object[][] getDataSAXC() { return new Object[][]{ {false, true, xml_bogus_catalog, xml_system, new MyHandler(elementInSystem), expectedWCatalog} @@ -172,7 +200,6 @@ public class CatalogSupport5 extends CatalogSupportBase { DataProvider: for testing XInclude Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_XIC") public Object[][] getDataXIC() { return new Object[][]{ {false, true, xml_bogus_catalog, xml_xInclude, new MyHandler(elementInXISimple), contentInUIutf8Catalog}, @@ -183,7 +210,6 @@ public class CatalogSupport5 extends CatalogSupportBase { DataProvider: for testing DOM parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_DOMC") public Object[][] getDataDOMC() { return new Object[][]{ {false, true, xml_bogus_catalog, xml_system, new MyHandler(elementInSystem), expectedWCatalog} @@ -194,7 +220,6 @@ public class CatalogSupport5 extends CatalogSupportBase { DataProvider: for testing the StAX parser Data: set use_catalog, use_catalog, catalog file, xml file, handler, expected result string */ - @DataProvider(name = "data_StAXC") public Object[][] getDataStAX() { return new Object[][]{ @@ -206,7 +231,6 @@ public class CatalogSupport5 extends CatalogSupportBase { DataProvider: for testing Schema validation Data: set use_catalog, use_catalog, catalog file, xsd file, a LSResourceResolver */ - @DataProvider(name = "data_SchemaC") public Object[][] getDataSchemaC() { return new Object[][]{ @@ -224,7 +248,6 @@ public class CatalogSupport5 extends CatalogSupportBase { Data: setUseCatalog1, setUseCatalog2, useCatalog, source, resolver1, resolver2, catalog1, catalog2 */ - @DataProvider(name = "data_ValidatorC") public Object[][] getDataValidator() { DOMSource ds = getDOMSource(xml_val_test, xml_val_test_id, true, true, xml_catalog); @@ -253,7 +276,6 @@ public class CatalogSupport5 extends CatalogSupportBase { DataProvider: for testing XSL import and include Data: set use_catalog, use_catalog, catalog file, xsl file, xml file, a URIResolver, expected */ - @DataProvider(name = "data_XSLC") public Object[][] getDataXSLC() { SAXSource xslSourceDTD = new SAXSource(new InputSource(new StringReader(xsl_includeDTD))); StreamSource xmlSourceDTD = new StreamSource(new StringReader(xml_xslDTD)); diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupportBase.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupportBase.java index faa260b275e..52d0ccc8ce4 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupportBase.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogSupportBase.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,25 +23,17 @@ package catalog; -import static jaxp.library.JAXPTestUtilities.getSystemProperty; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.ls.LSInput; +import org.w3c.dom.ls.LSResourceResolver; +import org.xml.sax.Attributes; +import org.xml.sax.ErrorHandler; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; +import org.xml.sax.ext.DefaultHandler2; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; -import java.io.StringReader; -import java.io.StringWriter; -import java.io.UnsupportedEncodingException; -import java.nio.file.Paths; -import java.security.CodeSource; -import java.security.Permission; -import java.security.PermissionCollection; -import java.security.Permissions; -import java.security.Policy; -import java.security.ProtectionDomain; import javax.xml.XMLConstants; import javax.xml.catalog.CatalogFeatures; import javax.xml.catalog.CatalogResolver; @@ -68,17 +60,26 @@ import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; -import org.testng.Assert; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.ls.LSInput; -import org.w3c.dom.ls.LSResourceResolver; -import org.xml.sax.Attributes; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; -import org.xml.sax.ext.DefaultHandler2; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; +import java.io.StringReader; +import java.io.StringWriter; +import java.io.UnsupportedEncodingException; +import java.nio.file.Paths; +import java.security.CodeSource; +import java.security.Permission; +import java.security.PermissionCollection; +import java.security.Permissions; +import java.security.Policy; +import java.security.ProtectionDomain; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Base class: @@ -99,7 +100,7 @@ public class CatalogSupportBase { protected void setUp() { String file1 = getClass().getResource("CatalogSupport.xml").getFile(); - if (getSystemProperty("os.name").contains("Windows")) { + if (System.getProperty("os.name").contains("Windows")) { filepath = file1.substring(1, file1.lastIndexOf("/") + 1); slash = "/"; } else { @@ -285,7 +286,7 @@ public class CatalogSupportBase { SAXParser parser = getSAXParser(setUseCatalog, useCatalog, catalog); parser.parse(xml, handler); - Assert.assertEquals(handler.getResult().trim(), expected); + assertEquals(expected, handler.getResult().trim()); } /* @@ -298,7 +299,7 @@ public class CatalogSupportBase { reader.setContentHandler(handler); reader.setEntityResolver(handler); reader.parse(xml); - Assert.assertEquals(handler.getResult().trim(), expected); + assertEquals(expected, handler.getResult().trim()); } /* @@ -312,7 +313,7 @@ public class CatalogSupportBase { // is thrown if handler == null. if (handler != null) { debugPrint("handler.result:" + handler.getResult()); - Assert.assertEquals(handler.getResult().trim(), expected); + assertEquals(expected, handler.getResult().trim()); } } @@ -327,7 +328,7 @@ public class CatalogSupportBase { Node node = doc.getElementsByTagName(elementInSystem).item(0); String result = node.getFirstChild().getTextContent(); - Assert.assertEquals(result.trim(), expected); + assertEquals(expected, result.trim()); } /* @@ -336,10 +337,10 @@ public class CatalogSupportBase { public void testStAX(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, XMLResolver resolver, String expected) throws Exception { - XMLStreamReader streamReader = getStreamReader( - setUseCatalog, useCatalog, catalog, xml, resolver); - String text = getText(streamReader, XMLStreamConstants.CHARACTERS); - Assert.assertEquals(text.trim(), expected); + XMLStreamReader streamReader = getStreamReader( + setUseCatalog, useCatalog, catalog, xml, resolver); + String text = getText(streamReader, XMLStreamConstants.CHARACTERS); + assertEquals(expected, text.trim()); } /* @@ -349,10 +350,10 @@ public class CatalogSupportBase { public void testStAXNegative(boolean setUseCatalog, boolean useCatalog, String catalog, String xml, XMLResolver resolver, String expected) throws Exception { - XMLStreamReader streamReader = getStreamReader( - setUseCatalog, useCatalog, catalog, xml, resolver); - String text = getText(streamReader, XMLStreamConstants.ENTITY_REFERENCE); - Assert.assertEquals(text.trim(), expected); + XMLStreamReader streamReader = getStreamReader( + setUseCatalog, useCatalog, catalog, xml, resolver); + String text = getText(streamReader, XMLStreamConstants.ENTITY_REFERENCE); + assertEquals(expected, text.trim()); } /* @@ -381,7 +382,6 @@ public class CatalogSupportBase { } else { Schema schema = factory.newSchema(new StreamSource(new StringReader(xsd))); } - success("XMLSchema.dtd and datatypes.dtd are resolved."); } /** @@ -439,8 +439,7 @@ public class CatalogSupportBase { StringWriter out = new StringWriter(); transformer.transform(xml, new StreamResult(out)); - debugPrint("out:\n" + out.toString()); - Assert.assertTrue(out.toString().contains(expected), "testXSLImport"); + assertTrue(out.toString().contains(expected), "Output did not contain '" + expected + "':\n" + out); } /* @@ -455,7 +454,7 @@ public class CatalogSupportBase { Transformer transformer = factory.newTemplates(xsl).newTransformer(); StringWriter out = new StringWriter(); transformer.transform(xml, new StreamResult(out)); - Assert.assertTrue(out.toString().contains(expected), "testXSLImportWTemplates"); + assertTrue(out.toString().contains(expected), "Output did not contain '" + expected + "':\n" + out); } /** @@ -688,16 +687,6 @@ public class CatalogSupportBase { return factory; } - void fail(String msg) { - System.out.println("Test failed:"); - System.out.println(msg); - } - - void success(String msg) { - System.out.println("Test succeded:"); - System.out.println(msg); - } - void debugPrint(String msg) { if (debug) { System.out.println(msg); diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogTest.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogTest.java index 0c0e77bb952..1b2086f67b3 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/CatalogTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,14 +22,19 @@ */ package catalog; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.StringReader; -import java.io.StringWriter; -import java.net.URI; -import java.nio.file.Paths; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.xml.sax.Attributes; +import org.xml.sax.ErrorHandler; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; +import org.xml.sax.ext.DefaultHandler2; + import javax.xml.XMLConstants; import javax.xml.catalog.Catalog; import javax.xml.catalog.CatalogException; @@ -52,26 +57,29 @@ import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; -import static jaxp.library.JAXPTestUtilities.clearSystemProperty; -import static jaxp.library.JAXPTestUtilities.setSystemProperty; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.xml.sax.Attributes; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; -import org.xml.sax.ext.DefaultHandler2; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.io.StringReader; +import java.io.StringWriter; +import java.net.URI; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.assertEquals; +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.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /* * @test * @bug 8081248 8144966 8146606 8146237 8150969 8151162 8152527 8154220 8163232 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm catalog.CatalogTest + * @run junit/othervm catalog.CatalogTest * @summary Tests basic Catalog functions. */ +@TestInstance(Lifecycle.PER_CLASS) public class CatalogTest extends CatalogSupportBase { static final String KEY_FILES = "javax.xml.catalog.files"; @@ -79,7 +87,7 @@ public class CatalogTest extends CatalogSupportBase { /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { super.setUp(); } @@ -98,8 +106,9 @@ public class CatalogTest extends CatalogSupportBase { /* * Verifies the support for org.xml.sax.EntityResolver. * Expected: the parser returns the expected string. - */ - @Test(dataProvider = "supportXMLResolver") + */ + @ParameterizedTest + @MethodSource("supportXMLResolver") public void supportEntityResolver(URI catalogFile, String xml, String expected) throws Exception { String xmlSource = getClass().getResource(xml).getFile(); @@ -108,14 +117,15 @@ public class CatalogTest extends CatalogSupportBase { SAXParser parser = getSAXParser(false, true, null); parser.parse(xmlSource, handler); - Assert.assertEquals(handler.getResult().trim(), expected); + assertEquals(expected, handler.getResult().trim()); } /* * Verifies the support for javax.xml.stream.XMLResolver. * Expected: the parser returns the expected string. - */ - @Test(dataProvider = "supportXMLResolver") + */ + @ParameterizedTest + @MethodSource("supportXMLResolver") public void supportXMLResolver(URI catalogFile, String xml, String expected) throws Exception { String xmlSource = getClass().getResource(xml).getFile(); @@ -140,15 +150,16 @@ public class CatalogTest extends CatalogSupportBase { } System.out.println(": expected [" + expected + "] <> actual [" + result.trim() + "]"); - Assert.assertEquals(result.trim(), expected); + assertEquals(expected, result.trim()); } /* * Verifies the support for org.w3c.dom.ls.LSResourceResolver by ShemaFactory. * Success: parsing goes through with no error * Fail: throws Exception if references are not resolved (by the CatalogResolver) - */ - @Test(dataProvider = "supportLSResourceResolver") + */ + @ParameterizedTest + @MethodSource("supportLSResourceResolver") public void supportLSResourceResolver(URI catalogFile, Source schemaSource) throws SAXException { CatalogResolver cr = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalogFile); @@ -163,8 +174,9 @@ public class CatalogTest extends CatalogSupportBase { * Verifies the support for org.w3c.dom.ls.LSResourceResolver by Validator. * Success: parsing goes through with no error * Fail: throws Exception if references are not resolved (by the CatalogResolver) - */ - @Test(dataProvider = "supportLSResourceResolver1") + */ + @ParameterizedTest + @MethodSource("supportLSResourceResolver1") public void supportLSResourceResolver1(URI catalogFile, Source source) throws Exception { CatalogResolver cr = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalogFile); @@ -179,20 +191,21 @@ public class CatalogTest extends CatalogSupportBase { * Verifies the support for javax.xml.transform.URIResolver. * Success: parsing goes through with no error * Fail: throws Exception if references are not resolved (by the CatalogResolver) - */ - @Test(dataProvider = "supportURIResolver") + */ + @ParameterizedTest + @MethodSource("supportURIResolver") public void supportURIResolver(URI catalogFile, Source xsl, Source xml, String expected) throws Exception { CatalogResolver cr = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalogFile); - TransformerFactory factory = TransformerFactory.newInstance(); - factory.setURIResolver(cr); - Transformer transformer = factory.newTransformer(xsl); - StringWriter out = new StringWriter(); - transformer.transform(xml, new StreamResult(out)); - if (expected != null) { - Assert.assertTrue(out.toString().contains(expected), "supportURIResolver"); - } + TransformerFactory factory = TransformerFactory.newInstance(); + factory.setURIResolver(cr); + Transformer transformer = factory.newTransformer(xsl); + StringWriter out = new StringWriter(); + transformer.transform(xml, new StreamResult(out)); + if (expected != null) { + assertTrue(out.toString().contains(expected), "supportURIResolver"); + } } /* @@ -200,7 +213,6 @@ public class CatalogTest extends CatalogSupportBase { Data columns: catalog filepath, xml source file, expected result */ - @DataProvider(name = "supportXMLResolver") public Object[][] supportXMLResolver() throws Exception { URI catalogFile = getClass().getResource("catalog.xml").toURI(); URI catalogFileUri = getClass().getResource("catalog_uri.xml").toURI(); @@ -228,7 +240,6 @@ public class CatalogTest extends CatalogSupportBase { Data columns: catalog filepath, schema source file */ - @DataProvider(name = "supportLSResourceResolver") public Object[][] supportLSResourceResolver() throws Exception { URI catalogFile = getClass().getResource("CatalogSupport.xml").toURI(); URI catalogFileUri = getClass().getResource("CatalogSupport_uri.xml").toURI(); @@ -252,7 +263,6 @@ public class CatalogTest extends CatalogSupportBase { Data columns: catalog filepath, source file */ - @DataProvider(name = "supportLSResourceResolver1") public Object[][] supportLSResourceResolver1() throws Exception { URI catalogFile = getClass().getResource("CatalogSupport.xml").toURI(); URI catalogFileUri = getClass().getResource("CatalogSupport_uri.xml").toURI(); @@ -275,7 +285,6 @@ public class CatalogTest extends CatalogSupportBase { Data columns: catalog filepath, xsl source, xml source file */ - @DataProvider(name = "supportURIResolver") public Object[][] supportURIResolver() throws Exception { URI catalogFile = getClass().getResource("CatalogSupport.xml").toURI(); URI catalogFileUri = getClass().getResource("CatalogSupport_uri.xml").toURI(); @@ -303,10 +312,12 @@ public class CatalogTest extends CatalogSupportBase { * requires a system identifier on all external entities, so this value is * always specified. */ - @Test(expectedExceptions = NullPointerException.class) + @Test public void sysIdCantBeNull() { CatalogResolver catalogResolver = CatalogManager.catalogResolver(CatalogFeatures.defaults()); - InputSource is = catalogResolver.resolveEntity("-//FOO//DTD XML Dummy V0.0//EN", null); + assertThrows( + NullPointerException.class, + () -> catalogResolver.resolveEntity("-//FOO//DTD XML Dummy V0.0//EN", null)); } /* @@ -318,14 +329,15 @@ public class CatalogTest extends CatalogSupportBase { * copying the JCK test and its dataProvider. This test may be reused for * other cases in that test. */ - @Test(dataProvider = "resolveUri") + @ParameterizedTest + @MethodSource("getDataForUriResolver") public void testMatch1(String cFile, String href, String expectedFile, String expectedUri, String msg) throws Exception { URI catalogFile = getClass().getResource(cFile).toURI(); CatalogResolver cur = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalogFile); Source source = cur.resolve(href, null); - Assert.assertNotNull(source, "Source returned is null"); - Assert.assertEquals(expectedUri, source.getSystemId(), msg); + assertNotNull(source, "Source returned is null"); + assertEquals(expectedUri, source.getSystemId(), msg); } /* @@ -333,20 +345,21 @@ public class CatalogTest extends CatalogSupportBase { * Verifies that the file input is validated properly. Valid input includes * multiple file paths separated by semicolon. */ - @Test(dataProvider = "hierarchyOfCatFilesData") + @ParameterizedTest + @MethodSource("getHierarchyOfCatFilesData") public void hierarchyOfCatFiles2(String systemId, String expectedUri) { String file1 = getClass().getResource("first_cat.xml").toExternalForm(); String file2 = getClass().getResource("second_cat.xml").toExternalForm(); String files = file1 + ";" + file2; try { - setSystemProperty(KEY_FILES, files); + System.setProperty(KEY_FILES, files); CatalogResolver catalogResolver = CatalogManager.catalogResolver(CatalogFeatures.defaults()); - String sysId = catalogResolver.resolveEntity(null, systemId).getSystemId(); - Assert.assertEquals(sysId, Paths.get(filepath + expectedUri).toUri().toString().replace("///", "/"), - "System ID match not right"); + String actualSysId = catalogResolver.resolveEntity(null, systemId).getSystemId(); + String expectedSysId = Paths.get(filepath + expectedUri).toUri().toString().replace("///", "/"); + assertEquals(expectedSysId, actualSysId, "System ID match not right"); } finally { - clearSystemProperty(KEY_FILES); + System.clearProperty(KEY_FILES); } } @@ -357,16 +370,17 @@ public class CatalogTest extends CatalogSupportBase { * Verifies that the CatalogResolver resolves a publicId and/or systemId as * expected. */ - @Test(dataProvider = "resolveEntity") + @ParameterizedTest + @MethodSource("getDataForMatchingBothIds") public void testMatch1(String cfile, String prefer, String sysId, String pubId, String expectedUri, String expectedFile, String msg) throws Exception { URI catalogFile = getClass().getResource(cfile).toURI(); CatalogFeatures features = CatalogFeatures.builder().with(CatalogFeatures.Feature.PREFER, prefer).build(); CatalogResolver catalogResolver = CatalogManager.catalogResolver(features, catalogFile); InputSource is = catalogResolver.resolveEntity(pubId, sysId); - Assert.assertNotNull(is, msg); + assertNotNull(is, msg); String expected = (expectedUri == null) ? expectedFile : expectedUri; - Assert.assertEquals(expected, is.getSystemId(), msg); + assertEquals(expected, is.getSystemId(), msg); } /* @@ -374,7 +388,8 @@ public class CatalogTest extends CatalogSupportBase { * Verifies that the Catalog matches specified publicId or systemId and returns * results as expected. */ - @Test(dataProvider = "matchWithPrefer") + @ParameterizedTest + @MethodSource("getDataForMatch") public void matchWithPrefer(String prefer, String cfile, String publicId, String systemId, String expected) throws Exception { URI catalogFile = getClass().getResource(cfile).toURI(); @@ -387,7 +402,7 @@ public class CatalogTest extends CatalogSupportBase { } else { result = c.matchSystem(systemId); } - Assert.assertEquals(expected, result); + assertEquals(expected, result); } /* @@ -401,7 +416,8 @@ public class CatalogTest extends CatalogSupportBase { * attempts to resolve with a public entry if no matching * system entry is found. */ - @Test(dataProvider = "resolveWithPrefer") + @ParameterizedTest + @MethodSource("getDataForResolve") public void resolveWithPrefer(String prefer, String cfile, String publicId, String systemId, String expected) throws Exception { URI catalogFile = getClass().getResource(cfile).toURI(); @@ -411,7 +427,7 @@ public class CatalogTest extends CatalogSupportBase { .build(); CatalogResolver catalogResolver = CatalogManager.catalogResolver(f, catalogFile); String result = catalogResolver.resolveEntity(publicId, systemId).getSystemId(); - Assert.assertEquals(expected, result); + assertEquals(expected, result); } /** @@ -420,7 +436,8 @@ public class CatalogTest extends CatalogSupportBase { * over other settings, in which case, whether next and delegate Catalogs will * be loaded is determined by the defer attribute. */ - @Test(dataProvider = "invalidAltCatalogs", expectedExceptions = CatalogException.class) + @ParameterizedTest + @MethodSource("getInvalidAltCatalogs") public void testDeferAltCatalogs(String file) throws Exception { URI catalogFile = getClass().getResource(file).toURI(); CatalogFeatures features = CatalogFeatures.builder(). @@ -431,7 +448,7 @@ public class CatalogTest extends CatalogSupportBase { the parent catalog will try to load the alt catalog, which will fail since it points to an invalid catalog. */ - Catalog catalog = CatalogManager.catalog(features, catalogFile); + assertThrows(CatalogException.class, () -> CatalogManager.catalog(features, catalogFile)); } @@ -443,22 +460,17 @@ public class CatalogTest extends CatalogSupportBase { public void testJDK8146237() throws Exception { URI catalogFile = getClass().getResource("JDK8146237_catalog.xml").toURI(); - try { - CatalogFeatures features = CatalogFeatures.builder() - .with(CatalogFeatures.Feature.PREFER, "system") - .build(); - Catalog catalog = CatalogManager.catalog(features, catalogFile); - CatalogResolver catalogResolver = CatalogManager.catalogResolver(catalog); - String actualSystemId = catalogResolver.resolveEntity( - "-//FOO//DTD XML Dummy V0.0//EN", - "http://www.oracle.com/alt1sys.dtd") - .getSystemId(); - Assert.assertTrue(actualSystemId.contains("dummy.dtd"), - "Resulting id should contain dummy.dtd, indicating a match by publicId"); - - } catch (Exception e) { - Assert.fail(e.getMessage()); - } + CatalogFeatures features = CatalogFeatures.builder() + .with(CatalogFeatures.Feature.PREFER, "system") + .build(); + Catalog catalog = CatalogManager.catalog(features, catalogFile); + CatalogResolver catalogResolver = CatalogManager.catalogResolver(catalog); + String actualSystemId = catalogResolver.resolveEntity( + "-//FOO//DTD XML Dummy V0.0//EN", + "http://www.oracle.com/alt1sys.dtd") + .getSystemId(); + assertTrue(actualSystemId.contains("dummy.dtd"), + "Resulting id should contain dummy.dtd, indicating a match by publicId"); } /* @@ -469,14 +481,9 @@ public class CatalogTest extends CatalogSupportBase { public void testRewriteSystem() throws Exception { URI catalog = getClass().getResource("rewriteCatalog.xml").toURI(); - try { - CatalogResolver resolver = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalog); - String actualSystemId = resolver.resolveEntity(null, "http://remote.com/dtd/book.dtd").getSystemId(); - Assert.assertTrue(!actualSystemId.contains("//"), "result contains duplicate slashes"); - } catch (Exception e) { - Assert.fail(e.getMessage()); - } - + CatalogResolver resolver = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalog); + String actualSystemId = resolver.resolveEntity(null, "http://remote.com/dtd/book.dtd").getSystemId(); + assertFalse(actualSystemId.contains("//"), "result contains duplicate slashes"); } /* @@ -487,23 +494,18 @@ public class CatalogTest extends CatalogSupportBase { public void testRewriteUri() throws Exception { URI catalog = getClass().getResource("rewriteCatalog.xml").toURI(); - try { - - CatalogResolver resolver = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalog); - String actualSystemId = resolver.resolve("http://remote.com/import/import.xsl", null).getSystemId(); - Assert.assertTrue(!actualSystemId.contains("//"), "result contains duplicate slashes"); - } catch (Exception e) { - Assert.fail(e.getMessage()); - } + CatalogResolver resolver = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalog); + String actualSystemId = resolver.resolve("http://remote.com/import/import.xsl", null).getSystemId(); + assertFalse(actualSystemId.contains("//"), "result contains duplicate slashes"); } /* @bug 8144966 Verifies that passing null as CatalogFeatures will result in a NPE. */ - @Test(expectedExceptions = NullPointerException.class) + @Test public void testFeatureNull() { - CatalogResolver resolver = CatalogManager.catalogResolver((CatalogFeatures)null, (URI)null); + assertThrows(NullPointerException.class, () -> CatalogManager.catalogResolver((CatalogFeatures) null, (URI) null)); } @@ -511,10 +513,11 @@ public class CatalogTest extends CatalogSupportBase { @bug 8144966 Verifies that passing null as the URI will result in a NPE. */ - @Test(expectedExceptions = NullPointerException.class) + @Test public void testPathNull() { - URI uri = null; - CatalogResolver resolver = CatalogManager.catalogResolver(CatalogFeatures.defaults(), uri); + assertThrows( + NullPointerException.class, + () -> CatalogManager.catalogResolver(CatalogFeatures.defaults(), (URI) null)); } /* @@ -523,7 +526,8 @@ public class CatalogTest extends CatalogSupportBase { is successful, the Handler shall return the value of the entity reference that matches the expected value. */ - @Test(dataProvider = "catalog") + @ParameterizedTest + @MethodSource("getCatalog") public void testCatalogResolver(String test, String expected, String catalogFile, String xml, SAXParser saxParser) throws Exception { URI catalog = null; @@ -531,18 +535,14 @@ public class CatalogTest extends CatalogSupportBase { catalog = getClass().getResource(catalogFile).toURI(); } String url = getClass().getResource(xml).getFile(); - try { - CatalogResolver cr = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalog); - XMLReader reader = saxParser.getXMLReader(); - reader.setEntityResolver(cr); - MyHandler handler = new MyHandler(saxParser); - reader.setContentHandler(handler); - reader.parse(url); - System.out.println(test + ": expected [" + expected + "] <> actual [" + handler.getResult() + "]"); - Assert.assertEquals(handler.getResult(), expected); - } catch (SAXException | IOException e) { - Assert.fail(e.getMessage()); - } + CatalogResolver cr = CatalogManager.catalogResolver(CatalogFeatures.defaults(), catalog); + XMLReader reader = saxParser.getXMLReader(); + reader.setEntityResolver(cr); + MyHandler handler = new MyHandler(saxParser); + reader.setContentHandler(handler); + reader.parse(url); + System.out.println(test + ": expected [" + expected + "] <> actual [" + handler.getResult() + "]"); + assertEquals(expected, handler.getResult()); } /* @@ -564,7 +564,7 @@ public class CatalogTest extends CatalogSupportBase { } catch (Exception e) { String msg = e.getMessage(); if (msg != null) { - Assert.assertTrue(msg.contains(expectedMsgId), + assertTrue(msg.contains(expectedMsgId), "Message shall contain the corrent message ID " + expectedMsgId); } } @@ -585,19 +585,15 @@ public class CatalogTest extends CatalogSupportBase { .build(); String test = "testInvalidCatalog"; - try { - CatalogResolver resolver = CatalogManager.catalogResolver(f); - String actualSystemId = resolver.resolveEntity( - null, - "http://remote/xml/dtd/sys/alice/docAlice.dtd") - .getSystemId(); - System.out.println("testIgnoreInvalidCatalog: expected [null]"); - System.out.println("testIgnoreInvalidCatalog: expected [null]"); - System.out.println("actual [" + actualSystemId + "]"); - Assert.assertEquals(actualSystemId, null); - } catch (Exception e) { - Assert.fail(e.getMessage()); - } + CatalogResolver resolver = CatalogManager.catalogResolver(f); + String actualSystemId = resolver.resolveEntity( + null, + "http://remote/xml/dtd/sys/alice/docAlice.dtd") + .getSystemId(); + System.out.println("testIgnoreInvalidCatalog: expected [null]"); + System.out.println("testIgnoreInvalidCatalog: expected [null]"); + System.out.println("actual [" + actualSystemId + "]"); + assertNull(actualSystemId); } @@ -608,7 +604,6 @@ public class CatalogTest extends CatalogSupportBase { This DataProvider is copied from JCK ResolveTests' dataMatch1 */ - @DataProvider(name = "resolveUri") public Object[][] getDataForUriResolver() { return new Object[][]{ {"uri.xml", @@ -623,7 +618,6 @@ public class CatalogTest extends CatalogSupportBase { DataProvider: used to verify hierarchical catalogs. Refer to JCK test hierarchyOfCatFiles2. */ - @DataProvider(name = "hierarchyOfCatFilesData") public Object[][] getHierarchyOfCatFilesData() { return new Object[][]{ {"http://www.oracle.com/sequence.dtd", "first.dtd"}, @@ -637,7 +631,6 @@ public class CatalogTest extends CatalogSupportBase { Data columns: catalog, prefer, systemId, publicId, expectedUri, expectedFile, msg */ - @DataProvider(name = "resolveEntity") public Object[][] getDataForMatchingBothIds() { String expected = "http://www.groupxmlbase.com/dtds/rewrite.dtd"; return new Object[][]{ @@ -658,7 +651,6 @@ public class CatalogTest extends CatalogSupportBase { Data columns: prefer, catalog, publicId, systemId, expected result */ - @DataProvider(name = "matchWithPrefer") public Object[][] getDataForMatch() { return new Object[][]{ {"public", "pubOnly.xml", id, "", "http://local/base/dtd/public.dtd"}, @@ -682,7 +674,6 @@ public class CatalogTest extends CatalogSupportBase { Data columns: prefer, catalog, publicId, systemId, expected result */ - @DataProvider(name = "resolveWithPrefer") public Object[][] getDataForResolve() { return new Object[][]{ {"system", "pubOnly.xml", id, "", "http://local/base/dtd/public.dtd"}, @@ -709,11 +700,10 @@ public class CatalogTest extends CatalogSupportBase { DataProvider: catalogs that contain invalid next or delegate catalogs. The defer attribute is set to false. */ - @DataProvider(name = "invalidAltCatalogs") - public Object[][] getCatalogs() { - return new Object[][]{ - {"defer_false_2.xml"}, - {"defer_del_false.xml"} + public Object[][] getInvalidAltCatalogs() { + return new Object[][] { + { "defer_false_2.xml" }, + { "defer_del_false.xml" } }; } @@ -722,7 +712,6 @@ public class CatalogTest extends CatalogSupportBase { DataProvider: provides test name, expected string, the catalog, and XML document. */ - @DataProvider(name = "catalog") public Object[][] getCatalog() { return new Object[][]{ {"testSystem", "Test system entry", "catalog.xml", "system.xml", getParser()}, diff --git a/test/jaxp/javax/xml/jaxp/unittest/catalog/GroupTest.java b/test/jaxp/javax/xml/jaxp/unittest/catalog/GroupTest.java index 46aa46ee29f..6a5593db11b 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/catalog/GroupTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/catalog/GroupTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,31 +22,36 @@ */ package catalog; -import java.net.URI; -import java.nio.file.Paths; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + import javax.xml.catalog.CatalogFeatures; import javax.xml.catalog.CatalogManager; import javax.xml.catalog.CatalogResolver; import javax.xml.transform.Source; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; +import java.net.URI; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.assertTrue; /* * @test * @bug 8215330 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng catalog.GroupTest + * @run junit catalog.GroupTest * @summary Tests catalog with Group entries. */ +@TestInstance(Lifecycle.PER_CLASS) public class GroupTest extends CatalogSupportBase { String catalogGroup; /* * Initializing fields */ - @BeforeClass + @BeforeAll public void setUpClass() throws Exception { super.setUp(); catalogGroup = Paths.get(filepath + "GroupTest.xml").toUri().toASCIIString(); @@ -60,13 +65,14 @@ public class GroupTest extends CatalogSupportBase { * @param expected the expected result string * @throws Exception */ - @Test(dataProvider = "data_group") + @ParameterizedTest + @MethodSource("getDataDOM") public void testGroup(String catalog, String uri, String expected) throws Exception { CatalogResolver resolver = CatalogManager.catalogResolver( CatalogFeatures.defaults(), URI.create(catalog)); Source src = resolver.resolve(uri, null); - Assert.assertTrue(src.getSystemId().endsWith(expected), "uriSuffix match"); + assertTrue(src.getSystemId().endsWith(expected), "uriSuffix match"); } @@ -74,7 +80,6 @@ public class GroupTest extends CatalogSupportBase { DataProvider: for testing catalogs with group entries Data: catalog file, uri, expected result string */ - @DataProvider(name = "data_group") public Object[][] getDataDOM() { return new Object[][]{ {catalogGroup, "http://openjdk_java_net/xml/catalog/A/CommonFileA1.xml", "LocalFileA1.xml"}, diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6320118.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6320118.java index f22e95837bd..fa27d5102d4 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6320118.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6320118.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,26 +23,28 @@ package datatype; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; /* * @test * @bug 6320118 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm datatype.Bug6320118 + * @run junit/othervm datatype.Bug6320118 * @summary Test xml datatype XMLGregorianCalendar. */ public class Bug6320118 { DatatypeFactory df; - @BeforeClass + @BeforeEach public void createDataTypeFactory() throws DatatypeConfigurationException { df = DatatypeFactory.newInstance(); } @@ -50,30 +52,30 @@ public class Bug6320118 { @Test public void test1() { XMLGregorianCalendar calendar = df.newXMLGregorianCalendar(1970, 1, 1, 24, 0, 0, 0, 0); - Assert.assertEquals(calendar.getYear(), 1970); - Assert.assertEquals(calendar.getMonth(), 1); - Assert.assertEquals(calendar.getDay(), 2); - Assert.assertEquals(calendar.getHour(), 0, "hour 24 needs to be treated as hour 0 of next day"); + assertEquals(1970, calendar.getYear()); + assertEquals(1, calendar.getMonth()); + assertEquals(2, calendar.getDay()); + assertEquals(0, calendar.getHour(), "hour 24 needs to be treated as hour 0 of next day"); } @Test public void test2() { XMLGregorianCalendar calendar = df.newXMLGregorianCalendarTime(24, 0, 0, 0); - Assert.assertEquals(calendar.getHour(), 0, "hour 24 needs to be treated as hour 0 of next day"); + assertEquals(0, calendar.getHour(), "hour 24 needs to be treated as hour 0 of next day"); } - @Test(expectedExceptions = IllegalArgumentException.class) + @Test public void test3() { XMLGregorianCalendar calendar = df.newXMLGregorianCalendar(); // Must fail as other params are not 0 but undefined - calendar.setHour(24); + assertThrows(IllegalArgumentException.class, () -> calendar.setHour(24)); } @Test public void test4() { XMLGregorianCalendar calendar = df.newXMLGregorianCalendar(); calendar.setTime(24, 0, 0, 0); - Assert.assertEquals(calendar.getHour(), 0, "hour 24 needs to be treated as hour 0 of next day"); + assertEquals(0, calendar.getHour(), "hour 24 needs to be treated as hour 0 of next day"); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java index d1e5aea93da..bc32bc0374d 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,18 +23,19 @@ package datatype; +import org.junit.jupiter.api.Test; + import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; -import org.testng.Assert; -import org.testng.annotations.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; /* * @test * @bug 6937951 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm datatype.Bug6937951Test + * @run junit/othervm datatype.Bug6937951Test * @summary Test midnight is same as the start of the next day in XMLGregorianCalendar. */ public class Bug6937951Test { @@ -44,13 +45,10 @@ public class Bug6937951Test { DatatypeFactory dtf = DatatypeFactory.newInstance(); XMLGregorianCalendar c1 = dtf.newXMLGregorianCalendar("1999-12-31T24:00:00"); XMLGregorianCalendar c2 = dtf.newXMLGregorianCalendar("2000-01-01T00:00:00"); - System.out.println("c1: " + c1.getYear() + "-" + c1.getMonth() + "-" + c1.getDay() + "T" + c1.getHour()); - System.out.println(c1.equals(c2) ? "pass" : "fail"); // fails - if (!c1.equals(c2)) - Assert.fail("hour 24 needs to be treated as equal to hour 0 of the next day"); - if (c1.getYear() != 2000 && c1.getHour() != 0) - Assert.fail("hour 24 needs to be treated as equal to hour 0 of the next day"); + assertEquals(2000, c1.getYear()); + assertEquals(0, c1.getHour()); + assertEquals(c1, c2, "hour 24 should treated as equal to hour 0 of the next day"); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java index 8aa5d6369a3..571ca1b97d3 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,31 +23,29 @@ package datatype; -import java.math.BigDecimal; -import java.math.BigInteger; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeConstants; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.Duration; import javax.xml.namespace.QName; +import java.math.BigDecimal; +import java.math.BigInteger; -import org.testng.Assert; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; /* * @test * @bug 6937964 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm datatype.Bug6937964Test + * @run junit/othervm datatype.Bug6937964Test * @summary Test Duration is normalized. */ public class Bug6937964Test { - /** - * Print debugging to System.err. - */ - private static final boolean DEBUG = false; /** * Constant to indicate expected lexical test failure. */ @@ -57,7 +55,7 @@ public class Bug6937964Test { public void test() throws DatatypeConfigurationException { DatatypeFactory dtf = DatatypeFactory.newInstance(); Duration d = dtf.newDurationYearMonth("P20Y15M"); - System.out.println(d.getYears() == 21 ? "pass" : "fail"); + assertEquals(21, d.getYears()); } @Test @@ -65,7 +63,7 @@ public class Bug6937964Test { DatatypeFactory dtf = DatatypeFactory.newInstance(); Duration d = dtf.newDurationYearMonth("P20Y15M"); int years = d.getYears(); - Assert.assertEquals(years, 21, "Return value should be normalized"); + assertEquals(21, years, "Return value should be normalized"); } @Test @@ -73,8 +71,7 @@ public class Bug6937964Test { DatatypeFactory dtf = DatatypeFactory.newInstance(); Duration d = dtf.newDurationYearMonth(671976000000L); int years = d.getYears(); - System.out.println("Years: " + years); - Assert.assertEquals(years, 21, "Return value should be normalized"); + assertEquals(21, years, "Return value should be normalized"); } @Test @@ -84,7 +81,7 @@ public class Bug6937964Test { BigInteger mon = new BigInteger("15"); Duration d = dtf.newDurationYearMonth(true, year, mon); int years = d.getYears(); - Assert.assertEquals(years, 21, "Return value should be normalized"); + assertEquals(21, years, "Return value should be normalized"); } @Test @@ -92,7 +89,7 @@ public class Bug6937964Test { DatatypeFactory dtf = DatatypeFactory.newInstance(); Duration d = dtf.newDurationYearMonth(true, 20, 15); int years = d.getYears(); - Assert.assertEquals(years, 21, "Return value should be normalized"); + assertEquals(21, years, "Return value should be normalized"); } @Test @@ -100,7 +97,7 @@ public class Bug6937964Test { DatatypeFactory dtf = DatatypeFactory.newInstance(); Duration d = dtf.newDurationDayTime("P1DT23H59M65S"); int days = d.getDays(); - Assert.assertEquals(days, 2, "Return value should be normalized"); + assertEquals(2, days, "Return value should be normalized"); } @Test @@ -108,7 +105,7 @@ public class Bug6937964Test { DatatypeFactory dtf = DatatypeFactory.newInstance(); Duration d = dtf.newDurationDayTime(172805000L); int days = d.getDays(); - Assert.assertEquals(days, 2, "Return value should be normalized"); + assertEquals(2, days, "Return value should be normalized"); } @Test @@ -120,8 +117,7 @@ public class Bug6937964Test { BigInteger sec = new BigInteger("65"); Duration d = dtf.newDurationDayTime(true, day, hour, min, sec); int days = d.getDays(); - System.out.println("Days: " + days); - Assert.assertEquals(days, 2, "Return value should be normalized"); + assertEquals(2, days, "Return value should be normalized"); } @Test @@ -129,117 +125,88 @@ public class Bug6937964Test { DatatypeFactory dtf = DatatypeFactory.newInstance(); Duration d = dtf.newDurationDayTime(true, 1, 23, 59, 65); int days = d.getDays(); - System.out.println("Days: " + days); - Assert.assertEquals(days, 2, "Return value should be normalized"); + assertEquals(2, days, "Return value should be normalized"); } - @DataProvider(name = "lexicalvalues") - public Object[][] actualAndExpectedLexicals() { - Object actualAndExpected [][] = { - {"P13M", "P1Y1M"}, - {"-P13M", "-P1Y1M"}, - {"P1Y", "P1Y"}, - {"-P1Y", "-P1Y"}, - {"P1Y25M", "P3Y1M"}, - {"-P1Y25M", "-P3Y1M"} + public static Object[][] lexicalvalues() { + return new Object[][] { + { "P13M", "P1Y1M" }, + { "-P13M", "-P1Y1M" }, + { "P1Y", "P1Y" }, + { "-P1Y", "-P1Y" }, + { "P1Y25M", "P3Y1M" }, + { "-P1Y25M", "-P3Y1M" } }; - return actualAndExpected; } - @Test(dataProvider = "lexicalvalues") - public void testNewDurationYearMonthLexicalRepresentation1(String actualLex, String expectedLex) { - /** - * Lexical test values to test. - */ - - DatatypeFactory datatypeFactory = null; - try { - datatypeFactory = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException datatypeConfigurationException) { - Assert.fail(datatypeConfigurationException.toString()); - } - - if (DEBUG) { - System.err.println("DatatypeFactory created: " + datatypeFactory.toString()); - } - if (DEBUG) { - System.err.println("testing value: \"" + actualLex + "\", expecting: \"" + expectedLex + "\""); - } + @ParameterizedTest + @MethodSource("lexicalvalues") + public void testNewDurationYearMonthLexicalRepresentation1(String actualLex, String expectedLex) + throws DatatypeConfigurationException { + DatatypeFactory datatypeFactory = DatatypeFactory.newInstance(); try { Duration duration = datatypeFactory.newDurationYearMonth(actualLex); - if (DEBUG) { - System.err.println("Duration created: \"" + duration.toString() + "\""); - } - // was this expected to fail? - Assert.assertNotEquals(expectedLex, TEST_VALUE_FAIL, "the value \"" + actualLex + "\" is invalid " + - "yet it created the Duration \"" + duration.toString() + "\"" ); + assertNotEquals(TEST_VALUE_FAIL, expectedLex, "the value \"" + actualLex + "\" is invalid " + + "yet it created the Duration \"" + duration.toString() + "\""); // right XMLSchemaType? // TODO: enable test, it should pass, it fails with Exception(s) // for now due to a bug try { QName xmlSchemaType = duration.getXMLSchemaType(); - Assert.assertEquals(xmlSchemaType, DatatypeConstants.DURATION_YEARMONTH, "Duration created with " + + assertEquals(DatatypeConstants.DURATION_YEARMONTH, xmlSchemaType, "Duration created with " + "XMLSchemaType of\"" + xmlSchemaType + "\" was expected to be \"" - + DatatypeConstants.DURATION_YEARMONTH + "\" and has the value \"" + duration.toString() + "\""); - } catch (IllegalStateException illegalStateException) { - // TODO; this test really should pass - System.err.println("Please fix this bug that is being ignored, for now: " + illegalStateException.getMessage()); - } - - // does it have the right value? - Assert.assertEquals(duration.toString(), expectedLex, "Duration created with \"" + actualLex + - "\" was expected to be \"" + expectedLex + "\" and has the value \"" + duration.toString() + "\""); - // Duration created with correct value - } catch (Exception exception) { - if (DEBUG) { - System.err.println("Exception in creating duration: \"" + exception.toString() + "\""); - } - - // was this expected to succed? - Assert.assertEquals(TEST_VALUE_FAIL, expectedLex, "the value \"" + actualLex + "\" is valid yet " + - "it failed with \"" + exception.toString() + "\""); - // expected failure + + DatatypeConstants.DURATION_YEARMONTH + "\" and has the value \"" + duration + "\""); + } catch (IllegalStateException illegalStateException) { + // TODO; this test really should pass + System.err.println("Please fix this bug that is being ignored, for now: " + illegalStateException.getMessage()); } + + // does it have the right value? + assertEquals(expectedLex, duration.toString(), "Duration created with \"" + actualLex + + "\" was expected to be \"" + expectedLex + "\" and has the value \"" + duration + "\""); + // Duration created with correct value + } catch (Exception exception) { + // was this expected to succed? + assertEquals(TEST_VALUE_FAIL, expectedLex, "the value \"" + actualLex + "\" is valid yet " + + "it failed with \"" + exception + "\""); + // expected failure + } } - @DataProvider(name = "lexDayTime") - public Object[][] lexDayTimeData() { + public static Object[][] lexDayTimeData() { BigInteger one = new BigInteger("1"); BigInteger zero = new BigInteger("0"); BigDecimal bdZero = new BigDecimal("0"); BigDecimal bdOne = new BigDecimal("1"); - Object[][] values = { + return new Object[][] { // lex, isPositive, years, month, days, hours, minutes, seconds - { "P1D", Boolean.TRUE, null, null, one, zero, zero, bdZero }, { "PT1H", Boolean.TRUE, null, null, zero, one, zero, bdZero }, - { "PT1M", Boolean.TRUE, null, null, zero, zero, one, bdZero }, { "PT1.1S", Boolean.TRUE, null, null, zero, zero, zero, bdOne }, + { "P1D", Boolean.TRUE, null, null, one, zero, zero, bdZero }, + { "PT1H", Boolean.TRUE, null, null, zero, one, zero, bdZero }, + { "PT1M", Boolean.TRUE, null, null, zero, zero, one, bdZero }, + { "PT1.1S", Boolean.TRUE, null, null, zero, zero, zero, bdOne }, { "-PT1H1.1S", Boolean.FALSE, null, null, zero, one, zero, bdOne }, }; - return values; } /** * TCK test failure */ - @Test(dataProvider = "lexDayTime") + @ParameterizedTest + @MethodSource("lexDayTimeData") public void testNewDurationDayTime005(String lex, boolean isPositive, BigInteger year, BigInteger month, BigInteger days, - BigInteger hour, BigInteger minutes, BigDecimal seconds) { - StringBuffer result = new StringBuffer(); - DatatypeFactory df = null; - - try { - df = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException e) { - Assert.fail(e.toString()); - } + BigInteger hour, BigInteger minutes, BigDecimal seconds) + throws DatatypeConfigurationException { + StringBuilder result = new StringBuilder(); + DatatypeFactory df = DatatypeFactory.newInstance(); Duration duration = null; try { duration = df.newDurationDayTime(isPositive, days, hour, minutes, seconds.toBigInteger()); } catch (IllegalArgumentException e) { - result.append("; unexpected " + e + " trying to create duration \'" + lex + "\'"); + result.append("; unexpected " + e + " trying to create duration '" + lex + "'"); } if (duration != null) { if ((duration.getSign() == 1) != isPositive) { @@ -248,43 +215,39 @@ public class Bug6937964Test { Number value = duration.getField(DatatypeConstants.YEARS); if ((value != null && year == null) || (value == null && year != null) || (value != null && !value.equals(year))) { - result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.YEARS + ": \'" + value + "\'" + ", expected \'" - + year + "\'"); + result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.YEARS + ": '" + value + "'" + ", expected '" + + year + "'"); } value = duration.getField(DatatypeConstants.MONTHS); if ((value != null && month == null) || (value == null && month != null) || (value != null && !value.equals(month))) { - result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.MONTHS + ": \'" + value + "\'" + ", expected \'" - + month + "\'"); + result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.MONTHS + ": '" + value + "'" + ", expected '" + + month + "'"); } value = duration.getField(DatatypeConstants.DAYS); if ((value != null && days == null) || (value == null && days != null) || (value != null && !value.equals(days))) { - result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.DAYS + ": \'" + value + "\'" + ", expected \'" - + days + "\'"); + result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.DAYS + ": '" + value + "'" + ", expected '" + + days + "'"); } value = duration.getField(DatatypeConstants.HOURS); if ((value != null && hour == null) || (value == null && hour != null) || (value != null && !value.equals(hour))) { - result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.HOURS + ": \'" + value + "\'" + ", expected \'" - + hour + "\'"); + result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.HOURS + ": '" + value + "'" + ", expected '" + + hour + "'"); } value = duration.getField(DatatypeConstants.MINUTES); if ((value != null && minutes == null) || (value == null && minutes != null) || (value != null && !value.equals(minutes))) { - result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.MINUTES + ": \'" + value + "\'" + ", expected \'" - + minutes + "\'"); + result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.MINUTES + ": '" + value + "'" + ", expected '" + + minutes + "'"); } value = duration.getField(DatatypeConstants.SECONDS); - if ((value != null && seconds == null) || (value == null && seconds != null) || (value != null && !value.equals(seconds))) { - result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.SECONDS + ": \'" + value + "\'" + ", expected \'" - + seconds + "\'"); + if (value == null || !value.equals(seconds)) { + result.append("; " + lex + ": wrong value of the field " + DatatypeConstants.SECONDS + ": '" + value + "'" + ", expected '" + + seconds + "'"); } } - if(result.length() > 0) { - Assert.fail(result.substring(2)); - } - System.out.println("OK"); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java index c6b143c1d5a..b434db0e4c4 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,21 +23,21 @@ package datatype; -import java.util.Calendar; -import java.util.GregorianCalendar; +import org.junit.jupiter.api.Test; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; +import java.util.Calendar; +import java.util.GregorianCalendar; -import org.testng.Assert; -import org.testng.annotations.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; /* * @test * @bug 7042647 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm datatype.Bug7042647Test + * @run junit/othervm datatype.Bug7042647Test * @summary Test getFirstDayOfWeek is correct after converting XMLGregorianCalendar to a GregorianCalendar. */ public class Bug7042647Test { @@ -49,11 +49,7 @@ public class Bug7042647Test { int firstDayOfWeek = calendar.getFirstDayOfWeek(); Calendar defaultCalendar = Calendar.getInstance(); int defaultFirstDayOfWeek = defaultCalendar.getFirstDayOfWeek(); - if (firstDayOfWeek != defaultFirstDayOfWeek) { - Assert.fail("Failed firstDayOfWeek=" + firstDayOfWeek + " != defaultFirstDayOfWeek=" + defaultFirstDayOfWeek); - } else { - System.out.println("Success firstDayOfWeek=" + firstDayOfWeek + " == defaultFirstDayOfWeek=" + defaultFirstDayOfWeek); - } + assertEquals(defaultFirstDayOfWeek, firstDayOfWeek); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java index 3866ae6a70c..da5862f5adb 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,7 @@ package datatype; -import java.math.BigDecimal; -import java.math.BigInteger; +import org.junit.jupiter.api.Test; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeConstants; @@ -32,14 +31,15 @@ import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.Duration; import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; +import java.math.BigDecimal; +import java.math.BigInteger; -import org.testng.Assert; -import org.testng.annotations.Test; +import static org.junit.jupiter.api.Assertions.fail; /* * @test * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm datatype.DatatypeFactoryTest + * @run junit/othervm datatype.DatatypeFactoryTest * @summary Test DatatypeFactory. */ public class DatatypeFactoryTest { @@ -120,7 +120,7 @@ public class DatatypeFactoryTest { try { datatypeFactory = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException datatypeConfigurationException) { - Assert.fail(datatypeConfigurationException.toString()); + fail(datatypeConfigurationException.toString()); } if (DEBUG) { @@ -144,20 +144,20 @@ public class DatatypeFactoryTest { // was this expected to fail? if (TEST_VALUES_MILLISECONDS_RESULTS[onTestValue].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is invalid yet it created the Duration \"" + duration.toString() + fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is invalid yet it created the Duration \"" + duration.toString() + "\""); } // right XMLSchemaType? QName xmlSchemaType = duration.getXMLSchemaType(); if (!xmlSchemaType.equals(DatatypeConstants.DURATION)) { - Assert.fail("Duration created with XMLSchemaType of\"" + xmlSchemaType + "\" was expected to be \"" + DatatypeConstants.DURATION + fail("Duration created with XMLSchemaType of\"" + xmlSchemaType + "\" was expected to be \"" + DatatypeConstants.DURATION + "\" and has the value \"" + duration.toString() + "\""); } // does it have the right value? if (!TEST_VALUES_MILLISECONDS_RESULTS[onTestValue].equals(duration.toString())) { - Assert.fail("Duration created with \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" was expected to be \"" + fail("Duration created with \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" was expected to be \"" + TEST_VALUES_MILLISECONDS_RESULTS[onTestValue] + "\" and has the value \"" + duration.toString() + "\""); } @@ -170,7 +170,7 @@ public class DatatypeFactoryTest { // was this expected to succed? if (!TEST_VALUES_MILLISECONDS_RESULTS[onTestValue].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); + fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); } // expected failure } @@ -195,7 +195,7 @@ public class DatatypeFactoryTest { try { datatypeFactory = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException datatypeConfigurationException) { - Assert.fail(datatypeConfigurationException.toString()); + fail(datatypeConfigurationException.toString()); } if (DEBUG) { @@ -218,7 +218,7 @@ public class DatatypeFactoryTest { // was this expected to fail? if (TEST_VALUES_LEXICAL[onTestValue + 1].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" is invalid yet it created the Duration \"" + duration.toString() + "\""); + fail("the value \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" is invalid yet it created the Duration \"" + duration.toString() + "\""); } // right XMLSchemaType? @@ -227,7 +227,7 @@ public class DatatypeFactoryTest { try { QName xmlSchemaType = duration.getXMLSchemaType(); if (!xmlSchemaType.equals(DatatypeConstants.DURATION_YEARMONTH)) { - Assert.fail("Duration created with XMLSchemaType of\"" + xmlSchemaType + "\" was expected to be \"" + fail("Duration created with XMLSchemaType of\"" + xmlSchemaType + "\" was expected to be \"" + DatatypeConstants.DURATION_YEARMONTH + "\" and has the value \"" + duration.toString() + "\""); } } catch (IllegalStateException illegalStateException) { @@ -237,7 +237,7 @@ public class DatatypeFactoryTest { // does it have the right value? if (!TEST_VALUES_LEXICAL[onTestValue + 1].equals(duration.toString())) { - Assert.fail("Duration created with \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" was expected to be \"" + fail("Duration created with \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" was expected to be \"" + TEST_VALUES_LEXICAL[onTestValue + 1] + "\" and has the value \"" + duration.toString() + "\""); } @@ -250,7 +250,7 @@ public class DatatypeFactoryTest { // was this expected to succed? if (!TEST_VALUES_LEXICAL[onTestValue + 1].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); + fail("the value \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); } // expected failure } @@ -287,7 +287,7 @@ public class DatatypeFactoryTest { try { datatypeFactory = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException datatypeConfigurationException) { - Assert.fail(datatypeConfigurationException.toString()); + fail(datatypeConfigurationException.toString()); } if (DEBUG) { @@ -311,20 +311,20 @@ public class DatatypeFactoryTest { // was this expected to fail? if (TEST_VALUES_MILLISECONDS_RESULTS[onTestValue].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is invalid yet it created the Duration \"" + duration.toString() + fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is invalid yet it created the Duration \"" + duration.toString() + "\""); } // right XMLSchemaType? QName xmlSchemaType = duration.getXMLSchemaType(); if (!xmlSchemaType.equals(DatatypeConstants.DURATION_YEARMONTH)) { - Assert.fail("Duration created with XMLSchemaType of\"" + xmlSchemaType + "\" was expected to be \"" + DatatypeConstants.DURATION_YEARMONTH + fail("Duration created with XMLSchemaType of\"" + xmlSchemaType + "\" was expected to be \"" + DatatypeConstants.DURATION_YEARMONTH + "\" and has the value \"" + duration.toString() + "\""); } // does it have the right value? if (!TEST_VALUES_MILLISECONDS_RESULTS[onTestValue].equals(duration.toString())) { - Assert.fail("Duration created with \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" was expected to be \"" + fail("Duration created with \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" was expected to be \"" + TEST_VALUES_MILLISECONDS_RESULTS[onTestValue] + "\" and has the value \"" + duration.toString() + "\""); } @@ -333,7 +333,7 @@ public class DatatypeFactoryTest { int hours = duration.getHours(); int minutes = duration.getMinutes(); if (days != 0 || hours != 0 || minutes != 0) { - Assert.fail("xdt:yearMonthDuration created without discarding remaining milliseconds: " + " days = " + days + ", hours = " + hours + fail("xdt:yearMonthDuration created without discarding remaining milliseconds: " + " days = " + days + ", hours = " + hours + ", minutess = " + minutes); } @@ -346,7 +346,7 @@ public class DatatypeFactoryTest { // was this expected to succed? if (!TEST_VALUES_MILLISECONDS_RESULTS[onTestValue].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); + fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); } // expected failure } @@ -382,7 +382,7 @@ public class DatatypeFactoryTest { try { datatypeFactory = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException datatypeConfigurationException) { - Assert.fail(datatypeConfigurationException.toString()); + fail(datatypeConfigurationException.toString()); } if (DEBUG) { @@ -406,7 +406,7 @@ public class DatatypeFactoryTest { // was this expected to fail? if (TEST_VALUES_MILLISECONDS_RESULTS[onTestValue].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is invalid yet it created the Duration \"" + duration.toString() + fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is invalid yet it created the Duration \"" + duration.toString() + "\""); } @@ -414,7 +414,7 @@ public class DatatypeFactoryTest { if (!TEST_VALUES_MILLISECONDS_RESULTS[onTestValue].equals(duration.toString())) { // TODO: this is bug that should be fixed if (false) { - Assert.fail("Duration created with \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" was expected to be \"" + fail("Duration created with \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" was expected to be \"" + TEST_VALUES_MILLISECONDS_RESULTS[onTestValue] + "\" and has the value \"" + duration.toString() + "\""); } else { System.err.println("Please fix this bug: " + "Duration created with \"" + TEST_VALUES_MILLISECONDS[onTestValue] @@ -431,7 +431,7 @@ public class DatatypeFactoryTest { if (!xmlSchemaType.equals(DatatypeConstants.DURATION_DAYTIME) || years != 0 || months != 0) { // TODO: this is bug that should be fixed if (false) { - Assert.fail("xdt:dayTimeDuration created without discarding remaining milliseconds: " + " XMLSchemaType = " + xmlSchemaType + fail("xdt:dayTimeDuration created without discarding remaining milliseconds: " + " XMLSchemaType = " + xmlSchemaType + ", years = " + years + ", months = " + months); } else { System.err.println("Please fix this bug: " + "xdt:dayTimeDuration created without discarding remaining milliseconds: " @@ -448,7 +448,7 @@ public class DatatypeFactoryTest { // was this expected to succed? if (!TEST_VALUES_MILLISECONDS_RESULTS[onTestValue].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); + fail("the value \"" + TEST_VALUES_MILLISECONDS[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); } // expected failure } @@ -482,7 +482,7 @@ public class DatatypeFactoryTest { try { datatypeFactory = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException datatypeConfigurationException) { - Assert.fail(datatypeConfigurationException.toString()); + fail(datatypeConfigurationException.toString()); } if (DEBUG) { @@ -505,13 +505,13 @@ public class DatatypeFactoryTest { // was this expected to fail? if (TEST_VALUES_LEXICAL[onTestValue + 1].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" is invalid yet it created the XMLGregorianCalendar \"" + fail("the value \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" is invalid yet it created the XMLGregorianCalendar \"" + xmlGregorianCalendar.toString() + "\""); } // does it have the right value? if (!TEST_VALUES_LEXICAL[onTestValue + 1].equals(xmlGregorianCalendar.toString())) { - Assert.fail("XMLGregorianCalendar created with \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" was expected to be \"" + fail("XMLGregorianCalendar created with \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" was expected to be \"" + TEST_VALUES_LEXICAL[onTestValue + 1] + "\" and has the value \"" + xmlGregorianCalendar.toString() + "\""); } @@ -524,7 +524,7 @@ public class DatatypeFactoryTest { // was this expected to succed? if (!TEST_VALUES_LEXICAL[onTestValue + 1].equals(TEST_VALUE_FAIL)) { - Assert.fail("the value \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); + fail("the value \"" + TEST_VALUES_LEXICAL[onTestValue] + "\" is valid yet it failed with \"" + exception.toString() + "\""); } // expected failure } @@ -563,7 +563,7 @@ public class DatatypeFactoryTest { try { datatypeFactory = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException datatypeConfigurationException) { - Assert.fail(datatypeConfigurationException.toString()); + fail(datatypeConfigurationException.toString()); } if (DEBUG) { @@ -591,7 +591,7 @@ public class DatatypeFactoryTest { } // unexpected success, should have failed - Assert.fail("expected IllegalArgumentException " + "for DatatypeFactory.newXMLGregorianCalendar(" + invalidDates[valueIndex][0] + ", " + fail("expected IllegalArgumentException " + "for DatatypeFactory.newXMLGregorianCalendar(" + invalidDates[valueIndex][0] + ", " + invalidDates[valueIndex][1] + ", " + invalidDates[valueIndex][2] + ", " + invalidDates[valueIndex][3] + ", " + invalidDates[valueIndex][4] + ", " + invalidDates[valueIndex][5] + ", " + invalidDates[valueIndex][6] + ", " + invalidDates[valueIndex][7] + "). " + "Instead, XMLGregorianCalendar: \"" + xmlGregorianCalendar.toString() + "\" was created."); @@ -624,7 +624,7 @@ public class DatatypeFactoryTest { } // unexpected success, should have failed - Assert.fail("expected IllegalArgumentException " + "for DatatypeFactory.newXMLGregorianCalendar(" + invalidDates[valueIndex][0] + ", " + fail("expected IllegalArgumentException " + "for DatatypeFactory.newXMLGregorianCalendar(" + invalidDates[valueIndex][0] + ", " + invalidDates[valueIndex][1] + ", " + invalidDates[valueIndex][2] + ", " + invalidDates[valueIndex][3] + ", " + invalidDates[valueIndex][4] + ", " + invalidDates[valueIndex][5] + ", " + invalidDates[valueIndex][6] + ", " + invalidDates[valueIndex][7] + "). " + "Instead, XMLGregorianCalendar: \"" + xmlGregorianCalendar.toString() + "\" was created."); diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/DurationTest.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/DurationTest.java index d4d96449f82..6de8fe91370 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/DurationTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/DurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,16 @@ package datatype; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + +import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeConstants; +import javax.xml.datatype.DatatypeFactory; +import javax.xml.datatype.Duration; +import javax.xml.namespace.QName; import java.math.BigDecimal; import java.math.BigInteger; import java.util.Calendar; @@ -30,47 +40,37 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeConstants; -import javax.xml.datatype.DatatypeFactory; -import javax.xml.datatype.Duration; -import javax.xml.namespace.QName; - -import org.testng.Assert; -import org.testng.AssertJUnit; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; /* * @test * @bug 8190835 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm datatype.DurationTest + * @run junit/othervm datatype.DurationTest * @summary Test Duration. */ public class DurationTest { private final static boolean DEBUG = true; - protected Duration duration = null; + private DatatypeFactory factory = null; + private Duration duration = null; - @BeforeMethod - public void setUp() { - try { - duration = DatatypeFactory.newInstance().newDuration(100); - } catch (DatatypeConfigurationException dce) { - dce.printStackTrace(); - Assert.fail("Failed to create instance of DatatypeFactory " + dce.getMessage()); - } + @BeforeEach + public void setUp() throws DatatypeConfigurationException { + factory = DatatypeFactory.newInstance(); + duration = factory.newDuration(100); } /* DataProvider: for testDurationSubtract1 Data: minuend, subtrahend, expected result */ - @DataProvider(name = "DurationSubtract1") - public Object[][] getSubtract1() { + public static Object[][] getSubtract1() { return new Object[][]{ {"P2Y2M", "P1Y5M", "P9M"}, @@ -84,8 +84,7 @@ public class DurationTest { }; } - @DataProvider(name = "DurationSubtract2") - public Object[][] getSubtract2() { + public static Object[][] getSubtract2() { return new Object[][]{ {"P2Y20D", "P1Y125D"}, @@ -96,67 +95,60 @@ public class DurationTest { /* * Verifies valid substraction operations. */ - @Test(dataProvider = "DurationSubtract1") - public void testDurationSubtract1(String t1, String t2, String e) throws Exception { - DatatypeFactory factory = DatatypeFactory.newInstance(); + @ParameterizedTest + @MethodSource("getSubtract1") + public void testDurationSubtract1(String t1, String t2, String e) { Duration dt1 = factory.newDuration(t1); Duration dt2 = factory.newDuration(t2); Duration result = dt1.subtract(dt2); - Duration expected = factory.newDuration(e); - Assert.assertTrue(result.equals(expected), "The result should be " + e); + assertEquals(factory.newDuration(e), result, "The result should be " + e); } /* * Verifies invalid substraction operations. These operations are invalid * since days in a month are indeterminate. - */ - @Test(dataProvider = "DurationSubtract2", expectedExceptions = IllegalStateException.class) - public void testDurationSubtract2(String t1, String t2) throws Exception { - DatatypeFactory factory = DatatypeFactory.newInstance(); + */ + @ParameterizedTest + @MethodSource("getSubtract2") + public void testDurationSubtract2(String t1, String t2) { Duration dt1 = factory.newDuration(t1); Duration dt2 = factory.newDuration(t2); - Duration result = dt1.subtract(dt2); + assertThrows(IllegalStateException.class, () -> dt1.subtract(dt2)); } @Test public void testDurationSubtract() { - try { - Duration bigDur = DatatypeFactory.newInstance().newDuration(20000); - Duration smallDur = DatatypeFactory.newInstance().newDuration(10000); - if (smallDur.subtract(bigDur).getSign() != -1) { - Assert.fail("smallDur.subtract(bigDur).getSign() is not -1"); - } - if (bigDur.subtract(smallDur).getSign() != 1) { - Assert.fail("bigDur.subtract(smallDur).getSign() is not 1"); - } - if (smallDur.subtract(smallDur).getSign() != 0) { - Assert.fail("smallDur.subtract(smallDur).getSign() is not 0"); - } - } catch (DatatypeConfigurationException e) { - e.printStackTrace(); + Duration bigDur = factory.newDuration(20000); + Duration smallDur = factory.newDuration(10000); + if (smallDur.subtract(bigDur).getSign() != -1) { + fail("smallDur.subtract(bigDur).getSign() is not -1"); } + if (bigDur.subtract(smallDur).getSign() != 1) { + fail("bigDur.subtract(smallDur).getSign() is not 1"); + } + if (smallDur.subtract(smallDur).getSign() != 0) { + fail("smallDur.subtract(smallDur).getSign() is not 0"); + } + } @Test public void testDurationMultiply() { int num = 5000; // millisends. 5 seconds int factor = 2; - try { - Duration dur = DatatypeFactory.newInstance().newDuration(num); - if (dur.multiply(factor).getSeconds() != 10) { - Assert.fail("duration.multiply() return wrong value"); - } - // factor is 2*10^(-1) - if (dur.multiply(new BigDecimal(new BigInteger("2"), 1)).getSeconds() != 1) { - Assert.fail("duration.multiply() return wrong value"); - } - if (dur.subtract(DatatypeFactory.newInstance().newDuration(1000)).multiply(new BigDecimal(new BigInteger("2"), 1)).getSeconds() != 0) { - Assert.fail("duration.multiply() return wrong value"); - } - } catch (DatatypeConfigurationException e) { - e.printStackTrace(); + + Duration dur = factory.newDuration(num); + if (dur.multiply(factor).getSeconds() != 10) { + fail("duration.multiply() return wrong value"); + } + // factor is 2*10^(-1) + if (dur.multiply(new BigDecimal(new BigInteger("2"), 1)).getSeconds() != 1) { + fail("duration.multiply() return wrong value"); + } + if (dur.subtract(factory.newDuration(1000)).multiply(new BigDecimal(new BigInteger("2"), 1)).getSeconds() != 0) { + fail("duration.multiply() return wrong value"); } } @@ -169,73 +161,55 @@ public class DurationTest { int min = 5; int sec = 6; String lexicalRepresentation = "P" + year + "Y" + month + "M" + day + "DT" + hour + "H" + min + "M" + sec + "S"; - try { - Duration dur = DatatypeFactory.newInstance().newDuration(lexicalRepresentation); - System.out.println(dur.toString()); - AssertJUnit.assertTrue("year should be 1", dur.getYears() == year); - AssertJUnit.assertTrue("month should be 2", dur.getMonths() == month); - AssertJUnit.assertTrue("day should be 3", dur.getDays() == day); - AssertJUnit.assertTrue("hour should be 4", dur.getHours() == hour); - AssertJUnit.assertTrue("minute should be 5", dur.getMinutes() == min); - AssertJUnit.assertTrue("second should be 6", dur.getSeconds() == sec); - } catch (DatatypeConfigurationException e) { - e.printStackTrace(); - } + + Duration dur = factory.newDuration(lexicalRepresentation); + System.out.println(dur.toString()); + assertEquals(year, dur.getYears(), "year should be 1"); + assertEquals(month, dur.getMonths(), "month should be 2"); + assertEquals(day, dur.getDays(), "day should be 3"); + assertEquals(hour, dur.getHours(), "hour should be 4"); + assertEquals(min, dur.getMinutes(), "minute should be 5"); + assertEquals(sec, dur.getSeconds(), "second should be 6"); } @Test public void testDurationAndCalendar2() { - try { - AssertJUnit.assertTrue("10.00099S means 10 sec since it will be rounded to zero", DatatypeFactory.newInstance().newDuration("PT10.00099S") - .getTimeInMillis(new Date()) == 10000); - AssertJUnit.assertTrue("10.00099S means 10 sec since it will be rounded to zero", DatatypeFactory.newInstance().newDuration("-PT10.00099S") - .getTimeInMillis(new Date()) == -10000); - AssertJUnit.assertTrue("10.00099S means 10 sec since it will be rounded to zero", DatatypeFactory.newInstance().newDuration("PT10.00099S") - .getTimeInMillis(new GregorianCalendar()) == 10000); - AssertJUnit.assertTrue("10.00099S means 10 sec since it will be rounded to zero", DatatypeFactory.newInstance().newDuration("-PT10.00099S") - .getTimeInMillis(new GregorianCalendar()) == -10000); - } catch (DatatypeConfigurationException e) { - e.printStackTrace(); - } + assertEquals(10000, factory.newDuration("PT10.00099S") + .getTimeInMillis(new Date()), "10.00099S means 10 sec since it will be rounded to zero"); + assertEquals(-10000, factory.newDuration("-PT10.00099S") + .getTimeInMillis(new Date()), "10.00099S means 10 sec since it will be rounded to zero"); + assertEquals(10000, factory.newDuration("PT10.00099S") + .getTimeInMillis(new GregorianCalendar()), "10.00099S means 10 sec since it will be rounded to zero"); + assertEquals(-10000, factory.newDuration("-PT10.00099S") + .getTimeInMillis(new GregorianCalendar()), "10.00099S means 10 sec since it will be rounded to zero"); } @Test public void testDurationAndCalendar3() { - try { - Calendar cal = new GregorianCalendar(); - cal.set(Calendar.SECOND, 59); - DatatypeFactory.newInstance().newDuration(10000).addTo(cal); - AssertJUnit.assertTrue("sec will be 9", cal.get(Calendar.SECOND) == 9); + Calendar cal = new GregorianCalendar(); + cal.set(Calendar.SECOND, 59); + factory.newDuration(10000).addTo(cal); + assertEquals(9, cal.get(Calendar.SECOND), "sec will be 9"); - Date date = new Date(); - date.setSeconds(59); - DatatypeFactory.newInstance().newDuration(10000).addTo(date); - AssertJUnit.assertTrue("sec will be 9", date.getSeconds() == 9); - } catch (DatatypeConfigurationException e) { - e.printStackTrace(); - } + Date date = new Date(); + date.setSeconds(59); + factory.newDuration(10000).addTo(date); + assertEquals(9, date.getSeconds(), "sec will be 9"); } @Test public void testEqualsWithDifferentObjectParam() { - - AssertJUnit.assertFalse("equals method should return false for any object other than Duration", duration.equals(new Integer(0))); + assertFalse(duration.equals(new Integer(0)), "equals method should return false for any object other than Duration"); } @Test public void testEqualsWithNullObjectParam() { - - AssertJUnit.assertFalse("equals method should return false for null parameter", duration.equals(null)); + assertFalse(duration.equals(null), "equals method should return false for null parameter"); } @Test public void testEqualsWithEqualObjectParam() { - try { - AssertJUnit.assertTrue("equals method is expected to return true", duration.equals(DatatypeFactory.newInstance().newDuration(100))); - } catch (DatatypeConfigurationException dce) { - dce.printStackTrace(); - Assert.fail("Failed to create instance of DatatypeFactory " + dce.getMessage()); - } + assertTrue(duration.equals(factory.newDuration(100)), "equals method is expected to return true"); } /** @@ -250,13 +224,7 @@ public class DurationTest { { "PT2678400S", "<>", "P1M" }, { "PT31536000S", "<>", "P1Y" }, { "PT31622400S", "<>", "P1Y" }, { "PT525600M", "<>", "P1Y" }, { "PT527040M", "<>", "P1Y" }, { "PT8760H", "<>", "P1Y" }, { "PT8784H", "<>", "P1Y" }, { "P365D", "<>", "P1Y" }, }; - DatatypeFactory df = null; - try { - df = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException ex) { - ex.printStackTrace(); - Assert.fail(ex.toString()); - } + DatatypeFactory df = factory; boolean compareErrors = false; @@ -272,7 +240,7 @@ public class DurationTest { // tested if (expected != cmp) { compareErrors = true; - System.err.println("returned " + cmp2str(cmp) + " for durations \'" + duration1 + "\' and " + duration2 + "\', but expected " + System.err.println("returned " + cmp2str(cmp) + " for durations '" + duration1 + "' and " + duration2 + "', but expected " + cmp2str(expected)); } } @@ -280,7 +248,7 @@ public class DurationTest { if (compareErrors) { // TODO; fix bug, these tests should pass if (false) { - Assert.fail("Errors in comparing indeterminate relations, see Stderr"); + fail("Errors in comparing indeterminate relations, see Stderr"); } else { System.err.println("Please fix this bug: " + "Errors in comparing indeterminate relations, see Stderr"); } @@ -297,7 +265,7 @@ public class DurationTest { * description concerning return values range. */ @Test - public void testNormalizedReturnValues() throws Exception { + public void testNormalizedReturnValues() { final Object[] TEST_VALUES = { // test 61 seconds -> 1 minute, 1 second @@ -348,9 +316,9 @@ public class DurationTest { }; for (int onValue = 0; onValue < TEST_VALUES.length; onValue += 9) { - newDurationTester(((Boolean) TEST_VALUES[onValue]).booleanValue(), // isPositive, - ((Boolean) NORM_VALUES[onValue]).booleanValue(), // normalized - // isPositive, + newDurationTester((Boolean) TEST_VALUES[onValue], // isPositive, + (Boolean) NORM_VALUES[onValue], // normalized + // isPositive, (BigInteger) TEST_VALUES[onValue + 1], // years, (BigInteger) NORM_VALUES[onValue + 1], // normalized years, (BigInteger) TEST_VALUES[onValue + 2], // months @@ -363,16 +331,16 @@ public class DurationTest { (BigInteger) NORM_VALUES[onValue + 5], // normalized minutes (BigDecimal) TEST_VALUES[onValue + 6], // seconds (BigDecimal) NORM_VALUES[onValue + 6], // normalized seconds - ((Long) TEST_VALUES[onValue + 7]).longValue(), // durationInMilliSeconds, - ((Long) NORM_VALUES[onValue + 7]).longValue(), // normalized - // durationInMilliSeconds, + (Long) TEST_VALUES[onValue + 7], // durationInMilliSeconds, + (Long) NORM_VALUES[onValue + 7], // normalized + // durationInMilliSeconds, (String) TEST_VALUES[onValue + 8], // lexicalRepresentation (String) NORM_VALUES[onValue + 8]); // normalized // lexicalRepresentation - newDurationDayTimeTester(((Boolean) TEST_VALUES[onValue]).booleanValue(), // isPositive, - ((Boolean) NORM_VALUES[onValue]).booleanValue(), // normalized - // isPositive, + newDurationDayTimeTester((Boolean) TEST_VALUES[onValue], // isPositive, + (Boolean) NORM_VALUES[onValue], // normalized + // isPositive, BigInteger.ZERO, // years, BigInteger.ZERO, // normalized years, BigInteger.ZERO, // months @@ -385,9 +353,9 @@ public class DurationTest { (BigInteger) NORM_VALUES[onValue + 5], // normalized minutes (BigDecimal) TEST_VALUES[onValue + 6], // seconds (BigDecimal) NORM_VALUES[onValue + 6], // normalized seconds - ((Long) TEST_VALUES[onValue + 7]).longValue(), // durationInMilliSeconds, - ((Long) NORM_VALUES[onValue + 7]).longValue(), // normalized - // durationInMilliSeconds, + (Long) TEST_VALUES[onValue + 7], // durationInMilliSeconds, + (Long) NORM_VALUES[onValue + 7], // normalized + // durationInMilliSeconds, (String) TEST_VALUES[onValue + 8], // lexicalRepresentation (String) NORM_VALUES[onValue + 8]); // normalized // lexicalRepresentation @@ -399,33 +367,24 @@ public class DurationTest { BigInteger normalizedMinutes, BigDecimal seconds, BigDecimal normalizedSeconds, long durationInMilliSeconds, long normalizedDurationInMilliSeconds, String lexicalRepresentation, String normalizedLexicalRepresentation) { - DatatypeFactory datatypeFactory = null; - try { - datatypeFactory = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException ex) { - ex.printStackTrace(); - Assert.fail(ex.toString()); - } - // create 4 Durations using the 4 different constructors - - Duration durationBigInteger = datatypeFactory.newDuration(isPositive, years, months, days, hours, minutes, seconds); + Duration durationBigInteger = factory.newDuration(isPositive, years, months, days, hours, minutes, seconds); durationAssertEquals(durationBigInteger, DatatypeConstants.DURATION, normalizedIsPositive, normalizedYears.intValue(), normalizedMonths.intValue(), normalizedDays.intValue(), normalizedHours.intValue(), normalizedMinutes.intValue(), normalizedSeconds.intValue(), normalizedDurationInMilliSeconds, normalizedLexicalRepresentation); - Duration durationInt = datatypeFactory.newDuration(isPositive, years.intValue(), months.intValue(), days.intValue(), hours.intValue(), + Duration durationInt = factory.newDuration(isPositive, years.intValue(), months.intValue(), days.intValue(), hours.intValue(), minutes.intValue(), seconds.intValue()); durationAssertEquals(durationInt, DatatypeConstants.DURATION, normalizedIsPositive, normalizedYears.intValue(), normalizedMonths.intValue(), normalizedDays.intValue(), normalizedHours.intValue(), normalizedMinutes.intValue(), normalizedSeconds.intValue(), normalizedDurationInMilliSeconds, normalizedLexicalRepresentation); - Duration durationMilliseconds = datatypeFactory.newDuration(durationInMilliSeconds); + Duration durationMilliseconds = factory.newDuration(durationInMilliSeconds); durationAssertEquals(durationMilliseconds, DatatypeConstants.DURATION, normalizedIsPositive, normalizedYears.intValue(), normalizedMonths.intValue(), normalizedDays.intValue(), normalizedHours.intValue(), normalizedMinutes.intValue(), normalizedSeconds.intValue(), normalizedDurationInMilliSeconds, normalizedLexicalRepresentation); - Duration durationLexical = datatypeFactory.newDuration(lexicalRepresentation); + Duration durationLexical = factory.newDuration(lexicalRepresentation); durationAssertEquals(durationLexical, DatatypeConstants.DURATION, normalizedIsPositive, normalizedYears.intValue(), normalizedMonths.intValue(), normalizedDays.intValue(), normalizedHours.intValue(), normalizedMinutes.intValue(), normalizedSeconds.intValue(), normalizedDurationInMilliSeconds, normalizedLexicalRepresentation); @@ -436,17 +395,8 @@ public class DurationTest { BigInteger normalizedMinutes, BigDecimal seconds, BigDecimal normalizedSeconds, long durationInMilliSeconds, long normalizedDurationInMilliSeconds, String lexicalRepresentation, String normalizedLexicalRepresentation) { - DatatypeFactory datatypeFactory = null; - try { - datatypeFactory = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException ex) { - ex.printStackTrace(); - Assert.fail(ex.toString()); - } - // create 4 dayTime Durations using the 4 different constructors - - Duration durationDayTimeBigInteger = datatypeFactory.newDurationDayTime(isPositive, days, hours, minutes, seconds.toBigInteger()); + Duration durationDayTimeBigInteger = factory.newDurationDayTime(isPositive, days, hours, minutes, seconds.toBigInteger()); durationAssertEquals(durationDayTimeBigInteger, DatatypeConstants.DURATION_DAYTIME, normalizedIsPositive, normalizedYears.intValue(), normalizedMonths.intValue(), normalizedDays.intValue(), normalizedHours.intValue(), normalizedMinutes.intValue(), normalizedSeconds.intValue(), normalizedDurationInMilliSeconds, normalizedLexicalRepresentation); @@ -482,7 +432,7 @@ public class DurationTest { // sign if (DEBUG) { - boolean actual = (duration.getSign() == 1) ? true : false; + boolean actual = duration.getSign() == 1; System.out.println("sign:"); System.out.println(" expected: \"" + isPositive + "\""); System.out.println(" actual: \"" + actual + "\""); diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java index 47a965e8665..5c37c4f435c 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,48 +23,48 @@ package datatype; +import org.junit.jupiter.api.Test; + +import javax.xml.datatype.DatatypeFactory; import java.net.URL; import java.net.URLClassLoader; -import javax.xml.datatype.DatatypeFactory; -import org.testng.Assert; -import org.testng.annotations.Test; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; /* * @test * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm datatype.FactoryFindTest + * @run junit/othervm datatype.FactoryFindTest * @summary Test Classloader for DatatypeFactory. */ public class FactoryFindTest { - boolean myClassLoaderUsed = false; - @Test public void testFactoryFind() throws Exception { DatatypeFactory factory = DatatypeFactory.newInstance(); - Assert.assertTrue(factory.getClass().getClassLoader() == null); + assertNull(factory.getClass().getClassLoader()); Thread.currentThread().setContextClassLoader(null); - factory = DatatypeFactory.newInstance(); - Assert.assertTrue(factory.getClass().getClassLoader() == null); + assertNull(factory.getClass().getClassLoader()); - Thread.currentThread().setContextClassLoader(new MyClassLoader()); - factory = DatatypeFactory.newInstance(); - if (System.getSecurityManager() == null) - Assert.assertTrue(myClassLoaderUsed); - else - Assert.assertFalse(myClassLoaderUsed); + MyClassLoader customLoader = new MyClassLoader(); + Thread.currentThread().setContextClassLoader(customLoader); + assertNotNull(DatatypeFactory.newInstance()); + assertTrue(customLoader.wasUsed); } - class MyClassLoader extends URLClassLoader { + static class MyClassLoader extends URLClassLoader { + boolean wasUsed = false; public MyClassLoader() { super(new URL[0]); } - public Class loadClass(String name) throws ClassNotFoundException { - myClassLoaderUsed = true; + public Class loadClass(String name) throws ClassNotFoundException { + wasUsed = true; return super.loadClass(name); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/HashCodeTest.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/HashCodeTest.java index 6d16c676918..9ade9bceb63 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/HashCodeTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/HashCodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,16 +23,19 @@ package datatype; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; -import org.testng.annotations.Test; -import org.testng.Assert; -import org.testng.annotations.DataProvider; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; /* * @test * @bug 8246816 - * @run testng datatype.HashCodeTest + * @run junit datatype.HashCodeTest * @summary Test hashCode generation. */ public class HashCodeTest { @@ -40,26 +43,26 @@ public class HashCodeTest { DataProvider: for testHashCode Data: datetime1, datetime2, flag indicating if their hashCodes are equal */ - @DataProvider(name = "testHashCode") - public Object[][] getData() { + public static Object[][] getData() { - return new Object[][]{ - // the reported case: identical hash codes before the patch - {"2020-04-24T12:53:00+02:00", "2020-06-04T06:58:17.727Z", false}, - // a case mentioned in the dev note of hashCode() implementation - {"2000-01-15T12:00:00-05:00", "2000-01-15T13:00:00-04:00", true}, - /** - * Comparing with a datetime that needs to be normalized. - * Before the patch, XMLGregorianCalendarImpl called the normalizeToTimezone - * method that will set UNDEFINED fractional second to zero. - */ - {"2000-01-01T03:19:04Z", "1999-12-31T23:49:04-03:30", true}, - // another case mentioned in the javadoc of XMLGregorianCalendar::normalize() - {"2000-03-04T23:00:00+03:00", "2000-03-04T20:00:00Z", true}, + return new Object[][] { + // the reported case: identical hash codes before the patch + { "2020-04-24T12:53:00+02:00", "2020-06-04T06:58:17.727Z", false }, + // a case mentioned in the dev note of hashCode() implementation + { "2000-01-15T12:00:00-05:00", "2000-01-15T13:00:00-04:00", true }, + /* + * Comparing with a datetime that needs to be normalized. + * Before the patch, XMLGregorianCalendarImpl called the normalizeToTimezone + * method that will set UNDEFINED fractional second to zero. + */ + { "2000-01-01T03:19:04Z", "1999-12-31T23:49:04-03:30", true }, + // another case mentioned in the javadoc of XMLGregorianCalendar::normalize() + { "2000-03-04T23:00:00+03:00", "2000-03-04T20:00:00Z", true }, }; } - @Test(dataProvider = "testHashCode") + @ParameterizedTest + @MethodSource("getData") public final void testHashCode(String dt1, String dt2, boolean equal) throws Exception { DatatypeFactory dataTypeFactory = DatatypeFactory.newInstance(); XMLGregorianCalendar cal1 = dataTypeFactory.newXMLGregorianCalendar(dt1); @@ -70,11 +73,11 @@ public class HashCodeTest { int hashCode2 = cal2.hashCode(); if (equal) { - Assert.assertTrue(cal1.equals(cal2)); - Assert.assertEquals(hashCode1, hashCode2); + assertEquals(cal1, cal2); + assertEquals(hashCode1, hashCode2); } else { - Assert.assertFalse(cal1.equals(cal2)); - Assert.assertNotEquals(hashCode1, hashCode2); + assertNotEquals(cal1, cal2); + assertNotEquals(hashCode1, hashCode2); } } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java index 7fe96d741ee..cebdf563946 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,18 +22,19 @@ */ package datatype; +import org.junit.jupiter.api.Test; + import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.Duration; -import org.testng.Assert; -import org.testng.annotations.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; /* * @test * @bug 8068839 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm datatype.JDK8068839Test + * @run junit/othervm datatype.JDK8068839Test * @summary Verifies that Duration's edge cases */ public class JDK8068839Test { @@ -42,9 +43,9 @@ public class JDK8068839Test { public void test() throws DatatypeConfigurationException { DatatypeFactory df = DatatypeFactory.newInstance(); Duration durationx = df.newDuration(Long.MIN_VALUE); - Assert.assertEquals(durationx.toString(), "-P292277024Y7M16DT7H12M55.808S"); + assertEquals("-P292277024Y7M16DT7H12M55.808S", durationx.toString()); durationx = df.newDuration(Long.MAX_VALUE); - Assert.assertEquals(durationx.toString(), "P292277024Y7M16DT7H12M55.807S"); + assertEquals("P292277024Y7M16DT7H12M55.807S", durationx.toString()); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java b/test/jaxp/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java index df97f5c7a2b..3a5be07b02d 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,19 +23,23 @@ package datatype; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeConstants; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; -import org.testng.Assert; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +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 static org.junit.jupiter.api.Assertions.fail; /* * @test * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm datatype.XMLGregorianCalendarTest + * @run junit/othervm datatype.XMLGregorianCalendarTest * @summary Test XMLGregorianCalendar. */ public class XMLGregorianCalendarTest { @@ -46,41 +50,26 @@ public class XMLGregorianCalendarTest { private static final int TEST_VALUE_PASS = 1; + private DatatypeFactory factory; private XMLGregorianCalendar calendar; - @BeforeMethod - public void setUp() { - try { - calendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(); - } catch (DatatypeConfigurationException dce) { - dce.printStackTrace(); - Assert.fail("Failed to create instance of DatatypeFactory " + dce.getMessage()); - } + @BeforeEach + public void setUp() throws DatatypeConfigurationException { + factory = DatatypeFactory.newInstance(); + calendar = factory.newXMLGregorianCalendar(); } @Test public final void testSetTime() { - /** + /* * Hour, minute, second values to test and expected result. */ final int[] TEST_VALUES = { 24, 0, 0, TEST_VALUE_PASS, 24, 1, 0, TEST_VALUE_FAIL, 24, 0, 1, TEST_VALUE_FAIL, 24, DatatypeConstants.FIELD_UNDEFINED, 0, TEST_VALUE_FAIL, 24, 0, DatatypeConstants.FIELD_UNDEFINED, TEST_VALUE_FAIL }; - // create DatatypeFactory - DatatypeFactory datatypeFactory = null; - try { - datatypeFactory = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException datatypeConfigurationException) { - Assert.fail(datatypeConfigurationException.toString()); - } - - if (DEBUG) { - System.err.println("DatatypeFactory created: " + datatypeFactory.toString()); - } - // create XMLGregorianCalendar - XMLGregorianCalendar xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar(); + XMLGregorianCalendar xmlGregorianCalendar = factory.newXMLGregorianCalendar(); // test each value for (int onTestValue = 0; onTestValue < TEST_VALUES.length; onTestValue = onTestValue + 4) { @@ -95,24 +84,24 @@ public class XMLGregorianCalendarTest { xmlGregorianCalendar.setTime(TEST_VALUES[onTestValue], TEST_VALUES[onTestValue + 1], TEST_VALUES[onTestValue + 2]); if (DEBUG) { - System.err.println("XMLGregorianCalendar created: \"" + xmlGregorianCalendar.toString() + "\""); + System.err.println("XMLGregorianCalendar created: \"" + xmlGregorianCalendar + "\""); } // was this expected to fail? if (TEST_VALUES[onTestValue + 3] == TEST_VALUE_FAIL) { - Assert.fail("the values: (" + TEST_VALUES[onTestValue] + ", " + TEST_VALUES[onTestValue + 1] + ", " + TEST_VALUES[onTestValue + 2] - + ") are invalid, " + "yet it created the XMLGregorianCalendar \"" + xmlGregorianCalendar.toString() + "\""); + fail("the values: (" + TEST_VALUES[onTestValue] + ", " + TEST_VALUES[onTestValue + 1] + ", " + TEST_VALUES[onTestValue + 2] + + ") are invalid, " + "yet it created the XMLGregorianCalendar \"" + xmlGregorianCalendar + "\""); } } catch (Exception exception) { if (DEBUG) { - System.err.println("Exception in creating XMLGregorianCalendar: \"" + exception.toString() + "\""); + System.err.println("Exception in creating XMLGregorianCalendar: \"" + exception + "\""); } // was this expected to succed? if (TEST_VALUES[onTestValue + 3] == TEST_VALUE_PASS) { - Assert.fail("the values: (" + TEST_VALUES[onTestValue] + ", " + TEST_VALUES[onTestValue + 1] + ", " + TEST_VALUES[onTestValue + 2] - + ") are valid yet it failed with \"" + exception.toString() + "\""); + fail("the values: (" + TEST_VALUES[onTestValue] + ", " + TEST_VALUES[onTestValue + 1] + ", " + TEST_VALUES[onTestValue + 2] + + ") are valid yet it failed with \"" + exception + "\""); } // expected failure } @@ -122,7 +111,7 @@ public class XMLGregorianCalendarTest { @Test public final void testSetHour() { - /** + /* * Hour values to test and expected result. */ final int[] TEST_VALUES = { @@ -133,20 +122,8 @@ public class XMLGregorianCalendarTest { // violates Schema Errata 0, 0, 1, 24, TEST_VALUE_FAIL }; - // create DatatypeFactory - DatatypeFactory datatypeFactory = null; - try { - datatypeFactory = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException datatypeConfigurationException) { - Assert.fail(datatypeConfigurationException.toString()); - } - - if (DEBUG) { - System.err.println("DatatypeFactory created: " + datatypeFactory.toString()); - } - // create XMLGregorianCalendar - XMLGregorianCalendar xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar(); + XMLGregorianCalendar xmlGregorianCalendar = factory.newXMLGregorianCalendar(); // test each value for (int onTestValue = 0; onTestValue < TEST_VALUES.length; onTestValue = onTestValue + 5) { @@ -163,25 +140,25 @@ public class XMLGregorianCalendarTest { xmlGregorianCalendar.setHour(TEST_VALUES[onTestValue + 3]); if (DEBUG) { - System.err.println("XMLGregorianCalendar created: \"" + xmlGregorianCalendar.toString() + "\""); + System.err.println("XMLGregorianCalendar created: \"" + xmlGregorianCalendar + "\""); } // was this expected to fail? if (TEST_VALUES[onTestValue + 4] == TEST_VALUE_FAIL) { - Assert.fail("the values: (" + TEST_VALUES[onTestValue] + ", " + TEST_VALUES[onTestValue + 1] + ", " + TEST_VALUES[onTestValue + 2] + ", " - + TEST_VALUES[onTestValue + 3] + ") are invalid, " + "yet it created the XMLGregorianCalendar \"" + xmlGregorianCalendar.toString() + fail("the values: (" + TEST_VALUES[onTestValue] + ", " + TEST_VALUES[onTestValue + 1] + ", " + TEST_VALUES[onTestValue + 2] + ", " + + TEST_VALUES[onTestValue + 3] + ") are invalid, " + "yet it created the XMLGregorianCalendar \"" + xmlGregorianCalendar + "\""); } } catch (Exception exception) { if (DEBUG) { - System.err.println("Exception in creating XMLGregorianCalendar: \"" + exception.toString() + "\""); + System.err.println("Exception in creating XMLGregorianCalendar: \"" + exception + "\""); } // was this expected to succed? if (TEST_VALUES[onTestValue + 4] == TEST_VALUE_PASS) { - Assert.fail("the values: (" + TEST_VALUES[onTestValue] + ", " + TEST_VALUES[onTestValue + 1] + ", " + TEST_VALUES[onTestValue + 2] + ", " - + TEST_VALUES[onTestValue + 3] + ") are valid yet it failed with \"" + exception.toString() + "\""); + fail("the values: (" + TEST_VALUES[onTestValue] + ", " + TEST_VALUES[onTestValue + 1] + ", " + TEST_VALUES[onTestValue + 2] + ", " + + TEST_VALUES[onTestValue + 3] + ") are valid yet it failed with \"" + exception + "\""); } // expected failure } @@ -190,38 +167,24 @@ public class XMLGregorianCalendarTest { @Test public void testEqualsWithDifferentObjectParam() { - - Assert.assertFalse(calendar.equals(new Integer(0)), "equals method should return false for any object other" + " than XMLGregorianCalendar"); + assertFalse(calendar.equals(new Integer(0)), "equals method should return false for any object other" + " than XMLGregorianCalendar"); } @Test public void testEqualsWithNullObjectParam() { - - Assert.assertFalse(calendar.equals(null), "equals method should return false for null parameter"); + assertFalse(calendar.equals(null), "equals method should return false for null parameter"); } @Test public void testEqualsWithEqualObjectParam() { - - try { - Assert.assertTrue(calendar.equals(DatatypeFactory.newInstance().newXMLGregorianCalendar()), "equals method is expected to return true"); - } catch (DatatypeConfigurationException dce) { - dce.printStackTrace(); - Assert.fail("Failed to create instance of DatatypeFactory " + dce.getMessage()); - } + assertTrue(calendar.equals(factory.newXMLGregorianCalendar()), "equals method is expected to return true"); } @Test public void testToString() { - try { - String inputDateTime = "2006-10-23T22:15:01.000000135+08:00"; - DatatypeFactory factory = DatatypeFactory.newInstance(); - XMLGregorianCalendar calendar = factory.newXMLGregorianCalendar(inputDateTime); - String toStr = calendar.toString(); - Assert.assertTrue(toStr.indexOf("E") == -1, "String value cannot contain exponent"); - } catch (DatatypeConfigurationException dce) { - dce.printStackTrace(); - Assert.fail("Failed to create instance of DatatypeFactory " + dce.getMessage()); - } + String inputDateTime = "2006-10-23T22:15:01.000000135+08:00"; + XMLGregorianCalendar calendar = factory.newXMLGregorianCalendar(inputDateTime); + String toStr = calendar.toString(); + assertEquals(-1, toStr.indexOf("E"), "String value cannot contain exponent"); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java b/test/jaxp/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java index 8de2d8b1b22..71cbcb6a838 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,14 +23,18 @@ package sax; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.ext.Attributes2Impl; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + /* * @test * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.Attributes2ImplTest + * @run junit/othervm sax.Attributes2ImplTest * @summary Test Attributes2Impl. */ public class Attributes2ImplTest { @@ -43,42 +47,25 @@ public class Attributes2ImplTest { impl.addAttribute("http://www.cars.com/xml", "attr2", "Qname2", "type", "value"); impl.addAttribute("http://www.cars.com/xml", "attr3", "Qname3", "type", "value"); - Assert.assertTrue(impl.isDeclared(0)); + assertTrue(impl.isDeclared(0)); impl.setDeclared(0, false); - Assert.assertFalse(impl.isDeclared(0)); + assertFalse(impl.isDeclared(0)); - Assert.assertTrue(impl.isDeclared("Qname2")); + assertTrue(impl.isDeclared("Qname2")); impl.setDeclared(1, false); - Assert.assertFalse(impl.isDeclared("Qname2")); + assertFalse(impl.isDeclared("Qname2")); - Assert.assertTrue(impl.isDeclared("http://www.cars.com/xml", "attr3")); + assertTrue(impl.isDeclared("http://www.cars.com/xml", "attr3")); impl.setDeclared(2, false); - Assert.assertFalse(impl.isDeclared(2)); + assertFalse(impl.isDeclared(2)); - try { - impl.isDeclared(3); - } catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Expected ArrayIndexOutOfBoundsException"); - } + assertThrows(ArrayIndexOutOfBoundsException.class, () -> impl.isDeclared(3)); - try { - impl.isDeclared("wrongQname"); - } catch (IllegalArgumentException e) { - System.out.println("Expected IllegalArgumentException"); - } - - try { - impl.isDeclared("http://www.cars.com/xml", "attr4"); - } catch (IllegalArgumentException e) { - System.out.println("Expected IllegalArgumentException"); - } + assertThrows(IllegalArgumentException.class, () -> impl.isDeclared("wrongQname")); + assertThrows(IllegalArgumentException.class, () -> impl.isDeclared("http://www.cars.com/xml", "attr4")); impl.removeAttribute(2); - try { - impl.isDeclared(2); - } catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Expected ArrayIndexOutOfBoundsException on index=2 after removing"); - } + assertThrows(ArrayIndexOutOfBoundsException.class, () -> impl.isDeclared(2)); } @Test @@ -89,42 +76,25 @@ public class Attributes2ImplTest { impl.addAttribute("http://www.cars.com/xml", "attr2", "Qname2", "type", "value"); impl.addAttribute("http://www.cars.com/xml", "attr3", "Qname3", "type", "value"); - Assert.assertTrue(impl.isSpecified(0)); + assertTrue(impl.isSpecified(0)); impl.setSpecified(0, false); - Assert.assertFalse(impl.isSpecified(0)); + assertFalse(impl.isSpecified(0)); - Assert.assertTrue(impl.isSpecified("Qname2")); + assertTrue(impl.isSpecified("Qname2")); impl.setSpecified(1, false); - Assert.assertFalse(impl.isSpecified("Qname2")); + assertFalse(impl.isSpecified("Qname2")); - Assert.assertTrue(impl.isSpecified("http://www.cars.com/xml", "attr3")); + assertTrue(impl.isSpecified("http://www.cars.com/xml", "attr3")); impl.setSpecified(2, false); - Assert.assertFalse(impl.isSpecified(2)); + assertFalse(impl.isSpecified(2)); - try { - impl.isSpecified(3); - } catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Expected ArrayIndexOutOfBoundsException"); - } + assertThrows(ArrayIndexOutOfBoundsException.class, () -> impl.isSpecified(3)); - try { - impl.isSpecified("wrongQname"); - } catch (IllegalArgumentException e) { - System.out.println("Expected IllegalArgumentException"); - } - - try { - impl.isSpecified("http://www.cars.com/xml", "attr4"); - } catch (IllegalArgumentException e) { - System.out.println("Expected IllegalArgumentException"); - } + assertThrows(IllegalArgumentException.class, () -> impl.isSpecified("wrongQname")); + assertThrows(IllegalArgumentException.class, () -> impl.isSpecified("http://www.cars.com/xml", "attr4")); impl.removeAttribute(2); - try { - impl.isSpecified(2); - } catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Expected ArrayIndexOutOfBoundsException on index=2 after removing"); - } + assertThrows(ArrayIndexOutOfBoundsException.class, () -> impl.isSpecified(2)); } @Test @@ -140,13 +110,13 @@ public class Attributes2ImplTest { Attributes2Impl impl3 = new Attributes2Impl(); impl3.setAttributes(impl1); - Assert.assertTrue(impl1.getQName(0).equals(impl2.getQName(0))); - Assert.assertTrue(impl1.getQName(0).equals(impl3.getQName(0))); + assertEquals(impl1.getQName(0), impl2.getQName(0)); + assertEquals(impl1.getQName(0), impl3.getQName(0)); - Assert.assertTrue(impl1.getQName(1).equals(impl2.getQName(1))); - Assert.assertTrue(impl1.getQName(1).equals(impl3.getQName(1))); + assertEquals(impl1.getQName(1), impl2.getQName(1)); + assertEquals(impl1.getQName(1), impl3.getQName(1)); - Assert.assertTrue(impl1.getQName(2).equals(impl2.getQName(2))); - Assert.assertTrue(impl1.getQName(2).equals(impl3.getQName(2))); + assertEquals(impl1.getQName(2), impl2.getQName(2)); + assertEquals(impl1.getQName(2), impl3.getQName(2)); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6889654Test.java b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6889654Test.java index 89f0ceebe61..62f16021af2 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6889654Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6889654Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,64 +23,26 @@ package sax; -import java.io.IOException; -import java.io.StringReader; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParserFactory; - -import org.testng.Assert; -import org.testng.annotations.Test; -import org.xml.sax.InputSource; +import org.junit.jupiter.api.Test; import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; + +import static org.junit.jupiter.api.Assertions.assertTrue; /* * @test * @bug 6889654 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.Bug6889654Test + * @run junit/othervm sax.Bug6889654Test * @summary Test SAXException includes whole information. */ public class Bug6889654Test { - - final String MSG = "Failed to parse XML"; - @Test public void testException() { - try { - parse(); - } catch (SAXException e) { - // e.printStackTrace(); - String msg = e.toString(); - if (msg.indexOf("systemId") == -1) { - Assert.fail("CR6889654 -- details should be returned."); - } - if (msg.indexOf(MSG) == -1) { - Assert.fail("CR6889649 -- additional error message not returned."); - } - System.out.println("error message:\n" + msg); - } + RuntimeException cause = new RuntimeException(""); + // The toString() of a SAXException includes the message of its cause. + SAXException wrapped = new SAXException("", cause); + + assertTrue(wrapped.toString().contains("")); + assertTrue(wrapped.toString().contains("")); } - - void parse() throws SAXException { - String xml = "\n\u0000"; - - try { - InputSource is = new InputSource(new StringReader(xml)); - is.setSystemId("file:///path/to/some.xml"); - // notice that exception thrown here doesn't include the line number - // information when reported by JVM -- CR6889654 - SAXParserFactory.newInstance().newSAXParser().parse(is, new DefaultHandler()); - } catch (SAXException e) { - // notice that this message isn't getting displayed -- CR6889649 - throw new SAXException(MSG, e); - } catch (ParserConfigurationException pce) { - - } catch (IOException ioe) { - - } - - } - } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6925410Test.java b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6925410Test.java index d0a41dc0cf1..4f6a88874d9 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6925410Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6925410Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,37 +23,30 @@ package sax; -import javax.xml.datatype.DatatypeConfigurationException; - -import org.testng.annotations.Test; -import org.testng.Assert; +import org.junit.jupiter.api.Test; +import org.xml.sax.SAXException; import org.xml.sax.helpers.XMLReaderFactory; +import javax.xml.datatype.DatatypeConfigurationException; + /* * @test * @bug 6925410 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.Bug6925410Test + * @run junit/othervm sax.Bug6925410Test * @summary Test XMLReaderFactory can createXMLReader repeatedly. */ public class Bug6925410Test { @Test - public void test() throws DatatypeConfigurationException { - try { - int times = 100; - long start = System.currentTimeMillis(); - for (int i = 0; i < times; i++) { - XMLReaderFactory.createXMLReader(); - } - long end = System.currentTimeMillis(); - double speed = ((end - start)); - System.out.println(speed + "ms"); - } catch (Throwable e) { - e.printStackTrace(); - Assert.fail(e.toString()); + public void test() throws DatatypeConfigurationException, SAXException { + int times = 100; + long start = System.currentTimeMillis(); + for (int i = 0; i < times; i++) { + XMLReaderFactory.createXMLReader(); } - + long end = System.currentTimeMillis(); + double speed = ((end - start)); + System.out.println(speed + "ms"); } - } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6949607Test.java b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6949607Test.java index 4aeb8ed603d..e1372e6fdb6 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6949607Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6949607Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,57 +23,52 @@ package sax; -import java.io.ByteArrayInputStream; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.ByteArrayInputStream; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + /* * @test * @bug 6949607 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.Bug6949607Test + * @run junit/othervm sax.Bug6949607Test * @summary Test Attributes.getValue returns null when parameter uri is empty. */ public class Bug6949607Test { - - final String MSG = "Failed to parse XML"; - String textXML = ""; + private static final String TEXT_XML = + ""; @Test - public void testException() { - try { - SAXParserFactory factory = SAXParserFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setValidating(true); - SAXParser saxParser = factory.newSAXParser(); + public void testException() throws Exception { + SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setNamespaceAware(true); + factory.setValidating(true); + SAXParser saxParser = factory.newSAXParser(); - saxParser.parse(new ByteArrayInputStream(textXML.getBytes()), new TestFilter()); - - } catch (Throwable t) { - t.printStackTrace(); - } + TestFilter filter = new TestFilter(); + saxParser.parse(new ByteArrayInputStream(TEXT_XML.getBytes()), filter); + assertTrue(filter.wasTested); } - class TestFilter extends DefaultHandler { + static class TestFilter extends DefaultHandler { + boolean wasTested = false; + @Override public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { super.startElement(uri, localName, qName, atts); - String attr_WithNs = atts.getValue("something", "attr"); - String attr_NoNs = atts.getValue("", "attr"); - - System.out.println("withNs: " + attr_WithNs); - System.out.println("NoNs: " + attr_NoNs); - - Assert.assertTrue(attr_NoNs == null, "Should return null when uri is empty."); - + assertEquals("attrValue", atts.getValue("something", "attr")); + assertNull(atts.getValue("", "attr"), "Should return null when uri is empty."); + wasTested = true; } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6992561Test.java b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6992561Test.java index 58bdee54aca..37fe7f9976a 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6992561Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug6992561Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,63 +23,49 @@ package sax; -import java.io.ByteArrayInputStream; -import java.io.IOException; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; import org.xml.sax.Locator; -import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.ByteArrayInputStream; + +import static org.junit.jupiter.api.Assertions.assertFalse; + /* * @test * @bug 6992561 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.Bug6992561Test + * @run junit/othervm sax.Bug6992561Test * @summary Test encoding of SystemId in Locator. */ public class Bug6992561Test { @Test - public void test() { + public void test() throws Exception { ContentHandler handler = new DefaultHandler() { public void setDocumentLocator(Locator locator) { String sysId = locator.getSystemId(); System.out.println(locator.getSystemId()); - if (sysId.indexOf("%7") > 0) { - Assert.fail("the original system id should be left as is and not encoded."); - } + assertFalse(sysId.contains("%7"), "the original system id should be left as is and not encoded."); } }; SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser parser; - try { - parser = spf.newSAXParser(); + parser = spf.newSAXParser(); - XMLReader reader = parser.getXMLReader(); - reader.setContentHandler(handler); - String xml = "abc"; - ByteArrayInputStream bis = new ByteArrayInputStream(xml.getBytes()); - InputSource is = new InputSource("file:/home2/ramapulavarthi/w/bugs/jaxws861/foo~bla/test/src/wsdl/HelloTypes.xsd"); - is.setByteStream(bis); - reader.parse(is); - - } catch (ParserConfigurationException ex) { - Assert.fail(ex.toString()); - } catch (SAXException ex) { - Assert.fail(ex.toString()); - } catch (IOException ex) { - Assert.fail(ex.toString()); - } + XMLReader reader = parser.getXMLReader(); + reader.setContentHandler(handler); + String xml = "abc"; + ByteArrayInputStream bis = new ByteArrayInputStream(xml.getBytes()); + InputSource is = new InputSource("file:/home2/ramapulavarthi/w/bugs/jaxws861/foo~bla/test/src/wsdl/HelloTypes.xsd"); + is.setByteStream(bis); + reader.parse(is); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug7057778.xml b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug7057778.xml deleted file mode 100644 index b28b04f6431..00000000000 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug7057778.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug7057778Test.java b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug7057778Test.java index c2d377f7d7b..9c2e772c83f 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/Bug7057778Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/Bug7057778Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,171 +23,43 @@ package sax; -import static jaxp.library.JAXPTestUtilities.USER_DIR; -import static jaxp.library.JAXPTestUtilities.getSystemProperty; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; -import java.io.Writer; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import org.testng.Assert; -import org.testng.annotations.Test; -import org.xml.sax.Attributes; -import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; +import org.junit.jupiter.api.Test; import org.xml.sax.SAXParseException; import org.xml.sax.XMLReader; import org.xml.sax.ext.DefaultHandler2; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; + +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + /* * @test * @bug 7057778 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.Bug7057778Test + * @run junit/othervm sax.Bug7057778Test * @summary Test the file can be deleted after SAXParser.parse(File, DefaultHandler). */ public class Bug7057778Test { - - static final String xml = "Bug7057778.xml"; - static final String xml1 = "Bug7057778_1.xml"; - @Test - public void testParse() { - File src = new File(getClass().getResource(xml).getFile()); - File dst = new File(USER_DIR + xml1); - try { - copyFile(src, dst); - SAXParserFactory spf = SAXParserFactory.newInstance(); - SAXParser parser = spf.newSAXParser(); - XMLReader xmlReader = parser.getXMLReader(); - xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", new MyHandler1()); - parser.parse(dst, new MyHandler1()); - } catch (SAXException ex) { - ex.printStackTrace(); - } catch (IOException ex) { - // shouldn't happen - } catch (ParserConfigurationException ex) { - // shouldn't happen - } catch (Exception ex) { - } - if (dst != null) { - if (dst.delete()) { - System.out.println("Delete: OK"); - } else { - System.out.println("Delete: NG"); - Assert.fail("Error: denied to delete the file"); - } - } + public void testParse() throws Exception { + Path badXml = Path.of("bad.xml"); + Files.writeString(badXml, "\n\n\n\n"); - } - - private void copyFile(File src, File dst) throws FileNotFoundException, IOException { - InputStream in = new FileInputStream(src); - OutputStream out = new FileOutputStream(dst); - // Transfer bytes - byte[] buf = new byte[1024]; - int len; - while ((len = in.read(buf)) > 0) { - out.write(buf, 0, len); - } - in.close(); - out.close(); - } - - public class MyHandler1 extends DefaultHandler2 implements ErrorHandler { - private Writer out; - - StringBuffer textBuffer; - private String indentString = " "; // Amount to indent - private int indentLevel = 0; - - public MyHandler1() { - try { - out = new OutputStreamWriter(System.out, "UTF8"); - } catch (UnsupportedEncodingException ex) { - ex.printStackTrace(); - } - } - - public void startDocument() throws SAXException { - } - - public void endDocument() throws SAXException { - } - - public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { - try { - System.out.println("uri: " + uri); - System.out.println("localName: " + localName); - System.out.println("qName: " + qName); - } catch (Exception e) { - throw new SAXException(e); - } - - } - - public void endElement(String uri, String localName, String qName) throws SAXException { - } - - public void characters(char ch[], int start, int length) throws SAXException { - } - - public void comment(char[] ch, int start, int length) { - String text = new String(ch, start, length); - // System.out.println(text); - try { - nl(); - emit("COMMENT: " + text); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void error(SAXParseException exception) { - exception.printStackTrace(); - } - - public void fatalError(SAXParseException exception) { - exception.printStackTrace(); - } - - public void warning(SAXParseException exception) { - exception.printStackTrace(); - } - - // Wrap I/O exceptions in SAX exceptions, to - // suit handler signature requirements - private void emit(String s) throws SAXException { - try { - out.write(s); - out.flush(); - } catch (IOException e) { - throw new SAXException("I/O error", e); - } - } - - // Start a new line - // and indent the next line appropriately - private void nl() throws SAXException { - String lineEnd = getSystemProperty("line.separator"); - - try { - out.write(lineEnd); - - for (int i = 0; i < indentLevel; i++) - out.write(indentString); - } catch (IOException e) { - throw new SAXException("I/O error", e); - } - } + SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParser parser = spf.newSAXParser(); + XMLReader xmlReader = parser.getXMLReader(); + DefaultHandler2 noopHandler = new DefaultHandler2(); + xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", noopHandler); + // Test file is empty and fails parsing. + File dst = badXml.toFile(); + assertThrows(SAXParseException.class, () -> parser.parse(dst, noopHandler)); + // But parse failure should not keep the destination file open. + assertTrue(dst.delete(), "could not delete the file"); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/DeclarationTest.java b/test/jaxp/javax/xml/jaxp/unittest/sax/DeclarationTest.java index f9d9b2a117e..19871b5ddf8 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/DeclarationTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/DeclarationTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,25 +23,25 @@ package sax; -import java.io.File; -import java.io.StringReader; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import org.testng.Assert; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Listeners; -import org.testng.annotations.Test; -import org.xml.sax.ContentHandler; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.File; +import java.io.StringReader; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /* * @test * @bug 8230814 - * @run testng sax.DeclarationTest + * @run junit sax.DeclarationTest * @summary Test SAX Parser's handling of XML Declarations. */ public class DeclarationTest { @@ -56,12 +56,8 @@ public class DeclarationTest { * * Fields: * XML string, expected version, encoding and standalone strings - * - * @return data array for the test - * @throws Exception */ - @DataProvider(name = "default") - public Object[][] forDefaultHandler() throws Exception { + public static Object[][] defaultHandlerData() throws Exception { return new Object[][] { { XML_NO_DECLARATION, null, null, null}, { XML_NO_STANDALONE, null, null, null}, @@ -75,12 +71,8 @@ public class DeclarationTest { * * Fields: * XML string, expected version, encoding and standalone strings - * - * @return data array for the test - * @throws Exception */ - @DataProvider(name = "sax-data") - public Object[][] xmlSAXData() throws Exception { + public static Object[][] xmlSAXData() throws Exception { return new Object[][] { { XML_NO_DECLARATION, null, null, null}, { XML_NO_STANDALONE, "1.0", "ISO-8859-1", null}, @@ -95,12 +87,8 @@ public class DeclarationTest { * * Fields: * Source files, expected version, encoding and standalone strings - * - * @return data array for the test - * @throws Exception */ - @DataProvider(name = "sax-data-files") - public Object[][] xmlSAXDataFiles() throws Exception { + public static Object[][] xmlSAXDataFiles() throws Exception { return new Object[][] { //the source contains no declaration { new File(SRC_DIR + "/../transform/SourceTest.xml"), null, null, null}, @@ -129,7 +117,8 @@ public class DeclarationTest { * @param standalone expected standalone string * @throws Exception if the test fails */ - @Test(dataProvider = "default") + @ParameterizedTest + @MethodSource("defaultHandlerData") public void testDefault(String xml, String version, String encoding, String standalone) throws Exception { DefaultImpl h = new DefaultImpl(); @@ -145,7 +134,8 @@ public class DeclarationTest { * @param standalone expected standalone string * @throws Exception if the test fails */ - @Test(dataProvider = "sax-data") + @ParameterizedTest + @MethodSource("xmlSAXData") public void test(String xml, String version, String encoding, String standalone) throws Exception { NewMethodImpl h = new NewMethodImpl(); @@ -161,15 +151,16 @@ public class DeclarationTest { * @param standalone expected standalone string * @throws Exception if the test fails */ - @Test(dataProvider = "sax-data-files") + @ParameterizedTest + @MethodSource("xmlSAXDataFiles") public void testFiles(File xml, String version, String encoding, String standalone) throws Exception { SAXParser parser = SAXParserFactory.newDefaultInstance().newSAXParser(); NewMethodImpl h = new NewMethodImpl(); parser.parse(xml, h); - Assert.assertEquals(h.version, version); - Assert.assertEquals(h.encoding, encoding); - Assert.assertEquals(h.standalone, standalone); + assertEquals(version, h.version); + assertEquals(encoding, h.encoding); + assertEquals(standalone, h.standalone); } /** @@ -187,12 +178,12 @@ public class DeclarationTest { XMLReader r = SAXParserFactory.newDefaultInstance().newSAXParser().getXMLReader(); r.setContentHandler(h); r.parse(new InputSource(new StringReader(xml))); - Assert.assertEquals(h.version, version); - Assert.assertEquals(h.encoding, encoding); - Assert.assertEquals(h.standalone, standalone); + assertEquals(version, h.version); + assertEquals(encoding, h.encoding); + assertEquals(standalone, h.standalone); } - class DefaultImpl extends DefaultHandler{ + static class DefaultImpl extends DefaultHandler { boolean startDocumentInvoked = false; String version, encoding, standalone; @@ -202,7 +193,7 @@ public class DeclarationTest { } } - class NewMethodImpl extends DefaultImpl { + static class NewMethodImpl extends DefaultImpl { public void startDocument() throws SAXException { super.startDocument(); @@ -213,7 +204,7 @@ public class DeclarationTest { throws SAXException { super.declaration(version, encoding, standalone); - Assert.assertTrue(startDocumentInvoked, "declaration follows startDocument"); + assertTrue(startDocumentInvoked, "declaration follows startDocument"); this.version = version; this.encoding = encoding; this.standalone = standalone; diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java b/test/jaxp/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java index 85e447783ca..4f50b23e8d6 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,16 +23,7 @@ package sax; -import java.io.IOException; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.testng.Assert; -import org.testng.AssertJUnit; -import org.testng.annotations.Test; -import org.xml.sax.SAXException; +import org.junit.jupiter.api.Test; import org.xml.sax.SAXNotRecognizedException; import org.xml.sax.XMLReader; import org.xml.sax.ext.DefaultHandler2; @@ -41,210 +32,135 @@ import org.xml.sax.helpers.ParserAdapter; import org.xml.sax.helpers.XMLFilterImpl; import org.xml.sax.helpers.XMLReaderFactory; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertThrows; + /* * @test * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.DefaultHandler2Test + * @run junit/othervm sax.DefaultHandler2Test * @summary Test DefaultHandler2. */ public class DefaultHandler2Test { @Test - public void testParse01() { - System.out.println("===in testParse01==="); - try { - DefaultHandler handler = new MyDefaultHandler2(); - SAXParserFactory saxFac = SAXParserFactory.newInstance(); - System.out.println(saxFac.getFeature("http://xml.org/sax/features/use-locator2")); + public void testParse01() throws Exception { + DefaultHandler handler = new MyDefaultHandler2(); + SAXParserFactory saxFac = SAXParserFactory.newInstance(); + System.out.println(saxFac.getFeature("http://xml.org/sax/features/use-locator2")); - // set use-entity-resolver2 as FALSE to use EntityResolver firstly. - saxFac.setFeature("http://xml.org/sax/features/use-entity-resolver2", false); - saxFac.setValidating(true); + // set use-entity-resolver2 as FALSE to use EntityResolver firstly. + saxFac.setFeature("http://xml.org/sax/features/use-entity-resolver2", false); + saxFac.setValidating(true); - SAXParser parser = saxFac.newSAXParser(); - parser.setProperty("http://xml.org/sax/properties/lexical-handler", handler); - parser.setProperty("http://xml.org/sax/properties/declaration-handler", handler); + SAXParser parser = saxFac.newSAXParser(); + parser.setProperty("http://xml.org/sax/properties/lexical-handler", handler); + parser.setProperty("http://xml.org/sax/properties/declaration-handler", handler); - parser.parse(this.getClass().getResource("toys.xml").getFile(), handler); - } catch (ParserConfigurationException e) { - e.printStackTrace(); - Assert.fail("ParserConfigurationException in testParse01()"); - } catch (SAXException e) { - e.printStackTrace(); - Assert.fail("SAXException in testParse01()"); - } catch (IOException e) { - e.printStackTrace(); - Assert.fail("IOException in testParse01()"); - } + parser.parse(this.getClass().getResource("toys.xml").getFile(), handler); } @Test - public void testParse02() { - System.out.println("===in testParse02==="); - try { - DefaultHandler handler = new MyDefaultHandler2(); - SAXParserFactory saxFac = SAXParserFactory.newInstance(); - System.out.println(saxFac.getFeature("http://xml.org/sax/features/use-locator2")); + public void testParse02() throws Exception { + DefaultHandler handler = new MyDefaultHandler2(); + SAXParserFactory saxFac = SAXParserFactory.newInstance(); + System.out.println(saxFac.getFeature("http://xml.org/sax/features/use-locator2")); - // Enable namespace parsing - System.out.println(saxFac.getFeature("http://xml.org/sax/features/namespaces")); - saxFac.setNamespaceAware(true); + // Enable namespace parsing + System.out.println(saxFac.getFeature("http://xml.org/sax/features/namespaces")); + saxFac.setNamespaceAware(true); - saxFac.setValidating(true); - SAXParser parser = saxFac.newSAXParser(); - parser.setProperty("http://xml.org/sax/properties/lexical-handler", handler); - parser.setProperty("http://xml.org/sax/properties/declaration-handler", handler); + saxFac.setValidating(true); + SAXParser parser = saxFac.newSAXParser(); + parser.setProperty("http://xml.org/sax/properties/lexical-handler", handler); + parser.setProperty("http://xml.org/sax/properties/declaration-handler", handler); - parser.parse(this.getClass().getResource("toys.xml").getFile(), handler); - } catch (ParserConfigurationException e) { - e.printStackTrace(); - Assert.fail("ParserConfigurationException in testParse02()"); - } catch (SAXException e) { - e.printStackTrace(); - Assert.fail("SAXException in testParse02()"); - } catch (IOException e) { - e.printStackTrace(); - Assert.fail("IOException in testParse02()"); - } + parser.parse(this.getClass().getResource("toys.xml").getFile(), handler); } @Test - public void testParse03() { - System.out.println("===in testParse03==="); - try { - DefaultHandler handler = new MyDefaultHandler2(); + public void testParse03() throws Exception { + DefaultHandler handler = new MyDefaultHandler2(); - XMLReader xmlReader = XMLReaderFactory.createXMLReader(); - xmlReader.setProperty("http://xml.org/sax/properties/declaration-handler", handler); - System.out.println("XMLReader : " + xmlReader.getProperty("http://xml.org/sax/properties/declaration-handler")); + XMLReader xmlReader = XMLReaderFactory.createXMLReader(); + xmlReader.setProperty("http://xml.org/sax/properties/declaration-handler", handler); + System.out.println("XMLReader : " + xmlReader.getProperty("http://xml.org/sax/properties/declaration-handler")); - SAXParserFactory saxFac = SAXParserFactory.newInstance(); - SAXParser parser = saxFac.newSAXParser(); - parser.setProperty("http://xml.org/sax/properties/declaration-handler", handler); - System.out.println("SAXParser : " + parser.getProperty("http://xml.org/sax/properties/declaration-handler")); - - // From https://docs.oracle.com/javase/7/docs/api, - // ParserAdapter.setProperty() and ParserAdapter.getProperty() does - // not support any property currently. - try { - ParserAdapter adapter = new ParserAdapter(parser.getParser()); - System.out.println("ParserAdapter : " + adapter.getProperty("http://xml.org/sax/properties/declaration-handler")); - } catch (SAXNotRecognizedException e) { - System.out.println("Expected SAXNotRecognizedException since ParserAdapter.getProperty() does not support any property currently"); - } - try { - ParserAdapter adapter = new ParserAdapter(parser.getParser()); - adapter.setProperty("http://xml.org/sax/properties/declaration-handler", handler); - } catch (SAXNotRecognizedException e) { - System.out.println("Expected SAXNotRecognizedException since ParserAdapter.setProperty() does not support any property currently"); - } - } catch (SAXException e) { - e.printStackTrace(); - Assert.fail("SAXException in testParse03()"); - } catch (ParserConfigurationException e) { - e.printStackTrace(); - Assert.fail("ParserConfigurationException in testParse03()"); - } + SAXParserFactory saxFac = SAXParserFactory.newInstance(); + SAXParser parser = saxFac.newSAXParser(); + parser.setProperty("http://xml.org/sax/properties/declaration-handler", handler); + System.out.println("SAXParser : " + parser.getProperty("http://xml.org/sax/properties/declaration-handler")); + // From https://docs.oracle.com/javase/7/docs/api, + // ParserAdapter.setProperty() and ParserAdapter.getProperty() does + // not support any property currently. + ParserAdapter adapter = new ParserAdapter(parser.getParser()); + assertThrows(SAXNotRecognizedException.class, () -> adapter.getProperty("http://xml.org/sax/properties/declaration-handler")); + assertThrows(SAXNotRecognizedException.class, () -> adapter.setProperty("http://xml.org/sax/properties/declaration-handler", handler)); } @Test - public void testParse04() { - System.out.println("===in testParse04==="); - try { - DefaultHandler handler = new MyDefaultHandler2(); - XMLReader xmlReader = XMLReaderFactory.createXMLReader(); - System.out.println(xmlReader.getFeature("http://xml.org/sax/features/namespaces")); - xmlReader.setProperty("http://xml.org/sax/properties/declaration-handler", handler); - xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", handler); - xmlReader.setContentHandler(handler); + public void testParse04() throws Exception { + DefaultHandler handler = new MyDefaultHandler2(); + XMLReader xmlReader = XMLReaderFactory.createXMLReader(); + System.out.println(xmlReader.getFeature("http://xml.org/sax/features/namespaces")); + xmlReader.setProperty("http://xml.org/sax/properties/declaration-handler", handler); + xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", handler); + xmlReader.setContentHandler(handler); - xmlReader.parse(this.getClass().getResource("toys.xml").getFile()); - - } catch (SAXException e) { - e.printStackTrace(); - Assert.fail("SAXException in testParse04()"); - } catch (IOException e) { - e.printStackTrace(); - Assert.fail("IOException in testParse04()"); - } + xmlReader.parse(this.getClass().getResource("toys.xml").getFile()); } @Test - public void testParse05() { - System.out.println("===in testParse05==="); - try { - DefaultHandler handler = new MyDefaultHandler2(); - XMLReader xmlReader = XMLReaderFactory.createXMLReader(); - XMLFilterImpl filterImpl = new XMLFilterImpl(xmlReader); - System.out.println(xmlReader.getFeature("http://xml.org/sax/features/namespaces")); - filterImpl.setProperty("http://xml.org/sax/properties/declaration-handler", handler); - filterImpl.setProperty("http://xml.org/sax/properties/lexical-handler", handler); - filterImpl.setContentHandler(handler); + public void testParse05() throws Exception { + DefaultHandler handler = new MyDefaultHandler2(); + XMLReader xmlReader = XMLReaderFactory.createXMLReader(); + XMLFilterImpl filterImpl = new XMLFilterImpl(xmlReader); + System.out.println(xmlReader.getFeature("http://xml.org/sax/features/namespaces")); + filterImpl.setProperty("http://xml.org/sax/properties/declaration-handler", handler); + filterImpl.setProperty("http://xml.org/sax/properties/lexical-handler", handler); + filterImpl.setContentHandler(handler); - filterImpl.parse(this.getClass().getResource("toys.xml").getFile()); - - } catch (SAXException e) { - e.printStackTrace(); - Assert.fail("SAXException in testParse05()"); - } catch (IOException e) { - e.printStackTrace(); - Assert.fail("IOException in testParse05()"); - } + filterImpl.parse(this.getClass().getResource("toys.xml").getFile()); } @Test - public void testParse06() { - System.out.println("===in testParse06==="); - try { - DefaultHandler handler = new MyDefaultHandler2(); - XMLReader xmlReader = XMLReaderFactory.createXMLReader(); - XMLFilterImpl filterImpl = new XMLFilterImpl(xmlReader); - System.out.println(xmlReader.getFeature("http://xml.org/sax/features/namespaces")); - filterImpl.setProperty("http://xml.org/sax/properties/declaration-handler", handler); - filterImpl.setProperty("http://xml.org/sax/properties/lexical-handler", handler); - filterImpl.setContentHandler(handler); + public void testParse06() throws Exception { + DefaultHandler handler = new MyDefaultHandler2(); + XMLReader xmlReader = XMLReaderFactory.createXMLReader(); + XMLFilterImpl filterImpl = new XMLFilterImpl(xmlReader); + System.out.println(xmlReader.getFeature("http://xml.org/sax/features/namespaces")); + filterImpl.setProperty("http://xml.org/sax/properties/declaration-handler", handler); + filterImpl.setProperty("http://xml.org/sax/properties/lexical-handler", handler); + filterImpl.setContentHandler(handler); - AssertJUnit.assertTrue(filterImpl.getProperty("http://xml.org/sax/properties/declaration-handler") instanceof DefaultHandler2); + assertInstanceOf(DefaultHandler2.class, filterImpl.getProperty("http://xml.org/sax/properties/declaration-handler")); - // filterImpl.setFeature("http://xml.org/sax/features/external-general-entities", - // false) ; - // filterImpl.setFeature("http://xml.org/sax/features/external-parameter-entities", - // false) ; - filterImpl.skippedEntity("name2"); + // filterImpl.setFeature("http://xml.org/sax/features/external-general-entities", + // false) ; + // filterImpl.setFeature("http://xml.org/sax/features/external-parameter-entities", + // false) ; + filterImpl.skippedEntity("name2"); - filterImpl.parse(this.getClass().getResource("toys.xml").getFile()); - } catch (SAXException e) { - e.printStackTrace(); - Assert.fail("SAXException in testParse06()"); - } catch (IOException e) { - e.printStackTrace(); - Assert.fail("IOException in testParse06()"); - } + filterImpl.parse(this.getClass().getResource("toys.xml").getFile()); } @Test - public void testParse07() { - System.out.println("===in testParse07==="); - try { - DefaultHandler handler = new MyDefaultHandler2(); - XMLReader xmlReader = XMLReaderFactory.createXMLReader(); - XMLFilterImpl filterImpl = new XMLFilterImpl(xmlReader); - System.out.println(xmlReader.getFeature("http://xml.org/sax/features/namespaces")); - filterImpl.setProperty("http://xml.org/sax/properties/declaration-handler", handler); - filterImpl.setProperty("http://xml.org/sax/properties/lexical-handler", handler); - filterImpl.setContentHandler(handler); - filterImpl.setErrorHandler(handler); - AssertJUnit.assertTrue(filterImpl.getProperty("http://xml.org/sax/properties/declaration-handler") instanceof DefaultHandler2); + public void testParse07() throws Exception { + DefaultHandler handler = new MyDefaultHandler2(); + XMLReader xmlReader = XMLReaderFactory.createXMLReader(); + XMLFilterImpl filterImpl = new XMLFilterImpl(xmlReader); + System.out.println(xmlReader.getFeature("http://xml.org/sax/features/namespaces")); + filterImpl.setProperty("http://xml.org/sax/properties/declaration-handler", handler); + filterImpl.setProperty("http://xml.org/sax/properties/lexical-handler", handler); + filterImpl.setContentHandler(handler); + filterImpl.setErrorHandler(handler); + assertInstanceOf(DefaultHandler2.class, filterImpl.getProperty("http://xml.org/sax/properties/declaration-handler")); - filterImpl.setFeature("http://apache.org/xml/features/continue-after-fatal-error", true); - filterImpl.parse(this.getClass().getResource("toys_error.xml").getFile()); - } catch (SAXException e) { - e.printStackTrace(); - Assert.fail("SAXException in testParse07()"); - } catch (IOException e) { - e.printStackTrace(); - Assert.fail("IOException in testParse07()"); - } + filterImpl.setFeature("http://apache.org/xml/features/continue-after-fatal-error", true); + filterImpl.parse(this.getClass().getResource("toys_error.xml").getFile()); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java b/test/jaxp/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java index bbec3104208..6588d787bfe 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,78 +23,50 @@ package sax; -import java.io.IOException; -import java.io.StringReader; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.Attributes; import org.xml.sax.ErrorHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.StringReader; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + /* * @test * @bug 6809409 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.IssueTracker56Test + * @run junit/othervm sax.IssueTracker56Test * @summary Test SAXException has Cause. */ public class IssueTracker56Test { @Test - public void testException() { - try { - SAXParserFactory spf = SAXParserFactory.newInstance(); - SAXParser parser = spf.newSAXParser(); - String xmlToParse = "Issue 56: SAXException does not do the exception chaining properly"; - InputSource source = new InputSource(new StringReader(xmlToParse)); - parser.parse(source, new MyHandler()); - } catch (SAXException ex) { - System.out.println(ex.getCause()); - if (ex.getCause() == null) - Assert.fail("failed chaining exception properly."); - // ex.printStackTrace(); //will not print out root cause without the - // fix - } catch (IOException ex) { - // shouldn't happen - } catch (ParserConfigurationException ex) { - // shouldn't happen - } + public void testException() throws Exception { + SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParser parser = spf.newSAXParser(); + String xmlToParse = "Issue 56: SAXException does not do the exception chaining properly"; + InputSource source = new InputSource(new StringReader(xmlToParse)); + + SAXException ex = assertThrows(SAXException.class, () -> parser.parse(source, new MyHandler())); + assertNotNull(ex.getCause(), "failed chaining exception properly."); } @Test public void testWorkAround() throws Exception { - try { - SAXParserFactory spf = SAXParserFactory.newInstance(); - SAXParser parser = spf.newSAXParser(); - String xmlToParse = "Issue 56: SAXException does not do the exception chaining properly"; - InputSource source = new InputSource(new StringReader(xmlToParse)); - parser.parse(source, new MyHandler1()); - } catch (SAXException ex) { - System.out.println(ex.getCause()); - // ex.printStackTrace(); //will print out root cause - } catch (IOException ex) { - // shouldn't happen - } catch (ParserConfigurationException ex) { - // shouldn't happen - } - + SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParser parser = spf.newSAXParser(); + String xmlToParse = "Issue 56: SAXException does not do the exception chaining properly"; + InputSource source = new InputSource(new StringReader(xmlToParse)); + assertThrows(SAXException.class, () -> parser.parse(source, new MyHandler1())); } - public class MyHandler extends DefaultHandler implements ErrorHandler { - - public void startDocument() throws SAXException { - } - - public void endDocument() throws SAXException { - } - + public static class MyHandler extends DefaultHandler implements ErrorHandler { public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { try { System.out.println(uri); @@ -104,23 +76,9 @@ public class IssueTracker56Test { } } - - public void endElement(String uri, String localName, String qName) throws SAXException { - } - - public void characters(char ch[], int start, int length) throws SAXException { - } - } - public class MyHandler1 extends DefaultHandler implements ErrorHandler { - - public void startDocument() throws SAXException { - } - - public void endDocument() throws SAXException { - } - + public static class MyHandler1 extends DefaultHandler implements ErrorHandler { public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXExceptionExt { try { System.out.println(uri); @@ -130,12 +88,5 @@ public class IssueTracker56Test { } } - - public void endElement(String uri, String localName, String qName) throws SAXException { - } - - public void characters(char ch[], int start, int length) throws SAXException { - } - } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/NSSupportTest.java b/test/jaxp/javax/xml/jaxp/unittest/sax/NSSupportTest.java index 7630d96a023..d4b05a0c366 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/NSSupportTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/NSSupportTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,17 +23,20 @@ package sax; +import org.junit.jupiter.api.Test; +import org.xml.sax.helpers.NamespaceSupport; + import java.util.Enumeration; -import org.testng.Assert; -import org.testng.AssertJUnit; -import org.testng.annotations.Test; -import org.xml.sax.helpers.NamespaceSupport; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; /* * @test * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.NSSupportTest + * @run junit/othervm sax.NSSupportTest * @summary Test NamespaceSupport. */ public class NSSupportTest { @@ -48,14 +51,14 @@ public class NSSupportTest { String[] parts = new String[3]; nssupport.processName("dc:name1", parts, false); - Assert.assertTrue(parts[0].equals("http://www.purl.org/dc")); - Assert.assertTrue(parts[1].equals("name1")); - Assert.assertTrue(parts[2].equals("dc:name1")); + assertEquals("http://www.purl.org/dc", parts[0]); + assertEquals("name1", parts[1]); + assertEquals("dc:name1", parts[2]); nssupport.processName("name2", parts, false); - Assert.assertTrue(parts[0].equals("http://www.java.com")); - Assert.assertTrue(parts[1].equals("name2")); - Assert.assertTrue(parts[2].equals("name2")); + assertEquals("http://www.java.com", parts[0]); + assertEquals("name2", parts[1]); + assertEquals("name2", parts[2]); } @Test @@ -64,30 +67,30 @@ public class NSSupportTest { NamespaceSupport nssupport = new NamespaceSupport(); nssupport.pushContext(); - Assert.assertFalse(nssupport.isNamespaceDeclUris()); + assertFalse(nssupport.isNamespaceDeclUris()); nssupport.declarePrefix("xmlns", ""); nssupport.processName("xmlns:name", parts, true); - Assert.assertNull(parts[0]); - Assert.assertNull(parts[1]); - Assert.assertNull(parts[2]); + assertNull(parts[0]); + assertNull(parts[1]); + assertNull(parts[2]); nssupport.reset(); nssupport.setNamespaceDeclUris(true); nssupport.declarePrefix("xmlns", ""); nssupport.processName("xmlns:name", parts, true); - Assert.assertTrue(parts[0].equals(NamespaceSupport.NSDECL)); - Assert.assertTrue(parts[1].equals("name")); - Assert.assertTrue(parts[2].equals("xmlns:name")); + assertEquals(NamespaceSupport.NSDECL, parts[0]); + assertEquals("name", parts[1]); + assertEquals("xmlns:name", parts[2]); nssupport.reset(); nssupport.setNamespaceDeclUris(true); nssupport.declarePrefix("xml", ""); nssupport.processName("xml:name", parts, true); - Assert.assertTrue(parts[0].equals(NamespaceSupport.XMLNS)); - Assert.assertTrue(parts[1].equals("name")); - Assert.assertTrue(parts[2].equals("xml:name")); + assertEquals(NamespaceSupport.XMLNS, parts[0]); + assertEquals("name", parts[1]); + assertEquals("xml:name", parts[2]); } @@ -98,14 +101,14 @@ public class NSSupportTest { nssupport.pushContext(); nssupport.declarePrefix("dc", "http://www.purl.org/dc"); - Assert.assertEquals(nssupport.getPrefix("http://www.purl.org/dc"), "dc"); + assertEquals("dc", nssupport.getPrefix("http://www.purl.org/dc")); nssupport.popContext(); - Assert.assertNull(nssupport.getPrefix("http://www.purl.org/dc")); + assertNull(nssupport.getPrefix("http://www.purl.org/dc")); nssupport.processName("dc:name1", parts, false); - Assert.assertNull(parts[0]); - Assert.assertNull(parts[1]); - Assert.assertNull(parts[2]); + assertNull(parts[0]); + assertNull(parts[1]); + assertNull(parts[2]); } @Test @@ -124,9 +127,9 @@ public class NSSupportTest { nssupport.declarePrefix("dc2", "http://www.purl.org/dc2"); nssupport.declarePrefix("dcnew", "http://www.purl.org/dcnew"); - Enumeration enu1 = nssupport.getDeclaredPrefixes(); + Enumeration enu1 = nssupport.getDeclaredPrefixes(); while (enu1.hasMoreElements()) { - String str = (String) enu1.nextElement(); + String str = enu1.nextElement(); if (str.equals("dc")) { hasdc = true; } else if (str.equals("dc1")) { @@ -137,8 +140,8 @@ public class NSSupportTest { hasdcnew = true; } } - AssertJUnit.assertTrue(hasdcnew && hasdc1 && hasdc2); - AssertJUnit.assertFalse(hasdc); + assertTrue(hasdcnew && hasdc1 && hasdc2); + assertFalse(hasdc); } @Test @@ -157,9 +160,9 @@ public class NSSupportTest { nssupport.declarePrefix("dc2", "http://www.purl.org/dc2"); nssupport.declarePrefix("dcnew", "http://www.purl.org/dcnew"); - Enumeration enu1 = nssupport.getPrefixes(); + Enumeration enu1 = nssupport.getPrefixes(); while (enu1.hasMoreElements()) { - String str = (String) enu1.nextElement(); + String str = enu1.nextElement(); if (str.equals("dc")) { hasdc = true; } else if (str.equals("dc1")) { @@ -170,7 +173,7 @@ public class NSSupportTest { hasdcnew = true; } } - AssertJUnit.assertTrue(hasdcnew && hasdc1 && hasdc2 && hasdc); + assertTrue(hasdcnew && hasdc1 && hasdc2 && hasdc); } @Test @@ -189,9 +192,9 @@ public class NSSupportTest { nssupport.declarePrefix("dc2", "http://www.purl.org/dc2"); nssupport.declarePrefix("dcnew", "http://www.purl.org/dcnew"); - Enumeration enu1 = nssupport.getPrefixes("http://www.purl.org/dc"); + Enumeration enu1 = nssupport.getPrefixes("http://www.purl.org/dc"); while (enu1.hasMoreElements()) { - String str = (String) enu1.nextElement(); + String str = enu1.nextElement(); if (str.equals("dc")) { hasdc = true; } else if (str.equals("dc1")) { @@ -202,9 +205,9 @@ public class NSSupportTest { hasdcnew = true; } } - AssertJUnit.assertTrue(hasdc1 && hasdc); - AssertJUnit.assertFalse(hasdc2); - AssertJUnit.assertFalse(hasdcnew); + assertTrue(hasdc1 && hasdc); + assertFalse(hasdc2); + assertFalse(hasdcnew); } @Test @@ -219,13 +222,13 @@ public class NSSupportTest { nssupport.declarePrefix("dc2", "http://www.purl.org/dc2"); nssupport.declarePrefix("dcnew", "http://www.purl.org/dcnew"); - AssertJUnit.assertTrue(nssupport.getURI("dc").equals("http://www.purl.org/dc")); - AssertJUnit.assertTrue(nssupport.getURI("dc1").equals("http://www.purl.org/dc")); - AssertJUnit.assertTrue(nssupport.getURI("dc2").equals("http://www.purl.org/dc2")); - AssertJUnit.assertTrue(nssupport.getURI("dcnew").equals("http://www.purl.org/dcnew")); + assertEquals("http://www.purl.org/dc", nssupport.getURI("dc")); + assertEquals("http://www.purl.org/dc", nssupport.getURI("dc1")); + assertEquals("http://www.purl.org/dc2", nssupport.getURI("dc2")); + assertEquals("http://www.purl.org/dcnew", nssupport.getURI("dcnew")); // Negative test - Assert.assertNull(nssupport.getURI("wrong_prefix")); - Assert.assertNull(nssupport.getURI("")); + assertNull(nssupport.getURI("wrong_prefix")); + assertNull(nssupport.getURI("")); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/SAXExceptionInitCause.java b/test/jaxp/javax/xml/jaxp/unittest/sax/SAXExceptionInitCause.java index 4e5307b42ec..ee028d74611 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/SAXExceptionInitCause.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/SAXExceptionInitCause.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,12 +27,15 @@ * @summary The initCause() incorrectly initialize the cause in * SAXException class when used with SAXException(String) * constructor. - * @run testng/othervm sax.SAXExceptionInitCause + * @run junit/othervm sax.SAXExceptionInitCause * @author aleksej.efimov@oracle.com */ package sax; +import org.junit.jupiter.api.Test; +import org.xml.sax.SAXException; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -40,9 +43,11 @@ import java.io.InvalidClassException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; -import org.testng.Assert; -import org.testng.annotations.Test; -import org.xml.sax.SAXException; +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.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; public class SAXExceptionInitCause { @@ -55,8 +60,8 @@ public class SAXExceptionInitCause { serialSAX = pickleException(noCauseException); deserializedException = unpickleException(serialSAX); - Assert.assertNull(deserializedException.getCause()); - Assert.assertEquals(deserializedException.getMessage(), SAX_MESSAGE); + assertNull(deserializedException.getCause()); + assertEquals(SAX_MESSAGE, deserializedException.getMessage()); } @Test @@ -69,18 +74,18 @@ public class SAXExceptionInitCause { serialSAX = pickleException(withCauseException); deserializedException = unpickleException(serialSAX); - Assert.assertNotNull(deserializedException.getCause()); - Assert.assertEquals(deserializedException.getMessage(), SAX_MESSAGE); - Assert.assertEquals(deserializedException.getCause().getMessage(), SAX_CAUSE_MESSAGE); + assertNotNull(deserializedException.getCause()); + assertEquals(SAX_MESSAGE, deserializedException.getMessage()); + assertEquals(SAX_CAUSE_MESSAGE, deserializedException.getCause().getMessage()); } @Test - public void testCauseInitByCtor() throws Exception { + public void testCauseInitByCtor() { // Check that constructor properly initializes cause Exception cause = new Exception(SAX_CAUSE_MESSAGE); SAXException exception = new SAXException(cause); - Assert.assertSame(exception.getCause(), cause); - Assert.assertSame(exception.getException(), cause); + assertSame(cause, exception.getCause()); + assertSame(cause, exception.getException()); } @Test @@ -89,8 +94,8 @@ public class SAXExceptionInitCause { SAXException exception = new SAXException(); Exception cause = new Exception(SAX_CAUSE_MESSAGE); exception.initCause(cause); - Assert.assertSame(exception.getCause(), cause); - Assert.assertSame(exception.getException(), cause); + assertSame(cause, exception.getCause()); + assertSame(cause, exception.getException()); } @Test @@ -100,48 +105,51 @@ public class SAXExceptionInitCause { SAXException exception = new SAXException(); Throwable cause = new Throwable(SAX_CAUSE_MESSAGE); exception.initCause(cause); - Assert.assertSame(exception.getCause(),cause); - Assert.assertNull(exception.getException()); + assertSame(cause, exception.getCause()); + assertNull(exception.getException()); } - @Test(expectedExceptions = IllegalStateException.class) + @Test public void testInitCauseTwice() { SAXException exception = new SAXException(new Exception(SAX_CAUSE_MESSAGE)); - // Expecting IllegalStateException at this point - exception.initCause(new Exception(SAX_CAUSE_MESSAGE)); + assertThrows( + IllegalStateException.class, + () -> exception.initCause(new Exception(SAX_CAUSE_MESSAGE))); } @Test public void testLegacySerialCtor() throws Exception { SAXException saxException8 = unpickleException(JDK8_SET_WITH_CTOR_ONLY); - Assert.assertNotNull(saxException8.getCause()); - Assert.assertNotNull(saxException8.getException()); + assertNotNull(saxException8.getCause()); + assertNotNull(saxException8.getException()); } @Test public void testLegacySerialCtorAndInit() throws Exception { SAXException saxException8 = unpickleException(JDK8_SET_WITH_CTOR_AND_INIT); - Assert.assertNotNull(saxException8.getCause()); - Assert.assertNotNull(saxException8.getException()); + assertNotNull(saxException8.getCause()); + assertNotNull(saxException8.getException()); } @Test public void testLegacySerialInitCause() throws Exception { SAXException saxException8 = unpickleException(JDK8_WITH_INIT_ONLY); - Assert.assertNotNull(saxException8.getCause()); - Assert.assertNotNull(saxException8.getException()); + assertNotNull(saxException8.getCause()); + assertNotNull(saxException8.getException()); } @Test public void testLegacySerialNothingSet() throws Exception { SAXException saxException8 = unpickleException(JDK8_NOTHING_SET); - Assert.assertNull(saxException8.getCause()); - Assert.assertNull(saxException8.getException()); + assertNull(saxException8.getCause()); + assertNull(saxException8.getException()); } - @Test(expectedExceptions = InvalidClassException.class) - public void testReadObjectIllegalStateException() throws Exception { - SAXException saxException8 = unpickleException(JDK8_CHECK_ILLEGAL_STATE_EXCEPTION); + @Test + public void testReadObjectIllegalStateException() { + assertThrows( + InvalidClassException.class, + () -> unpickleException(JDK8_CHECK_ILLEGAL_STATE_EXCEPTION)); } // Serialize SAXException to byte array @@ -164,8 +172,8 @@ public class SAXExceptionInitCause { return saxException; } - private static String SAX_MESSAGE = "SAXException message"; - private static String SAX_CAUSE_MESSAGE = "SAXException cause message"; + private static final String SAX_MESSAGE = "SAXException message"; + private static final String SAX_CAUSE_MESSAGE = "SAXException cause message"; /* This is a serial form of ordinary SAXException serialized * by the following JDK8 code: diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/SAXParserTest.java b/test/jaxp/javax/xml/jaxp/unittest/sax/SAXParserTest.java index 708ae2178b0..ee7e81df5fb 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/SAXParserTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/SAXParserTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,24 +23,25 @@ package sax; -import static jaxp.library.JAXPTestUtilities.getSystemProperty; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +import static org.junit.jupiter.api.Assertions.assertThrows; + /* * @test * @bug 8213734 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng sax.SAXParserTest - * @summary Tests functionalities for SAXParser. + * @run junit sax.SAXParserTest + * @summary Tests that failed parsing closes the file correctly. */ public class SAXParserTest { @@ -51,35 +52,24 @@ public class SAXParserTest { */ @Test public void testCloseReaders() throws Exception { - if (!getSystemProperty("os.name").contains("Windows")) { - System.out.println("This test only needs to be run on Windows."); - return; - } - Path testFile = createTestFile(null, "Test"); + Path testFile = createTestFile("Test"); System.out.println("Test file: " + testFile.toString()); SAXParserFactory factory = SAXParserFactory.newDefaultInstance(); SAXParser parser = factory.newSAXParser(); - try { - parser.parse(testFile.toFile(), new DefaultHandler() { - @Override - public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { - throw new SAXException("Stop the parser."); - } - }); - } catch (SAXException e) { - // Do nothing - } - - // deletion failes on Windows when the file is not closed - Files.deleteIfExists(testFile); + DefaultHandler explodingHandler = new DefaultHandler() { + @Override + public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { + throw new SAXException("Stop the parser."); + } + }; + assertThrows(SAXException.class, () -> parser.parse(testFile.toFile(), explodingHandler)); + // Deletion would fail on Windows if the file was not closed. + Files.delete(testFile); } - private static Path createTestFile(Path dir, String name) throws IOException { + private static Path createTestFile(String name) throws IOException { Path path = Files.createTempFile(name, ".xml"); - byte[] bytes = "" - .getBytes(StandardCharsets.UTF_8); - - Files.write(path, bytes); + Files.writeString(path, ""); return path; } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/SymbolTableResetTest.java b/test/jaxp/javax/xml/jaxp/unittest/sax/SymbolTableResetTest.java index ff961e8e9e2..6a934aed291 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/SymbolTableResetTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/SymbolTableResetTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,20 +23,23 @@ package sax; -import java.io.StringReader; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.InputSource; import org.xml.sax.helpers.DefaultHandler; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.StringReader; + +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertSame; + /* * @test * @bug 8173390 8176168 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm -Djdk.xml.resetSymbolTable=false sax.SymbolTableResetTest - * @run testng/othervm -Djdk.xml.resetSymbolTable=true sax.SymbolTableResetTest + * @run junit/othervm -Djdk.xml.resetSymbolTable=false sax.SymbolTableResetTest + * @run junit/othervm -Djdk.xml.resetSymbolTable=true sax.SymbolTableResetTest * @summary Test that SAXParser reallocates symbol table during * subsequent parse operations */ @@ -115,9 +118,9 @@ public class SymbolTableResetTest { // Check symbol table references after two subsequent parse operations if (resetExpected) { - Assert.assertNotSame(symTable1, symTable2, "Symbol table references"); + assertNotSame(symTable1, symTable2, "Symbol table references"); } else { - Assert.assertSame(symTable1, symTable2, "Symbol table references"); + assertSame(symTable1, symTable2, "Symbol table references"); } } diff --git a/test/jaxp/javax/xml/jaxp/unittest/sax/XMLReaderTest.java b/test/jaxp/javax/xml/jaxp/unittest/sax/XMLReaderTest.java index ae235f32549..d625f835a52 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sax/XMLReaderTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sax/XMLReaderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,36 +23,26 @@ package sax; -import static jaxp.library.JAXPTestUtilities.clearSystemProperty; -import static jaxp.library.JAXPTestUtilities.setSystemProperty; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParserFactory; - -import org.testng.annotations.AfterClass; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.XMLReaderAdapter; import org.xml.sax.helpers.XMLReaderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParserFactory; + +import static org.junit.jupiter.api.Assertions.assertThrows; + /* * @test * @bug 8158246 8316383 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sax.XMLReaderTest + * @run junit/othervm sax.XMLReaderTest * @summary This class contains tests that cover the creation of XMLReader. */ public class XMLReaderTest { - private final String SAX_PROPNAME = "org.xml.sax.driver"; - - /* - * Clean up after test - */ - @AfterClass - public void cleanUp() throws Exception { - clearSystemProperty(SAX_PROPNAME); - } + private static final String SAX_PROPNAME = "org.xml.sax.driver"; /* * @bug 8158246 @@ -61,12 +51,16 @@ public class XMLReaderTest { * * Except test format, this test is the same as JCK's test Ctor003. */ - @Test(expectedExceptions = SAXException.class) + @Test public void testcreateXMLReader() throws SAXException, ParserConfigurationException { String className = SAXParserFactory.newInstance().newSAXParser() - .getXMLReader().getClass().getName(); - setSystemProperty(SAX_PROPNAME, className + "nosuch"); - XMLReaderAdapter adapter = new XMLReaderAdapter(); + .getXMLReader().getClass().getName(); + System.setProperty(SAX_PROPNAME, className + "nosuch"); + try { + assertThrows(SAXException.class, XMLReaderAdapter::new); + } finally { + System.clearProperty(SAX_PROPNAME); + } } /* diff --git a/test/jaxp/javax/xml/jaxp/unittest/sbd/test/ExternalRefTest.java b/test/jaxp/javax/xml/jaxp/unittest/sbd/test/ExternalRefTest.java index 0b9daed0d83..273278f23e5 100644 --- a/test/jaxp/javax/xml/jaxp/unittest/sbd/test/ExternalRefTest.java +++ b/test/jaxp/javax/xml/jaxp/unittest/sbd/test/ExternalRefTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2024, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,19 +22,21 @@ */ package sbd.test; -import java.io.File; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.SAXParseException; import org.xml.sax.helpers.DefaultHandler; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.File; + +import static org.junit.jupiter.api.Assertions.assertThrows; + /* * @test * @bug 8326915 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest - * @run testng/othervm sbd.test.ExternalRefTest + * @run junit/othervm sbd.test.ExternalRefTest * @summary Part of the Secure-By-Default (SBD) project. This test verifies issues * and error message improvements related to external references. */ @@ -43,11 +45,10 @@ public class ExternalRefTest { * @bug 8326915 * Verifies that SAXParseException rather than NPE is thrown when a validating * parser is restricted from processing external references. - * @throws Exception if the test fails */ @Test - public void testValidatingParser() throws Exception { - Assert.assertThrows(SAXParseException.class, () -> validateWithParser()); + public void testValidatingParser() { + assertThrows(SAXParseException.class, this::validateWithParser); } private void validateWithParser() throws Exception {