This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 71d082b9fbecee68f0a10a89d9e7095d13823401 Author: Andrus Adamchik <[email protected]> AuthorDate: Sun May 10 09:23:18 2026 -0400 JUnit 5 converstion of "cayenne-project" --- .../project/DataChannelProjectSaverTest.java | 32 ++++----- .../cayenne/project/FileProjectSaverTest.java | 38 +++++----- .../apache/cayenne/project/unit/Project2Case.java | 81 ---------------------- .../project/upgrade/DefaultUpgradeServiceTest.java | 48 ++++++------- .../upgrade/handlers/UpgradeHandler_V10Test.java | 2 +- 5 files changed, 56 insertions(+), 145 deletions(-) diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/DataChannelProjectSaverTest.java b/cayenne-project/src/test/java/org/apache/cayenne/project/DataChannelProjectSaverTest.java index 500230559..b5e082672 100644 --- a/cayenne-project/src/test/java/org/apache/cayenne/project/DataChannelProjectSaverTest.java +++ b/cayenne-project/src/test/java/org/apache/cayenne/project/DataChannelProjectSaverTest.java @@ -38,10 +38,10 @@ import org.apache.cayenne.di.Module; import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory; import org.apache.cayenne.di.spi.DefaultClassLoaderManager; import org.apache.cayenne.project.extension.ProjectExtension; -import org.apache.cayenne.project.unit.Project2Case; import org.apache.cayenne.resource.Resource; import org.apache.cayenne.resource.URLResource; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.xml.sax.XMLReader; import java.io.File; @@ -51,7 +51,10 @@ import java.util.Collections; import static org.junit.jupiter.api.Assertions.*; -public class DataChannelProjectSaverTest extends Project2Case { +public class DataChannelProjectSaverTest { + + @TempDir + public File tempDir; @Test public void saveAs() throws Exception { @@ -82,19 +85,17 @@ public class DataChannelProjectSaverTest extends Project2Case { Resource source = new URLResource(url); Project project = injector.getInstance(ProjectLoader.class).loadProject(source); - File outFile = setupTestDirectory("testSave"); - - saver.saveAs(project, new URLResource(outFile.toURI().toURL())); + saver.saveAs(project, new URLResource(tempDir.toURI().toURL())); - File rootFile = new File(outFile, "cayenne-PROJECT2.xml"); + File rootFile = new File(tempDir, "cayenne-PROJECT2.xml"); assertTrue(rootFile.exists()); assertTrue(rootFile.length() > 0); - File map1File = new File(outFile, "testProjectMap2_1.map.xml"); + File map1File = new File(tempDir, "testProjectMap2_1.map.xml"); assertTrue(map1File.exists()); assertTrue(map1File.length() > 0); - File map2File = new File(outFile, "testProjectMap2_2.map.xml"); + File map2File = new File(tempDir, "testProjectMap2_2.map.xml"); assertTrue(map2File.exists()); assertTrue(map2File.length() > 0); } @@ -133,19 +134,12 @@ public class DataChannelProjectSaverTest extends Project2Case { Resource source = new URLResource(url); Project project = injector.getInstance(ProjectLoader.class).loadProject(source); - File outFile = setupTestDirectory("testSaveAs_RecoverFromSaveError"); - assertEquals(0, outFile.list().length); - - try { - saver.saveAs(project, new URLResource(outFile.toURI().toURL())); - fail("No exception was thrown.."); - } - catch (CayenneRuntimeException e) { - // expected + assertEquals(0, tempDir.list().length); - assertEquals(0, outFile.list().length); - } + assertThrows(CayenneRuntimeException.class, + () -> saver.saveAs(project, new URLResource(tempDir.toURI().toURL()))); + assertEquals(0, tempDir.list().length); } } diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/FileProjectSaverTest.java b/cayenne-project/src/test/java/org/apache/cayenne/project/FileProjectSaverTest.java index 3145a1dfd..37fb24a4b 100644 --- a/cayenne-project/src/test/java/org/apache/cayenne/project/FileProjectSaverTest.java +++ b/cayenne-project/src/test/java/org/apache/cayenne/project/FileProjectSaverTest.java @@ -28,13 +28,14 @@ import org.apache.cayenne.di.Injector; import org.apache.cayenne.di.Module; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.project.extension.ProjectExtension; -import org.apache.cayenne.project.unit.Project2Case; import org.apache.cayenne.resource.URLResource; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.w3c.dom.Document; import org.w3c.dom.NodeList; +import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; @@ -46,7 +47,10 @@ import java.util.Collections; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class FileProjectSaverTest extends Project2Case { +public class FileProjectSaverTest { + + @TempDir + public File tempDir; private FileProjectSaver saver; @@ -64,13 +68,10 @@ public class FileProjectSaverTest extends Project2Case { @Test public void saveAs_Sorted() throws Exception { - File testFolder = setupTestDirectory("testSaveAs_Sorted"); - DataChannelDescriptor rootNode = new DataChannelDescriptor(); rootNode.setName("test"); - // add maps and nodes in reverse alpha order. Check that they are saved in alpha - // order + // add maps and nodes in reverse alpha order. Check that they are saved in alpha order rootNode.getDataMaps().add(new DataMap("C")); rootNode.getDataMaps().add(new DataMap("B")); rootNode.getDataMaps().add(new DataMap("A")); @@ -86,18 +87,19 @@ public class FileProjectSaverTest extends Project2Case { rootNode.getNodeDescriptors().addAll(Arrays.asList(nodes)); - Project project = new Project(new ConfigurationTree<DataChannelDescriptor>( - rootNode)); + Project project = new Project(new ConfigurationTree<DataChannelDescriptor>(rootNode)); - saver.saveAs(project, new URLResource(testFolder.toURI().toURL())); + saver.saveAs(project, new URLResource(tempDir.toURI().toURL())); - File target = new File(testFolder, "cayenne-test.xml"); + File target = new File(tempDir, "cayenne-test.xml"); assertTrue(target.isFile()); assertSaveAs_Sorted(target); } private void assertSaveAs_Sorted(File file) throws Exception { - Document document = toDOMTree(file); + Document document = DocumentBuilderFactory.newInstance() + .newDocumentBuilder() + .parse(file); XPath xpath = XPathFactory.newInstance().newXPath(); assertEquals("", xpath.evaluate("/domain/@name", document)); @@ -131,28 +133,26 @@ public class FileProjectSaverTest extends Project2Case { assertEquals("A", xpath.evaluate("@name", mapRefs.item(0))); assertEquals("B", xpath.evaluate("@name", mapRefs.item(1))); assertEquals("C", xpath.evaluate("@name", mapRefs.item(2))); - } /** - * Method test fix for CAY-1780. If specify related fragments (for example ./../) - * in target file path then file must be created successfully. - * - * @throws Exception + * Regression test for CAY-1780: relative fragments (e.g. ./../) in target + * file path must be resolved correctly. */ @Test public void saveForProjectFileWithRelatedPaths() throws Exception { - File testFolder = setupTestDirectory("testSaveForProjectFileWithRelatedPaths"); + File subDir = new File(tempDir, "sub"); + subDir.mkdirs(); - String mapFilePath = testFolder.toURI() + "../test.map.xml"; String mapFileName = "test"; + String mapFilePath = subDir.toURI() + "../" + mapFileName + ".map.xml"; DataMap testDataMap = new DataMap(mapFileName); testDataMap.setConfigurationSource(new URLResource(new URL(mapFilePath))); Project project = new Project(new ConfigurationTree<DataMap>(testDataMap)); saver.save(project); - File target = new File(testFolder.getParentFile(), mapFileName + ".map.xml"); + File target = new File(tempDir, mapFileName + ".map.xml"); assertTrue(target.isFile()); } diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/unit/Project2Case.java b/cayenne-project/src/test/java/org/apache/cayenne/project/unit/Project2Case.java deleted file mode 100644 index 41ed63297..000000000 --- a/cayenne-project/src/test/java/org/apache/cayenne/project/unit/Project2Case.java +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - ****************************************************************/ -package org.apache.cayenne.project.unit; - -import org.apache.cayenne.CayenneRuntimeException; -import org.apache.cayenne.test.file.FileUtil; -import org.w3c.dom.Document; -import org.xml.sax.SAXException; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import java.io.File; -import java.io.IOException; - -import static org.junit.jupiter.api.Assertions.fail; - -public class Project2Case { - - /** - * A helper method returning the contents of an XML source as a DOM Document. - */ - protected Document toDOMTree(File file) { - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - DocumentBuilder domParser; - try { - domParser = dbf.newDocumentBuilder(); - } - catch (ParserConfigurationException e) { - fail("ParserConfigurationException: " + e.getMessage()); - throw new RuntimeException(); - } - - try { - return domParser.parse(file); - } - catch (Exception e) { - fail("DOM parsing exception: " + e.getMessage()); - throw new RuntimeException(); - } - } - - protected File setupTestDirectory(String subfolder) { - String classPath = getClass().getName().replace('.', '/'); - String location = "target/testrun/" + classPath + "/" + subfolder; - File testDirectory = new File(location); - - // delete old tests - if (testDirectory.exists()) { - if (!FileUtil.delete(location, true)) { - throw new CayenneRuntimeException( - "Error deleting test directory '%s'", - location); - } - } - - if (!testDirectory.mkdirs()) { - throw new CayenneRuntimeException( - "Error creating test directory '%s'", - location); - } - - return testDirectory; - } -} diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/DefaultUpgradeServiceTest.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/DefaultUpgradeServiceTest.java index 78a32172f..f41bce648 100644 --- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/DefaultUpgradeServiceTest.java +++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/DefaultUpgradeServiceTest.java @@ -25,6 +25,8 @@ import org.apache.cayenne.resource.URLResource; import org.apache.cayenne.util.Util; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; import org.mockito.ArgumentMatchers; import org.w3c.dom.Document; import org.xml.sax.InputSource; @@ -56,25 +58,18 @@ public class DefaultUpgradeServiceTest { upgradeService = new DefaultUpgradeService(handlers); } - @Test - public void getUpgradeType() { - UpgradeMetaData metaData = upgradeService.getUpgradeType(getResourceForVersion("5")); - assertEquals(UpgradeType.INTERMEDIATE_UPGRADE_NEEDED, metaData.getUpgradeType()); - - metaData = upgradeService.getUpgradeType(getResourceForVersion("6")); - assertEquals(UpgradeType.UPGRADE_NEEDED, metaData.getUpgradeType()); - - metaData = upgradeService.getUpgradeType(getResourceForVersion("10")); - assertEquals(UpgradeType.UPGRADE_NEEDED, metaData.getUpgradeType()); - - metaData = upgradeService.getUpgradeType(getResourceForVersion("11")); - assertEquals(UpgradeType.UPGRADE_NEEDED, metaData.getUpgradeType()); - - metaData = upgradeService.getUpgradeType(getResourceForVersion("12")); - assertEquals(UpgradeType.UPGRADE_NOT_NEEDED, metaData.getUpgradeType()); - - metaData = upgradeService.getUpgradeType(getResourceForVersion("13")); - assertEquals(UpgradeType.DOWNGRADE_NEEDED, metaData.getUpgradeType()); + @ParameterizedTest + @CsvSource({ + "5, INTERMEDIATE_UPGRADE_NEEDED", + "6, UPGRADE_NEEDED", + "10, UPGRADE_NEEDED", + "11, UPGRADE_NEEDED", + "12, UPGRADE_NOT_NEEDED", + "13, DOWNGRADE_NEEDED" + }) + public void getUpgradeType(String version, UpgradeType expectedType) { + UpgradeMetaData metaData = upgradeService.getUpgradeType(getResourceForVersion(version)); + assertEquals(expectedType, metaData.getUpgradeType()); } @Test @@ -108,11 +103,14 @@ public class DefaultUpgradeServiceTest { assertEquals("10", upgradeService.loadProjectVersion(getResourceForVersion("10"))); } - @Test - public void decodeVersion() { - assertEquals(1.2340, DefaultUpgradeService.decodeVersion("1.2.3.4"), 0.000001); - assertEquals(1.0004, DefaultUpgradeService.decodeVersion("1.0.0.0.4"), 0.000001); - assertEquals(10, DefaultUpgradeService.decodeVersion("10"), 0.000001); + @ParameterizedTest + @CsvSource({ + "1.2.3.4, 1.234", + "1.0.0.0.4, 1.0004", + "10, 10.0" + }) + public void decodeVersion(String version, double expected) { + assertEquals(expected, DefaultUpgradeService.decodeVersion(version), 0.000001); } @Test @@ -168,4 +166,4 @@ public class DefaultUpgradeServiceTest { return new URLResource(getClass().getResource("handlers/cayenne-project-v"+version+".xml")); } -} \ No newline at end of file +} diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V10Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V10Test.java index 50f7d7119..d38682921 100644 --- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V10Test.java +++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V10Test.java @@ -28,7 +28,7 @@ import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verifyNoInteractions; -public class UpgradeHandler_V10Test extends BaseUpgradeHandlerTest{ +public class UpgradeHandler_V10Test extends BaseUpgradeHandlerTest { UpgradeHandler newHandler() { return new UpgradeHandler_V10();
