diff --git a/src/main/java/org/dbunit/ant/Export.java b/src/main/java/org/dbunit/ant/Export.java
index 1588716b6..1459000dd 100644
--- a/src/main/java/org/dbunit/ant/Export.java
+++ b/src/main/java/org/dbunit/ant/Export.java
@@ -22,9 +22,9 @@
package org.dbunit.ant;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.file.Files;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.sql.SQLException;
@@ -256,7 +256,7 @@ public void execute(IDatabaseConnection connection) throws DatabaseUnitException
}
else
{
- OutputStream out = new FileOutputStream(_dest);
+ OutputStream out = Files.newOutputStream(_dest.toPath());
try
{
if (_format.equalsIgnoreCase(FORMAT_FLAT))
diff --git a/src/main/java/org/dbunit/ant/Operation.java b/src/main/java/org/dbunit/ant/Operation.java
index 9437db232..01bcfe614 100644
--- a/src/main/java/org/dbunit/ant/Operation.java
+++ b/src/main/java/org/dbunit/ant/Operation.java
@@ -113,7 +113,7 @@ public void addConfiguredFileset(FileSet fileSet)
{
DirectoryScanner scanner = fileSet.getDirectoryScanner(getProject());
for (String file : scanner.getIncludedFiles()) {
- _sources.add(new File(scanner.getBasedir(), file));
+ _sources.add(scanner.getBasedir().toPath().resolve(file).toFile());
}
}
diff --git a/src/main/java/org/dbunit/database/DatabaseTableMetaData.java b/src/main/java/org/dbunit/database/DatabaseTableMetaData.java
index ba77cc8dd..5100460f1 100644
--- a/src/main/java/org/dbunit/database/DatabaseTableMetaData.java
+++ b/src/main/java/org/dbunit/database/DatabaseTableMetaData.java
@@ -27,7 +27,7 @@
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import org.dbunit.dataset.AbstractTableMetaData;
@@ -238,7 +238,7 @@ private String[] getPrimaryKeyNames() throws SQLException
resultSet.close();
}
- Collections.sort(list);
+ list.sort(Comparator.naturalOrder());
String[] keys = new String[list.size()];
for (int i = 0; i < keys.length; i++)
{
diff --git a/src/main/java/org/dbunit/database/statement/BatchStatementDecorator.java b/src/main/java/org/dbunit/database/statement/BatchStatementDecorator.java
index e2e00204c..9ee9745e1 100644
--- a/src/main/java/org/dbunit/database/statement/BatchStatementDecorator.java
+++ b/src/main/java/org/dbunit/database/statement/BatchStatementDecorator.java
@@ -29,9 +29,6 @@
import org.dbunit.dataset.datatype.TypeCastException;
import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
/**
* Decorator that adapts a plain {@link IBatchStatement} to the {@link IPreparedBatchStatement}
@@ -57,19 +54,7 @@ public class BatchStatementDecorator implements IPreparedBatchStatement
BatchStatementDecorator(String sql, IBatchStatement statement)
{
- List list = new ArrayList();
- StringTokenizer tokenizer = new StringTokenizer(sql, "?");
- while (tokenizer.hasMoreTokens())
- {
- list.add(tokenizer.nextToken());
- }
-
- if (sql.endsWith("?"))
- {
- list.add("");
- }
-
- _sqlTemplate = (String[])list.toArray(new String[0]);
+ _sqlTemplate = sql.split("\\?", -1);
_statement = statement;
// reset sql buffer
diff --git a/src/main/java/org/dbunit/dataset/DataSetUtils.java b/src/main/java/org/dbunit/dataset/DataSetUtils.java
index 710857f3c..4b856e4a3 100644
--- a/src/main/java/org/dbunit/dataset/DataSetUtils.java
+++ b/src/main/java/org/dbunit/dataset/DataSetUtils.java
@@ -23,7 +23,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.StringTokenizer;
import org.dbunit.Assertion;
import org.dbunit.dataset.datatype.DataType;
@@ -187,22 +186,7 @@ public static String getSqlValueString(Object value, DataType dataType)
}
// escaping single quotes
- final StringBuilder buffer = new StringBuilder(stringValue.length() * 2);
- StringTokenizer tokenizer = new StringTokenizer(stringValue, "'", true);
-
- buffer.append("'");
- while (tokenizer.hasMoreTokens())
- {
- String token = tokenizer.nextToken();
- buffer.append(token);
- if (token.equals("'"))
- {
- buffer.append("'");
- }
- }
- buffer.append("'");
- return buffer.toString();
-
+ return "'" + stringValue.replace("'", "''") + "'";
}
return stringValue;
diff --git a/src/main/java/org/dbunit/dataset/csv/CsvDataSetWriter.java b/src/main/java/org/dbunit/dataset/csv/CsvDataSetWriter.java
index 4c4da8f7d..67cf9e819 100644
--- a/src/main/java/org/dbunit/dataset/csv/CsvDataSetWriter.java
+++ b/src/main/java/org/dbunit/dataset/csv/CsvDataSetWriter.java
@@ -23,12 +23,13 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -106,26 +107,34 @@ public void write(IDataSet dataSet) throws DataSetException {
provider.produce();
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public void startDataSet() throws DataSetException {
logger.debug("startDataSet() - start");
try {
tableList = new LinkedList();
- new File(getTheDirectory()).mkdirs();
+ Paths.get(getTheDirectory()).toFile().mkdirs();
} catch (Exception e) {
throw new DataSetException("Error while creating the destination directory '" + getTheDirectory() + "'", e);
}
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public void endDataSet() throws DataSetException {
logger.debug("endDataSet() - start");
// write out table ordering file
- File orderingFile = new File(getTheDirectory(), CsvDataSet.TABLE_ORDERING_FILE);
-
+ File orderingFile = Paths.get(getTheDirectory(), CsvDataSet.TABLE_ORDERING_FILE).toFile();
+
PrintWriter pw = null;
try {
- pw = new PrintWriter(new FileWriter(orderingFile));
+ pw = new PrintWriter(Files.newBufferedWriter(orderingFile.toPath(), StandardCharsets.UTF_8));
for (Iterator fileNames = tableList.iterator(); fileNames.hasNext();) {
String file = (String) fileNames.next();
pw.println(file);
@@ -141,13 +150,17 @@ public void endDataSet() throws DataSetException {
}
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public void startTable(ITableMetaData metaData) throws DataSetException {
logger.debug("startTable(metaData={}) - start", metaData);
try {
_activeMetaData = metaData;
String tableName = _activeMetaData.getTableName();
- setWriter(new BufferedWriter(new FileWriter(getTheDirectory() + File.separator + tableName + ".csv")));
+ setWriter(Files.newBufferedWriter(Paths.get(getTheDirectory(), tableName + ".csv"), StandardCharsets.UTF_8));
writeColumnNames();
getWriter().write(System.getProperty("line.separator"));
} catch (IOException e) {
diff --git a/src/main/java/org/dbunit/dataset/csv/CsvParserImpl.java b/src/main/java/org/dbunit/dataset/csv/CsvParserImpl.java
index bfb09645d..db7b4767c 100644
--- a/src/main/java/org/dbunit/dataset/csv/CsvParserImpl.java
+++ b/src/main/java/org/dbunit/dataset/csv/CsvParserImpl.java
@@ -23,9 +23,10 @@
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.io.LineNumberReader;
import java.io.Reader;
import java.net.URL;
@@ -100,7 +101,8 @@ public List parse(String csv) throws PipelineException, IllegalInputCharacterExc
public List parse(File file) throws IOException, CsvParserException {
logger.debug("parse(file={}) - start", file);
- BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(Files.newInputStream(file.toPath()), StandardCharsets.UTF_8));
try {
return parse(reader, file.getAbsolutePath().toString());
}
@@ -112,7 +114,8 @@ public List parse(File file) throws IOException, CsvParserException {
public List parse(URL url) throws IOException, CsvParserException {
logger.debug("parse(url={}) - start", url);
- BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));
try {
return parse(reader, url.toString());
}
diff --git a/src/main/java/org/dbunit/dataset/csv/CsvProducer.java b/src/main/java/org/dbunit/dataset/csv/CsvProducer.java
index 69ffb475d..97128396f 100644
--- a/src/main/java/org/dbunit/dataset/csv/CsvProducer.java
+++ b/src/main/java/org/dbunit/dataset/csv/CsvProducer.java
@@ -26,7 +26,12 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.InvalidPathException;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -87,10 +92,19 @@ public void setConsumer(IDataSetConsumer consumer) throws DataSetException {
_consumer = consumer;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public void produce() throws DataSetException {
logger.debug("produce() - start");
- File dir = new File(_theDirectory);
+ File dir;
+ try {
+ dir = Paths.get(_theDirectory).toFile();
+ } catch (final InvalidPathException e) {
+ throw new DataSetException("'" + _theDirectory + "' should be a directory", e);
+ }
if (!dir.isDirectory()) {
throw new DataSetException("'" + _theDirectory + "' should be a directory");
@@ -98,11 +112,11 @@ public void produce() throws DataSetException {
_consumer.startDataSet();
try {
- List tableSpecs = CsvProducer.getTables(dir.toURL(), CsvDataSet.TABLE_ORDERING_FILE);
+ List tableSpecs = CsvProducer.getTables(dir.toURI().toURL(), CsvDataSet.TABLE_ORDERING_FILE);
for (Iterator tableIter = tableSpecs.iterator(); tableIter.hasNext();) {
String table = (String) tableIter.next();
try {
- produceFromFile(new File(dir, table + ".csv"));
+ produceFromFile(dir.toPath().resolve(table + ".csv").toFile());
} catch (CsvParserException e) {
throw new DataSetException("error producing dataset for table '" + table + "'", e);
} catch (DataSetException e) {
@@ -169,10 +183,10 @@ public static List getTables(URL base, String tableList) throws IOException {
logger.debug("getTables(base={}, tableList={}) - start", base, tableList);
List orderedNames = new ArrayList();
- InputStream tableListStream = new URL(base, tableList).openStream();
+ InputStream tableListStream = resolveRelative(base, tableList).openStream();
BufferedReader reader = null;
try {
- reader = new BufferedReader(new InputStreamReader(tableListStream));
+ reader = new BufferedReader(new InputStreamReader(tableListStream, StandardCharsets.UTF_8));
String line = null;
while((line = reader.readLine()) != null) {
String table = line.trim();
@@ -190,4 +204,35 @@ public static List getTables(URL base, String tableList) throws IOException {
return orderedNames;
}
+ /**
+ * Resolves a relative spec against a base URL without the deprecated
+ * {@code URL(URL, String)} constructor.
+ *
+ * {@link URI#resolve(String)} handles this correctly for a hierarchical
+ * base (e.g. a plain {@code file:}/{@code http:} URL, whether it names a
+ * directory or a sibling file), but for an opaque base such as a
+ * {@code jar:...!/} URL it silently ignores the base and returns the spec
+ * as-is. For an opaque base, the spec is instead appended directly to the
+ * scheme-specific part, matching how the {@code jar:} protocol handler
+ * itself combines a root jar URL with an entry path.
+ *
+ * @param base the base URL.
+ * @param spec the relative spec to resolve against it.
+ * @return the resolved URL.
+ * @throws IOException if the base or the resolved URL is malformed.
+ */
+ static URL resolveRelative(final URL base, final String spec) throws IOException {
+ try {
+ final URI baseUri = base.toURI();
+ final URI resolved = baseUri.isOpaque()
+ ? new URI(baseUri.getScheme(),
+ baseUri.getSchemeSpecificPart() + spec,
+ baseUri.getFragment())
+ : baseUri.resolve(spec);
+ return resolved.toURL();
+ } catch (final URISyntaxException e) {
+ throw new IOException(e);
+ }
+ }
+
}
diff --git a/src/main/java/org/dbunit/dataset/csv/CsvURLProducer.java b/src/main/java/org/dbunit/dataset/csv/CsvURLProducer.java
index 0479d724b..8a5589ccb 100644
--- a/src/main/java/org/dbunit/dataset/csv/CsvURLProducer.java
+++ b/src/main/java/org/dbunit/dataset/csv/CsvURLProducer.java
@@ -92,9 +92,10 @@ public void setConsumer(IDataSetConsumer consumer) throws DataSetException {
_consumer = consumer;
}
- /*
- * @see IDataSetProducer#produce()
+ /**
+ * {@inheritDoc}
*/
+ @Override
public void produce() throws DataSetException {
logger.debug("produce() - start");
@@ -104,7 +105,7 @@ public void produce() throws DataSetException {
for (Iterator tableIter = tableSpecs.iterator(); tableIter.hasNext();) {
String table = (String) tableIter.next();
try {
- produceFromURL(new URL(base, table + ".csv"));
+ produceFromURL(CsvProducer.resolveRelative(base, table + ".csv"));
} catch (CsvParserException e) {
throw new DataSetException("error producing dataset for table '" + table + "'", e);
}
diff --git a/src/main/java/org/dbunit/dataset/datatype/BytesDataType.java b/src/main/java/org/dbunit/dataset/datatype/BytesDataType.java
index 0609d93b7..bd8656e8a 100644
--- a/src/main/java/org/dbunit/dataset/datatype/BytesDataType.java
+++ b/src/main/java/org/dbunit/dataset/datatype/BytesDataType.java
@@ -23,11 +23,15 @@
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
+import java.nio.file.NoSuchFileException;
+import java.nio.file.Paths;
import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
@@ -117,8 +121,21 @@ private byte[] toByteArray(final InputStream in, final int length)
public byte[] loadFile(final String filename) throws IOException
{
// Not an URL, try as file name
- final File file = new File(filename);
- return toByteArray(new FileInputStream(file), (int) file.length());
+ final File file;
+ try
+ {
+ file = Paths.get(filename).toFile();
+ }
+ catch (final InvalidPathException e)
+ {
+ // A syntactically invalid path is just as much "not a file" as a
+ // missing one, so callers that treat NoSuchFileException as a
+ // signal to fall back to another interpretation see it here too.
+ final NoSuchFileException wrapped = new NoSuchFileException(filename);
+ wrapped.initCause(e);
+ throw wrapped;
+ }
+ return toByteArray(Files.newInputStream(file.toPath()), (int) file.length());
}
/**
@@ -131,7 +148,18 @@ public byte[] loadFile(final String filename) throws IOException
public byte[] loadURL(final String urlAsString) throws IOException
{
// Not an URL, try as file name
- final URL url = new URL(urlAsString);
+ final URL url;
+ try
+ {
+ url = new URI(urlAsString).toURL();
+ }
+ catch (final URISyntaxException | IllegalArgumentException e)
+ {
+ final MalformedURLException wrapped =
+ new MalformedURLException(e.getMessage());
+ wrapped.initCause(e);
+ throw wrapped;
+ }
return toByteArray(url.openStream(), 0);
}
@@ -284,7 +312,7 @@ public Object typeCast(final Object value) throws TypeCastException
{
// Not an URL, try as file name
return loadFile(stringValue);
- } catch (final FileNotFoundException e2)
+ } catch (final NoSuchFileException e2)
{
logger.debug(
"Assuming given string to be Base64 and not a URI or File");
@@ -344,7 +372,7 @@ public Object typeCast(final Object value) throws TypeCastException
try
{
final File file = (File) value;
- return toByteArray(new FileInputStream(file),
+ return toByteArray(Files.newInputStream(file.toPath()),
(int) file.length());
} catch (final IOException e)
{
diff --git a/src/main/java/org/dbunit/dataset/excel/XlsDataSet.java b/src/main/java/org/dbunit/dataset/excel/XlsDataSet.java
index 09e4f3428..0b4cd4ade 100644
--- a/src/main/java/org/dbunit/dataset/excel/XlsDataSet.java
+++ b/src/main/java/org/dbunit/dataset/excel/XlsDataSet.java
@@ -22,10 +22,10 @@
import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.ss.usermodel.Workbook;
@@ -71,7 +71,7 @@ public XlsDataSet(File file) throws IOException, DataSetException
{
_tables = super.createTableNameMap();
- try (InputStream in = new BufferedInputStream(new FileInputStream(file)))
+ try (InputStream in = new BufferedInputStream(Files.newInputStream(file.toPath())))
{
Workbook workbook = createWorkbook(in);
loadSheets(workbook);
diff --git a/src/main/java/org/dbunit/dataset/json/JsonProducer.java b/src/main/java/org/dbunit/dataset/json/JsonProducer.java
index 13315a289..71b13e50d 100644
--- a/src/main/java/org/dbunit/dataset/json/JsonProducer.java
+++ b/src/main/java/org/dbunit/dataset/json/JsonProducer.java
@@ -22,9 +22,9 @@
package org.dbunit.dataset.json;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -86,7 +86,7 @@ public class JsonProducer implements IDataSetProducer
*/
public JsonProducer(final File file) throws IOException
{
- this(new FileInputStream(file), true);
+ this(Files.newInputStream(file.toPath()), true);
}
/**
diff --git a/src/main/java/org/dbunit/dataset/sqlloader/SqlLoaderControlParserImpl.java b/src/main/java/org/dbunit/dataset/sqlloader/SqlLoaderControlParserImpl.java
index 997559072..52d0c17bd 100644
--- a/src/main/java/org/dbunit/dataset/sqlloader/SqlLoaderControlParserImpl.java
+++ b/src/main/java/org/dbunit/dataset/sqlloader/SqlLoaderControlParserImpl.java
@@ -21,18 +21,20 @@
package org.dbunit.dataset.sqlloader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
+import java.net.URISyntaxException;
import java.net.URL;
+import java.nio.file.FileSystemNotFoundException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
import java.util.ArrayList;
import java.util.List;
-import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -147,7 +149,12 @@ public List parse(String csv) throws PipelineException, IllegalInputCharacterExc
*/
public List parse(URL url) throws IOException, SqlLoaderControlParserException {
logger.debug("parse(url={}) - start", url);
- return parse(new File(url.toString()));
+ try {
+ return parse(Paths.get(url.toURI()).toFile());
+ } catch (final URISyntaxException | IllegalArgumentException
+ | FileSystemNotFoundException e) {
+ throw new IOException(e);
+ }
}
/**
@@ -166,13 +173,13 @@ public List parse(File controlFile)
{
logger.debug("parse(controlFile={}) - start", controlFile);
- FileInputStream fis = new FileInputStream(controlFile);
-
- FileChannel fc = fis.getChannel();
-
- MappedByteBuffer mbf = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
- byte[] barray = new byte[(int) (fc.size())];
- mbf.get(barray);
+ byte[] barray;
+ try (FileChannel fc = FileChannel.open(controlFile.toPath()))
+ {
+ MappedByteBuffer mbf = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
+ barray = new byte[(int) (fc.size())];
+ mbf.get(barray);
+ }
String lines = new String(barray); //one big string
@@ -200,7 +207,7 @@ public List parse(File controlFile)
List columnList = parseColumns(lines, rows);
LineNumberReader lineNumberReader =
- new LineNumberReader(new InputStreamReader(new FileInputStream(dataFile)));
+ new LineNumberReader(new InputStreamReader(Files.newInputStream(dataFile.toPath())));
try {
parseTheData(columnList, lineNumberReader, rows);
}
@@ -218,8 +225,8 @@ public List parse(File controlFile)
private File resolveFile(File parentDir, String fileName) {
// Initially assume that we have an absolute fileName
- File dataFile = new File(fileName);
-
+ File dataFile = Paths.get(fileName).toFile();
+
// If fileName was not absolute build it using the given parent
if(!dataFile.isAbsolute()) {
fileName = fileName.replaceAll("\\\\", "/");
@@ -231,7 +238,7 @@ private File resolveFile(File parentDir, String fileName) {
if(fileName.startsWith(".")){
fileName = fileName.substring(1);
}
- dataFile = new File(parentDir, fileName);
+ dataFile = parentDir.toPath().resolve(fileName).toFile();
}
return dataFile;
}
@@ -299,12 +306,11 @@ private List parseColumns(String controlFileContent, List rows) throws IOExcepti
columnFragment = columnFragment.replaceAll("\".*?\"", "");
columnFragment = columnFragment.replaceAll("\n", "");
- StringTokenizer tok = new StringTokenizer(columnFragment, ",");
-
- while (tok.hasMoreElements()) {
-
- String col = (String) tok.nextElement();
- col = parseForRegexp(col, ".*^([a-zA-Z0-9_]*)\\s").trim(); //column is the first part.
+ for (final String rawCol : columnFragment.split(",")) {
+ if (rawCol.isEmpty()) {
+ continue;
+ }
+ final String col = parseForRegexp(rawCol, ".*^([a-zA-Z0-9_]*)\\s").trim(); //column is the first part.
columnList.add(col);
}
@@ -433,4 +439,4 @@ public String getTableName()
{
return this.tableName;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/dbunit/dataset/sqlloader/SqlLoaderControlProducer.java b/src/main/java/org/dbunit/dataset/sqlloader/SqlLoaderControlProducer.java
index e69990a2d..71022545d 100644
--- a/src/main/java/org/dbunit/dataset/sqlloader/SqlLoaderControlProducer.java
+++ b/src/main/java/org/dbunit/dataset/sqlloader/SqlLoaderControlProducer.java
@@ -22,6 +22,7 @@
import java.io.File;
import java.io.IOException;
+import java.nio.file.Paths;
import java.util.Iterator;
import java.util.List;
@@ -86,7 +87,7 @@ public class SqlLoaderControlProducer implements IDataSetProducer {
public SqlLoaderControlProducer(String controlFilesDir, String tableOrderFile)
throws DataSetException
{
- this(new File(controlFilesDir), new File(tableOrderFile));
+ this(Paths.get(controlFilesDir).toFile(), Paths.get(tableOrderFile).toFile());
}
/**
@@ -145,7 +146,7 @@ public void produce() throws DataSetException {
for (Iterator tableIter = this.orderedTableNames.iterator(); tableIter.hasNext();) {
String table = (String) tableIter.next();
try {
- File ctlFile = new File(dir, table + ".ctl");
+ File ctlFile = dir.toPath().resolve(table + ".ctl").toFile();
produceFromControlFile(ctlFile);
}
catch (SqlLoaderControlParserException e) {
@@ -221,7 +222,7 @@ public static List getTables(File controlFilesDir, File tableList) throws IOExce
logger.debug("getTables(controlFilesDir={}, tableList={}) - start", controlFilesDir, tableList);
// Copy file into the control directory
- File tmpTableList = new File(controlFilesDir, TMP_TABLE_LIST_FILENAME);
+ File tmpTableList = controlFilesDir.toPath().resolve(TMP_TABLE_LIST_FILENAME).toFile();
FileHelper.copyFile(tableList, tmpTableList);
List orderedNames;
@@ -237,4 +238,4 @@ public static List getTables(File controlFilesDir, File tableList) throws IOExce
return orderedNames;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/dbunit/dataset/xml/FlatDtdProducer.java b/src/main/java/org/dbunit/dataset/xml/FlatDtdProducer.java
index 30fe73c48..bc30caadd 100644
--- a/src/main/java/org/dbunit/dataset/xml/FlatDtdProducer.java
+++ b/src/main/java/org/dbunit/dataset/xml/FlatDtdProducer.java
@@ -27,7 +27,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.StringTokenizer;
+import java.util.regex.Pattern;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
@@ -298,6 +298,9 @@ public void startDTD(final String name, final String publicId, final String syst
}
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void endDTD() throws SAXException
{
@@ -326,10 +329,11 @@ public void endDTD() throws SAXException
// Parse the root element model to determine the table sequence.
// Support all sequence or choices model but not the mix of both.
final String delim = (rootModel.indexOf(",") != -1) ? "," : "|";
- final StringTokenizer tokenizer = new StringTokenizer(rootModel, delim);
- while (tokenizer.hasMoreTokens()) {
- String tableName = tokenizer.nextToken();
- tableName = cleanupTableName(tableName);
+ for (final String rawTableName : rootModel.split(Pattern.quote(delim))) {
+ if (rawTableName.isEmpty()) {
+ continue;
+ }
+ final String tableName = cleanupTableName(rawTableName);
addTable(tableName);
}
}
diff --git a/src/main/java/org/dbunit/dataset/yaml/YamlProducer.java b/src/main/java/org/dbunit/dataset/yaml/YamlProducer.java
index 6eb97fc45..732e69a73 100644
--- a/src/main/java/org/dbunit/dataset/yaml/YamlProducer.java
+++ b/src/main/java/org/dbunit/dataset/yaml/YamlProducer.java
@@ -35,9 +35,9 @@
import org.yaml.snakeyaml.constructor.DuplicateKeyException;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -75,7 +75,7 @@ public class YamlProducer implements IDataSetProducer
*/
public YamlProducer(File file) throws IOException
{
- this(new FileInputStream(file));
+ this(Files.newInputStream(file.toPath()));
}
/**
diff --git a/src/main/java/org/dbunit/util/Base64.java b/src/main/java/org/dbunit/util/Base64.java
index 8d43a08d0..464a81ab7 100644
--- a/src/main/java/org/dbunit/util/Base64.java
+++ b/src/main/java/org/dbunit/util/Base64.java
@@ -20,7 +20,8 @@
*/
package org.dbunit.util;
-import java.io.FileInputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -152,7 +153,9 @@ public static void main(String[] args)
try
{
- FileInputStream fis = new FileInputStream("c:\\abcd.txt");
+ // Fully qualified: this class declares its own InputStream below,
+ // which would shadow an import of java.io.InputStream.
+ java.io.InputStream fis = Files.newInputStream(Paths.get("c:\\abcd.txt"));
InputStream b64is = new InputStream(fis, DECODE);
int ib = 0;
while ((ib = b64is.read()) > 0)
diff --git a/src/main/java/org/dbunit/util/FileHelper.java b/src/main/java/org/dbunit/util/FileHelper.java
index 16352dc55..79e89ab6c 100644
--- a/src/main/java/org/dbunit/util/FileHelper.java
+++ b/src/main/java/org/dbunit/util/FileHelper.java
@@ -22,13 +22,13 @@
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.nio.channels.FileChannel;
+import java.nio.file.Files;
+import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.List;
@@ -124,12 +124,11 @@ public static void copyFile(File srcFile, File destFile) throws IOException
{
logger.debug("copyFile(srcFile={}, destFile={}) - start", srcFile, destFile);
- try (FileInputStream srcStream = new FileInputStream(srcFile);
- FileOutputStream dstStream = new FileOutputStream(destFile))
+ try (FileChannel srcChannel = FileChannel.open(srcFile.toPath());
+ FileChannel dstChannel = FileChannel.open(destFile.toPath(),
+ StandardOpenOption.WRITE, StandardOpenOption.CREATE,
+ StandardOpenOption.TRUNCATE_EXISTING))
{
- FileChannel srcChannel = srcStream.getChannel();
- FileChannel dstChannel = dstStream.getChannel();
-
// Copy file contents from source to destination
dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
}
@@ -147,7 +146,7 @@ public static List readLines(File theFile) throws IOException
{
logger.debug("readLines(theFile={}) - start", theFile);
- InputStream tableListStream = new FileInputStream(theFile);
+ InputStream tableListStream = Files.newInputStream(theFile.toPath());
try {
List orderedNames = new ArrayList();
BufferedReader reader = new BufferedReader(new InputStreamReader(tableListStream));
@@ -165,4 +164,4 @@ public static List readLines(File theFile) throws IOException
}
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/dbunit/util/concurrent/PropertyChangeMulticaster.java b/src/main/java/org/dbunit/util/concurrent/PropertyChangeMulticaster.java
index 49c9be263..629b234a1 100644
--- a/src/main/java/org/dbunit/util/concurrent/PropertyChangeMulticaster.java
+++ b/src/main/java/org/dbunit/util/concurrent/PropertyChangeMulticaster.java
@@ -420,9 +420,9 @@ public void firePropertyChange(String propertyName,
if (oldValue != newValue) {
multicast(new PropertyChangeEvent(source,
- propertyName,
- new Boolean(oldValue),
- new Boolean(newValue)));
+ propertyName,
+ oldValue,
+ newValue));
}
}
diff --git a/src/test/java/org/dbunit/DatabaseEnvironment.java b/src/test/java/org/dbunit/DatabaseEnvironment.java
index 8cd14024b..eb0f0816e 100644
--- a/src/test/java/org/dbunit/DatabaseEnvironment.java
+++ b/src/test/java/org/dbunit/DatabaseEnvironment.java
@@ -22,9 +22,11 @@
package org.dbunit;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
@@ -184,7 +186,10 @@ public DatabaseEnvironment(final DatabaseProfile profile,
_profile = profile;
final File file = TestUtils.getFile("xml/dataSetTest.xml");
- _dataSet = new XmlDataSet(new FileReader(file));
+ try (Reader reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8))
+ {
+ _dataSet = new XmlDataSet(reader);
+ }
_databaseTester = new JdbcDatabaseTester(_profile.getDriverClass(),
_profile.getConnectionUrl(), _profile.getUser(),
_profile.getPassword(), _profile.getSchema());
diff --git a/src/test/java/org/dbunit/DatabaseProfile.java b/src/test/java/org/dbunit/DatabaseProfile.java
index d29634e6a..09a94c08c 100644
--- a/src/test/java/org/dbunit/DatabaseProfile.java
+++ b/src/test/java/org/dbunit/DatabaseProfile.java
@@ -110,10 +110,13 @@ public String[] getUnsupportedFeatures()
}
List stringList = new ArrayList();
- StringTokenizer tokenizer = new StringTokenizer(property, ",");
- while (tokenizer.hasMoreTokens())
+ for (final String token : property.split(","))
{
- stringList.add(tokenizer.nextToken().trim());
+ final String trimmed = token.trim();
+ if (!trimmed.isEmpty())
+ {
+ stringList.add(trimmed);
+ }
}
return stringList.toArray(new String[stringList.size()]);
}
diff --git a/src/test/java/org/dbunit/DdlExecutor.java b/src/test/java/org/dbunit/DdlExecutor.java
index 7f1b6507a..17b7b2903 100644
--- a/src/test/java/org/dbunit/DdlExecutor.java
+++ b/src/test/java/org/dbunit/DdlExecutor.java
@@ -26,8 +26,9 @@
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLSyntaxErrorException;
@@ -38,7 +39,6 @@
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
-import java.util.StringTokenizer;
import java.util.TreeSet;
/**
@@ -166,11 +166,9 @@ public static void executeDdlFile(final File ddlFile,
if (!multiLineSupport)
{
- StringTokenizer tokenizer = new StringTokenizer(sql, ";");
- while (tokenizer.hasMoreTokens())
+ for (final String rawToken : sql.split(";"))
{
- String token = tokenizer.nextToken();
- token = token.trim();
+ final String token = rawToken.trim();
if (token.length() > 0)
{
executeSql(connection, token, ignoreErrors);
@@ -339,7 +337,7 @@ private static String normalizeIdentifier(final DatabaseMetaData metaData,
private static String readSqlFromFile(final File ddlFile) throws IOException
{
final BufferedReader sqlReader =
- new BufferedReader(new FileReader(ddlFile));
+ new BufferedReader(Files.newBufferedReader(ddlFile.toPath(), StandardCharsets.UTF_8));
final StringBuilder sqlBuffer = new StringBuilder();
while (sqlReader.ready())
{
@@ -356,4 +354,4 @@ private static String readSqlFromFile(final File ddlFile) throws IOException
return sql;
}
-}
+}
\ No newline at end of file
diff --git a/src/test/java/org/dbunit/DerbyEnvironment.java b/src/test/java/org/dbunit/DerbyEnvironment.java
index 308f79dd0..3167f6863 100644
--- a/src/test/java/org/dbunit/DerbyEnvironment.java
+++ b/src/test/java/org/dbunit/DerbyEnvironment.java
@@ -23,7 +23,7 @@
import org.dbunit.util.FileHelper;
-import java.io.File;
+import java.nio.file.Paths;
import java.util.concurrent.Callable;
/**
@@ -45,10 +45,10 @@ public Void call() throws Exception
// The name of the db is specified in the profile.properties and
// is created on the fly
// when the connection is retrieved the first time
- FileHelper.deleteDirectory(new File("./target/derby_db"));
+ FileHelper.deleteDirectory(Paths.get("./target/derby_db").toFile());
return null;
}
});
}
-}
+}
\ No newline at end of file
diff --git a/src/test/java/org/dbunit/H2Environment.java b/src/test/java/org/dbunit/H2Environment.java
index aebcc78be..1ad234a9d 100644
--- a/src/test/java/org/dbunit/H2Environment.java
+++ b/src/test/java/org/dbunit/H2Environment.java
@@ -24,6 +24,7 @@
import org.dbunit.operation.DatabaseOperation;
import java.io.File;
+import java.nio.file.Paths;
import java.io.FilenameFilter;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -72,7 +73,7 @@ public static void shutdown(Connection connection) throws SQLException
public static void deleteFiles(final String filename)
{
- deleteFiles(new File("."), filename);
+ deleteFiles(Paths.get(".").toFile(), filename);
}
public static void deleteFiles(File directory, final String filename)
@@ -96,4 +97,4 @@ public boolean accept(File dir, String name)
}
}
-}
+}
\ No newline at end of file
diff --git a/src/test/java/org/dbunit/HypersonicEnvironment.java b/src/test/java/org/dbunit/HypersonicEnvironment.java
index 494c0fb63..d572de59b 100644
--- a/src/test/java/org/dbunit/HypersonicEnvironment.java
+++ b/src/test/java/org/dbunit/HypersonicEnvironment.java
@@ -24,6 +24,7 @@
import org.dbunit.operation.DatabaseOperation;
import java.io.File;
+import java.nio.file.Paths;
import java.io.FilenameFilter;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -63,7 +64,7 @@ public static void shutdown(Connection connection) throws SQLException
public static void deleteFiles(final String filename)
{
- deleteFiles(new File("."), filename);
+ deleteFiles(Paths.get(".").toFile(), filename);
}
public static void deleteFiles(File directory, final String filename)
diff --git a/src/test/java/org/dbunit/Main.java b/src/test/java/org/dbunit/Main.java
index 91598b704..ba53c4817 100644
--- a/src/test/java/org/dbunit/Main.java
+++ b/src/test/java/org/dbunit/Main.java
@@ -21,15 +21,15 @@
package org.dbunit;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.sql.Connection;
import org.dbunit.database.DatabaseConfig;
@@ -121,10 +121,13 @@ private static void testFlatXmlWriter() throws Exception
mockProducer.setupTableCount(10);
final IDataSet dataSet = new StreamingDataSet(mockProducer);
- final OutputStream out = new FileOutputStream("flatXmlWriterTest.xml");
- final FlatXmlWriter writer = new FlatXmlWriter(
- new OutputStreamWriter(out, StandardCharsets.UTF_8));
- writer.write(dataSet);
+ final Path path = Paths.get("flatXmlWriterTest.xml");
+ try (OutputStream out = Files.newOutputStream(path))
+ {
+ final FlatXmlWriter writer = new FlatXmlWriter(
+ new OutputStreamWriter(out, StandardCharsets.UTF_8));
+ writer.write(dataSet);
+ }
}
private static void testXmlWriter() throws Exception
@@ -135,10 +138,13 @@ private static void testXmlWriter() throws Exception
mockProducer.setupTableCount(10);
final IDataSet dataSet = new StreamingDataSet(mockProducer);
- final OutputStream out = new FileOutputStream("xmlWriterTest.xml");
- final XmlDataSetWriter writer = new XmlDataSetWriter(
- new OutputStreamWriter(out, StandardCharsets.UTF_8));
- writer.write(dataSet);
+ final Path path = Paths.get("xmlWriterTest.xml");
+ try (OutputStream out = Files.newOutputStream(path))
+ {
+ final XmlDataSetWriter writer = new XmlDataSetWriter(
+ new OutputStreamWriter(out, StandardCharsets.UTF_8));
+ writer.write(dataSet);
+ }
}
// private static void testWrite() throws Exception
@@ -184,11 +190,12 @@ private static void oldMain() throws Exception
// new FileOutputStream("test.dtd"));
//
//
- final Writer out = new FileWriter("test.xml");
- // FlatXmlDataSet.write(connection.createDataSet(), out, "ISO-8859-1");
- FlatXmlDataSet.write(connection.createDataSet(), out);
- // out.flush();
- // out.close();
+ final Path path = Paths.get("test.xml");
+ try (Writer out = Files.newBufferedWriter(path, StandardCharsets.UTF_8))
+ {
+ // FlatXmlDataSet.write(connection.createDataSet(), out, "ISO-8859-1");
+ FlatXmlDataSet.write(connection.createDataSet(), out);
+ }
// ////////////////////////////////
// Document document = new
@@ -214,12 +221,13 @@ private static void oldMain() throws Exception
private static void writeXls() throws IOException, DataSetException
{
- final Reader in =
- new FileReader("P:/dbunit-cvs/dbunit/src/xml/dataSetTest.xml");
- final FileOutputStream out =
- new FileOutputStream("P:/dbunit-cvs/dbunit/dataSetTest.xls");
- XlsDataSet.write(new XmlDataSet(in), out);
- out.close();
+ final Path inPath = Paths.get("P:/dbunit-cvs/dbunit/src/xml/dataSetTest.xml");
+ final Path outPath = Paths.get("P:/dbunit-cvs/dbunit/dataSetTest.xls");
+ try (Reader in = Files.newBufferedReader(inPath, StandardCharsets.UTF_8);
+ OutputStream out = Files.newOutputStream(outPath))
+ {
+ XlsDataSet.write(new XmlDataSet(in), out);
+ }
}
/*
diff --git a/src/test/java/org/dbunit/ant/DbUnitTaskIT.java b/src/test/java/org/dbunit/ant/DbUnitTaskIT.java
index 357453da2..b192ce892 100644
--- a/src/test/java/org/dbunit/ant/DbUnitTaskIT.java
+++ b/src/test/java/org/dbunit/ant/DbUnitTaskIT.java
@@ -100,14 +100,14 @@ public void setUp() throws Exception
assertThat(TestUtils.getFile(filePath)).as("Buildfile not found")
.isFile();
rule.configureProject(TestUtils.getFileName(filePath));
- outputDir = new File(rule.getProject().getBaseDir(), OUTPUT_DIR);
+ outputDir = rule.getProject().getBaseDir().toPath().resolve(OUTPUT_DIR).toFile();
outputDir.mkdirs();
}
@AfterEach
public void tearDown() throws Exception
{
- outputDir = new File(rule.getProject().getBaseDir(), OUTPUT_DIR);
+ outputDir = rule.getProject().getBaseDir().toPath().resolve(OUTPUT_DIR).toFile();
FileHelper.deleteDirectory(outputDir);
}
@@ -496,7 +496,7 @@ public void testExportAndCompareFormatMismatch_withMismatchedFormats_throwsDatab
final DatabaseUnitException dbUnitException =
(DatabaseUnitException) cause;
final String filename =
- new File(outputDir, "antExportDataSet.xml").toString();
+ outputDir.toPath().resolve("antExportDataSet.xml").toString();
final String expectedMsg = "Did not find table in source file '"
+ filename + "' using format 'xml'";
assertThat(dbUnitException.getMessage()).isEqualTo(expectedMsg);
diff --git a/src/test/java/org/dbunit/ant/ExportTest.java b/src/test/java/org/dbunit/ant/ExportTest.java
index 9f9dd0eb4..e926378d7 100644
--- a/src/test/java/org/dbunit/ant/ExportTest.java
+++ b/src/test/java/org/dbunit/ant/ExportTest.java
@@ -25,8 +25,9 @@
import static org.mockito.Mockito.when;
import java.io.File;
-import java.io.FileInputStream;
+import java.io.InputStream;
import java.lang.reflect.Field;
+import java.nio.file.Files;
import org.dbunit.Assertion;
import org.dbunit.database.DatabaseConfig;
@@ -58,14 +59,14 @@ void testExecute_withUppercaseCsvFormat_writesCsvOutput(
{
stubConnection();
- final File dest = new File(tempDir, "csv-out");
+ final File dest = tempDir.toPath().resolve("csv-out").toFile();
final Export export = new Export();
export.setFormat("CSV");
export.setDest(dest);
export.execute(connection);
- assertThat(new File(dest, "TEST_TABLE.csv"))
+ assertThat(dest.toPath().resolve("TEST_TABLE.csv").toFile())
.as("CSV export must create a per-table file inside the"
+ " destination directory even when the format"
+ " attribute is given in upper case.")
@@ -78,7 +79,7 @@ void testExecute_withJsonFormat_writesJsonOutput(
{
stubConnection();
- final File dest = new File(tempDir, "json-out.json");
+ final File dest = tempDir.toPath().resolve("json-out.json").toFile();
final Export export = new Export();
export.setFormat("json");
export.setDest(dest);
@@ -89,7 +90,7 @@ void testExecute_withJsonFormat_writesJsonOutput(
.as("JSON export must create the destination file.")
.exists();
final IDataSet actualDataSet;
- try (FileInputStream in = new FileInputStream(dest))
+ try (InputStream in = Files.newInputStream(dest.toPath()))
{
actualDataSet = new JsonDataSet(in);
}
@@ -100,7 +101,7 @@ void testExecute_withJsonFormat_writesJsonOutput(
void testExecute_withUnsupportedFormat_throwsWithoutCreatingDestinationFile(
@TempDir final File tempDir) throws Exception
{
- final File dest = new File(tempDir, "unsupported-out");
+ final File dest = tempDir.toPath().resolve("unsupported-out").toFile();
final Export export = new Export();
export.setDest(dest);
setFormatField(export, "bogus");
diff --git a/src/test/java/org/dbunit/ant/adapter/BuildFileExtension.java b/src/test/java/org/dbunit/ant/adapter/BuildFileExtension.java
index 50e274750..593c0c52c 100644
--- a/src/test/java/org/dbunit/ant/adapter/BuildFileExtension.java
+++ b/src/test/java/org/dbunit/ant/adapter/BuildFileExtension.java
@@ -24,6 +24,7 @@
import java.io.File;
import java.io.OutputStream;
import java.io.PrintStream;
+import java.nio.file.Paths;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildListener;
@@ -107,7 +108,8 @@ public void configureProject(String filename, int logLevel) throws BuildExceptio
}
this.project.init();
- File antFile = new File(System.getProperty("root"), filename);
+ final String root = System.getProperty("root");
+ File antFile = root != null ? Paths.get(root, filename).toFile() : Paths.get(filename).toFile();
this.project.setProperty("ant.processid", ProcessUtil.getProcessId(""));
this.project.setProperty("ant.threadname", Thread.currentThread().getName());
this.project.setUserProperty("ant.file", antFile.getAbsolutePath());
@@ -147,7 +149,7 @@ public Project getProject() {
}
public File getOutputDir() {
- return new File(this.getProject().getProperty("output"));
+ return Paths.get(this.getProject().getProperty("output")).toFile();
}
@Override
diff --git a/src/test/java/org/dbunit/assertion/DbUnitValueComparerAssertIT.java b/src/test/java/org/dbunit/assertion/DbUnitValueComparerAssertIT.java
index 85a5ba28a..2d7cbe6f1 100644
--- a/src/test/java/org/dbunit/assertion/DbUnitValueComparerAssertIT.java
+++ b/src/test/java/org/dbunit/assertion/DbUnitValueComparerAssertIT.java
@@ -3,7 +3,7 @@
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import java.io.FileNotFoundException;
+import java.io.IOException;
import java.util.Map;
import org.dbunit.assertion.comparer.value.ValueComparer;
@@ -27,7 +27,7 @@ public class DbUnitValueComparerAssertIT
private final DbUnitValueComparerAssert sut =
new DbUnitValueComparerAssert();
- private IDataSet getDataSet() throws DataSetException, FileNotFoundException
+ private IDataSet getDataSet() throws DataSetException, IOException
{
return new FlatXmlDataSetBuilder()
.build(TestUtils.getFileReader(FILE_PATH));
diff --git a/src/test/java/org/dbunit/dataset/CachedDataSetTest.java b/src/test/java/org/dbunit/dataset/CachedDataSetTest.java
index e36503505..9c5228d0f 100644
--- a/src/test/java/org/dbunit/dataset/CachedDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/CachedDataSetTest.java
@@ -23,7 +23,9 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.fail;
-import java.io.FileReader;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.dataset.xml.FlatXmlDataSetTest;
import org.dbunit.dataset.xml.FlatXmlProducer;
@@ -42,8 +44,8 @@ class CachedDataSetTest extends AbstractDataSetDecoratorTest
@Override
protected IDataSet createDataSet() throws Exception
{
- final FileReader reader =
- new FileReader(FlatXmlDataSetTest.DATASET_FILE);
+ final Reader reader =
+ Files.newBufferedReader(FlatXmlDataSetTest.DATASET_FILE.toPath(), StandardCharsets.UTF_8);
return new CachedDataSet(new FlatXmlProducer(new InputSource(reader)));
}
diff --git a/src/test/java/org/dbunit/dataset/CaseInsensitiveTableTest.java b/src/test/java/org/dbunit/dataset/CaseInsensitiveTableTest.java
index 5592cd9bc..a3962b6a3 100644
--- a/src/test/java/org/dbunit/dataset/CaseInsensitiveTableTest.java
+++ b/src/test/java/org/dbunit/dataset/CaseInsensitiveTableTest.java
@@ -23,8 +23,9 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileReader;
import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.dataset.xml.XmlDataSet;
import org.dbunit.dataset.xml.XmlTableTest;
@@ -48,8 +49,8 @@ protected ITable createTable() throws Exception
@Override
protected IDataSet createDataSet() throws Exception
{
- final Reader in = new FileReader(
- TestUtils.getFile("xml/caseInsensitiveTableTest.xml"));
+ final Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/caseInsensitiveTableTest.xml").toPath(), StandardCharsets.UTF_8);
return new XmlDataSet(in);
}
diff --git a/src/test/java/org/dbunit/dataset/CompositeDataSetIterationIT.java b/src/test/java/org/dbunit/dataset/CompositeDataSetIterationIT.java
index 30f86c0f4..00bb3f462 100644
--- a/src/test/java/org/dbunit/dataset/CompositeDataSetIterationIT.java
+++ b/src/test/java/org/dbunit/dataset/CompositeDataSetIterationIT.java
@@ -23,7 +23,9 @@
import static org.junit.jupiter.api.Assertions.fail;
-import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import org.dbunit.AbstractDatabaseIT;
import org.dbunit.DdlExecutor;
@@ -107,10 +109,9 @@ void testCompositeIteration_withQueryAndDefaultDataSets_writesAllTablesToFile()
new CompositeDataSet(queryDataSet, plainDataSet);
// 4. Write
- try
+ try (OutputStream out = Files.newOutputStream(Paths.get("target/full.xml")))
{
- FlatXmlDataSet.write(compositeDataSet,
- new FileOutputStream("target/full.xml"));
+ FlatXmlDataSet.write(compositeDataSet, out);
}
catch (final Exception e)
{
diff --git a/src/test/java/org/dbunit/dataset/CompositeDataSetTest.java b/src/test/java/org/dbunit/dataset/CompositeDataSetTest.java
index db8a636dc..d02d22007 100644
--- a/src/test/java/org/dbunit/dataset/CompositeDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/CompositeDataSetTest.java
@@ -23,7 +23,6 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileNotFoundException;
import java.io.IOException;
import org.dbunit.dataset.datatype.DataType;
@@ -120,7 +119,7 @@ void testConstructor_threePartsSameTable_valuesReadableAcrossAllParts() throws E
private CompositeDataSet createCompositeDataSet(final boolean combined,
final boolean multipleCase)
- throws DataSetException, FileNotFoundException, IOException
+ throws DataSetException, IOException
{
final IDataSet dataSet1 = new FlatXmlDataSetBuilder().build(TestUtils
.getFileReader("xml/compositeDataSetDuplicateTest1.xml"));
diff --git a/src/test/java/org/dbunit/dataset/FilteredDataSetTest.java b/src/test/java/org/dbunit/dataset/FilteredDataSetTest.java
index 1068b1923..773f6daf0 100644
--- a/src/test/java/org/dbunit/dataset/FilteredDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/FilteredDataSetTest.java
@@ -24,7 +24,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import java.io.FileReader;
+import java.io.Reader;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
import org.dbunit.dataset.xml.XmlDataSet;
@@ -148,7 +148,7 @@ void testGetFilteredTableMetaData_withSingleTableFilter_returnsFilteredMetaDataA
void testCaseSensitivityInheritance_withCaseSensitiveAndInsensitiveDataSet_inheritsFromDecoratedDataSet() throws Exception
{
// Case sensitive check
- FileReader fileReader = TestUtils.getFileReader("xml/dataSetTest.xml");
+ Reader fileReader = TestUtils.getFileReader("xml/dataSetTest.xml");
final IDataSet caseSensitive = new FlatXmlDataSetBuilder()
.setCaseSensitiveTableNames(true).build(fileReader);
diff --git a/src/test/java/org/dbunit/dataset/LowerCaseDataSetTest.java b/src/test/java/org/dbunit/dataset/LowerCaseDataSetTest.java
index 95c9984a9..d17fc5710 100644
--- a/src/test/java/org/dbunit/dataset/LowerCaseDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/LowerCaseDataSetTest.java
@@ -23,7 +23,8 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.TurkishDefaultLocale;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
@@ -42,7 +43,7 @@ public class LowerCaseDataSetTest extends AbstractDataSetDecoratorTest
protected IDataSet createDataSet() throws Exception
{
return new LowerCaseDataSet(new FlatXmlDataSetBuilder()
- .build(new FileReader(FlatXmlDataSetTest.DATASET_FILE)));
+ .build(Files.newBufferedReader(FlatXmlDataSetTest.DATASET_FILE.toPath(), StandardCharsets.UTF_8)));
}
@Override
diff --git a/src/test/java/org/dbunit/dataset/ReplacementDataSetTest.java b/src/test/java/org/dbunit/dataset/ReplacementDataSetTest.java
index 93881cae6..2f2a0ccac 100644
--- a/src/test/java/org/dbunit/dataset/ReplacementDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/ReplacementDataSetTest.java
@@ -22,7 +22,9 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileReader;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
@@ -45,27 +47,28 @@ class ReplacementDataSetTest extends AbstractDataSetDecoratorTest
protected IDataSet createDataSet() throws Exception
{
return new ReplacementDataSet(new FlatXmlDataSetBuilder()
- .build(new FileReader(FlatXmlDataSetTest.DATASET_FILE)));
+ .build(Files.newBufferedReader(FlatXmlDataSetTest.DATASET_FILE.toPath(), StandardCharsets.UTF_8)));
}
@Test
void testConstructor_DataSetHasCaseSensitive_ReplacementSetHasCaseSensitive()
throws Exception
{
- final FileReader xmlReader =
- new FileReader(FlatXmlDataSetTest.DATASET_FILE);
+ final Reader xmlReader =
+ Files.newBufferedReader(FlatXmlDataSetTest.DATASET_FILE.toPath(), StandardCharsets.UTF_8);
final FlatXmlDataSet flatDataSet = new FlatXmlDataSetBuilder()
.setCaseSensitiveTableNames(true).build(xmlReader);
final ReplacementDataSet dataSet = new ReplacementDataSet(flatDataSet);
- assertThat(dataSet.isCaseSensitiveTableNames()).isTrue();
-
+ assertThat(dataSet.isCaseSensitiveTableNames())
+ .as("ReplacementDataSet must preserve the wrapped dataset's case-sensitive table names setting.")
+ .isTrue();
}
@Test
void testConstructor_DifferentCaseTableNames_CaseSensitiveMatch()
throws Exception
{
- final FileReader fileReader = TestUtils
+ final Reader fileReader = TestUtils
.getFileReader("/xml/replacementDataSetCaseSensitive.xml");
final IDataSet originalDataSet = new FlatXmlDataSetBuilder()
.setCaseSensitiveTableNames(true).build(fileReader);
diff --git a/src/test/java/org/dbunit/dataset/TableDecoratorDataSetTest.java b/src/test/java/org/dbunit/dataset/TableDecoratorDataSetTest.java
index e52523abf..bec04f3d5 100644
--- a/src/test/java/org/dbunit/dataset/TableDecoratorDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/TableDecoratorDataSetTest.java
@@ -23,7 +23,8 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
import org.dbunit.dataset.xml.FlatXmlDataSetTest;
@@ -36,7 +37,7 @@ protected IDataSet createDataSet() throws Exception
{
return new TableDecoratorDataSet(
new FlatXmlDataSetBuilder()
- .build(new FileReader(FlatXmlDataSetTest.DATASET_FILE)),
+ .build(Files.newBufferedReader(FlatXmlDataSetTest.DATASET_FILE.toPath(), StandardCharsets.UTF_8)),
t -> new ColumnFilterTable(t, (table, column) -> true));
}
@@ -65,4 +66,4 @@ public void testTableDecoration() throws Exception
assertThat(iterator.getTableMetaData())
.isInstanceOf(FilteredTableMetaData.class);
}
-}
+}
\ No newline at end of file
diff --git a/src/test/java/org/dbunit/dataset/csv/CsvDataSetTest.java b/src/test/java/org/dbunit/dataset/csv/CsvDataSetTest.java
index 7ec443ee2..ef43e879c 100644
--- a/src/test/java/org/dbunit/dataset/csv/CsvDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/csv/CsvDataSetTest.java
@@ -24,6 +24,7 @@
import java.io.File;
import java.io.IOException;
+import java.nio.file.Files;
import org.dbunit.Assertion;
import org.dbunit.dataset.DataSetException;
@@ -69,7 +70,7 @@ void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Except
CsvDataSetWriter.write(expectedDataSet, tempDir);
final File tableOrderingFile =
- new File(tempDir, CsvDataSet.TABLE_ORDERING_FILE);
+ tempDir.toPath().resolve(CsvDataSet.TABLE_ORDERING_FILE).toFile();
assertThat(tableOrderingFile).exists();
final IDataSet actualDataSet = new CsvDataSet(tempDir);
@@ -106,17 +107,7 @@ void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Except
private File createTmpDir() throws IOException
{
- final File tmpFile = File.createTempFile("CsvDataSetTest", "-csv");
- final String fullPath = tmpFile.getAbsolutePath();
- tmpFile.delete();
-
- final File tmpDir = new File(fullPath);
- if (!tmpDir.mkdir())
- {
- throw new IOException("Failed to create tmpDir: " + fullPath);
- }
-
- return tmpDir;
+ return Files.createTempDirectory("CsvDataSetTest").toFile();
}
}
diff --git a/src/test/java/org/dbunit/dataset/csv/CsvDataSetWriterTest.java b/src/test/java/org/dbunit/dataset/csv/CsvDataSetWriterTest.java
index d2327a910..0e5219545 100644
--- a/src/test/java/org/dbunit/dataset/csv/CsvDataSetWriterTest.java
+++ b/src/test/java/org/dbunit/dataset/csv/CsvDataSetWriterTest.java
@@ -7,6 +7,7 @@
import java.io.File;
import java.nio.file.Files;
+import java.nio.file.Paths;
import java.sql.Clob;
import java.sql.SQLException;
@@ -52,7 +53,7 @@ private void produceToFolder(final String source, final String dest)
throws DataSetException
{
final CsvProducer producer = new CsvProducer(source);
- new File(dest).delete();
+ Paths.get(dest).toFile().delete();
final CsvDataSetWriter writer = new CsvDataSetWriter(dest);
producer.setConsumer(writer);
producer.produce();
@@ -71,8 +72,8 @@ void testWrite_multiRowTable_writesCompleteFile() throws Exception
}
final IDataSet expected = builder.build();
- new File(dest).delete();
- CsvDataSetWriter.write(expected, new File(dest));
+ Paths.get(dest).toFile().delete();
+ CsvDataSetWriter.write(expected, Paths.get(dest).toFile());
final IDataSet actual = produceToMemory(dest);
assertThat(actual.getTable("MULTI_ROW").getRowCount())
@@ -96,8 +97,8 @@ void testWrite_laterRowFailsTypeCast_earlierRowsAlreadyFlushedToDisk()
.row(2, unreadableClob)
.build();
- new File(dest).mkdirs();
- final File tableFile = new File(dest, "FLUSH_ON_ERROR.csv");
+ Paths.get(dest).toFile().mkdirs();
+ final File tableFile = Paths.get(dest, "FLUSH_ON_ERROR.csv").toFile();
tableFile.delete();
final CsvDataSetWriter writer = new CsvDataSetWriter(dest);
diff --git a/src/test/java/org/dbunit/dataset/csv/CsvParserTest.java b/src/test/java/org/dbunit/dataset/csv/CsvParserTest.java
index 542fd934f..0e8c54e50 100644
--- a/src/test/java/org/dbunit/dataset/csv/CsvParserTest.java
+++ b/src/test/java/org/dbunit/dataset/csv/CsvParserTest.java
@@ -28,11 +28,11 @@
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.StringReader;
+import java.nio.file.Files;
import java.util.List;
import org.dbunit.dataset.common.handlers.IllegalInputCharacterException;
@@ -160,7 +160,7 @@ void testSample_withSampleCsvFile_parsesThreeTokensPerLine() throws Exception
final File sample = TestUtils.getFile("csv/sample.csv");
final BufferedReader reader = new BufferedReader(
- new InputStreamReader(new FileInputStream(sample)));
+ new InputStreamReader(Files.newInputStream(sample.toPath())));
final LineNumberReader lineNumberReader = new LineNumberReader(reader);
String line;
while ((line = lineNumberReader.readLine()) != null)
diff --git a/src/test/java/org/dbunit/dataset/csv/CsvProducerTest.java b/src/test/java/org/dbunit/dataset/csv/CsvProducerTest.java
index b7eccbf6d..4f23bf14c 100644
--- a/src/test/java/org/dbunit/dataset/csv/CsvProducerTest.java
+++ b/src/test/java/org/dbunit/dataset/csv/CsvProducerTest.java
@@ -27,9 +27,10 @@
import static org.mockito.Mockito.when;
import java.io.File;
-import java.io.FileInputStream;
+import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
+import java.nio.file.Paths;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -120,9 +121,9 @@ void testProduceAndInsertFromFolder_withCsvDirectory_insertsRowsIntoDatabase()
void testProduce_withTableNameContainingCsvInMiddle_usesFullTableName(
@TempDir final File tempDir) throws Exception
{
- Files.write(new File(tempDir, CsvDataSet.TABLE_ORDERING_FILE).toPath(),
+ Files.write(tempDir.toPath().resolve(CsvDataSet.TABLE_ORDERING_FILE),
"a.csvx\n".getBytes(StandardCharsets.UTF_8));
- Files.write(new File(tempDir, "a.csvx.csv").toPath(),
+ Files.write(tempDir.toPath().resolve("a.csvx.csv"),
"ID, DESCRIPTION\n1, \"first row\"\n"
.getBytes(StandardCharsets.UTF_8));
@@ -150,7 +151,7 @@ void testProduce_withNullCellValue_doesNotThrowNullPointerException(
parsedRows.add(header);
parsedRows.add(nullCellRow);
- Files.write(new File(tempDir, CsvDataSet.TABLE_ORDERING_FILE).toPath(),
+ Files.write(tempDir.toPath().resolve(CsvDataSet.TABLE_ORDERING_FILE),
"orders\n".getBytes(StandardCharsets.UTF_8));
try (MockedConstruction ignored = mockConstruction(
@@ -190,7 +191,7 @@ void testInsertOperationWithCsvFormat_withCsvFormatOperation_insertsCorrectRowCo
{
final Operation operation = new Operation();
operation.setFormat(AbstractStep.FORMAT_CSV);
- operation.setSrc(new File(THE_DIRECTORY));
+ operation.setSrc(Paths.get(THE_DIRECTORY).toFile());
operation.setType("INSERT");
operation.execute(connection);
final Statement statement =
@@ -212,7 +213,7 @@ void testExportTaskWithCsvFormat_withInsertedData_exportsToCsvFiles()
produceAndInsertToDatabase();
final String fromAnt = "target/csv/from-ant";
- final File dir = new File(fromAnt);
+ final File dir = Paths.get(fromAnt).toFile();
FileHelper.deleteDirectory(dir);
try
@@ -233,12 +234,12 @@ void testExportTaskWithCsvFormat_withInsertedData_exportsToCsvFiles()
export.execute(getConnection());
- final File ordersFile = new File(fromAnt + "/orders.csv");
- assertThat(ordersFile).as("file '" + ordersFile.getAbsolutePath()
- + "' does not exists").exists();
- final File ordersRowFile = new File(fromAnt + "/orders_row.csv");
- assertThat(ordersRowFile)
- .as("file " + ordersRowFile + " does not exists").exists();
+ final File ordersFile = Paths.get(fromAnt, "orders.csv").toFile();
+ assertThat(ordersFile).as("File '" + ordersFile.getAbsolutePath()
+ + "' does not exist.").exists();
+ final File ordersRowFile = Paths.get(fromAnt, "orders_row.csv").toFile();
+ assertThat(ordersRowFile).as("File '" + ordersRowFile.getAbsolutePath()
+ + "' does not exist.").exists();
} finally
{
FileHelper.deleteDirectory(dir);
@@ -260,7 +261,7 @@ private IDatabaseConnection getConnection()
protected void setUp() throws Exception
{
final Properties properties = new Properties();
- final FileInputStream inStream =
+ final InputStream inStream =
TestUtils.getFileInputStream("csv/cvs-tests.properties");
properties.load(inStream);
inStream.close();
diff --git a/src/test/java/org/dbunit/dataset/csv/CsvURLProducerTest.java b/src/test/java/org/dbunit/dataset/csv/CsvURLProducerTest.java
index f8d2396f0..ac031a1bf 100644
--- a/src/test/java/org/dbunit/dataset/csv/CsvURLProducerTest.java
+++ b/src/test/java/org/dbunit/dataset/csv/CsvURLProducerTest.java
@@ -24,9 +24,12 @@
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
-import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.file.Paths;
import java.io.IOException;
import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
import java.sql.DriverManager;
import java.sql.ResultSet;
@@ -75,10 +78,12 @@ void testProduceFromFolder_withCsvDirectoryUrl_returnsTwoTablesWithCorrectRowCou
}
@Test
- void testProduceFromJar_withJarFileUrl_returnsTwoTablesWithCorrectRowCounts() throws DataSetException, IOException
+ void testProduceFromJar_withJarFileUrl_returnsTwoTablesWithCorrectRowCounts()
+ throws DataSetException, IOException, URISyntaxException
{
final File file = TestUtils.getFile(THE_DIRECTORY + "/orders.jar");
- final URL jarFile = new URL("jar:" + file.toURL() + "!/");
+ final URI jarUri = new URI("jar:" + file.toURI() + "!/");
+ final URL jarFile = jarUri.toURL();
final CsvURLProducer producer =
new CsvURLProducer(jarFile, CsvDataSet.TABLE_ORDERING_FILE);
doTestWithProducer(producer);
@@ -168,7 +173,7 @@ void testExportTaskWithCsvFormat_withInsertedData_exportsToCsvFiles()
produceAndInsertToDatabase();
final String fromAnt = "target/csv/from-ant";
- final File dir = new File(fromAnt);
+ final File dir = Paths.get(fromAnt).toFile();
try
{
FileHelper.deleteDirectory(dir);
@@ -189,10 +194,10 @@ void testExportTaskWithCsvFormat_withInsertedData_exportsToCsvFiles()
export.execute(getConnection());
- final File ordersFile = new File(fromAnt + "/orders.csv");
+ final File ordersFile = Paths.get(fromAnt, "orders.csv").toFile();
assertThat(ordersFile).as("file '" + ordersFile.getAbsolutePath()
+ "' does not exists").exists();
- final File ordersRowFile = new File(fromAnt + "/orders_row.csv");
+ final File ordersRowFile = Paths.get(fromAnt, "orders_row.csv").toFile();
assertThat(ordersRowFile)
.as("file " + ordersRowFile + " does not exists").exists();
} finally
@@ -216,7 +221,7 @@ private IDatabaseConnection getConnection()
protected void setUp() throws Exception
{
final Properties properties = new Properties();
- final FileInputStream inStream =
+ final InputStream inStream =
TestUtils.getFileInputStream("csv/cvs-tests.properties");
properties.load(inStream);
inStream.close();
diff --git a/src/test/java/org/dbunit/dataset/datatype/BytesDataTypeTest.java b/src/test/java/org/dbunit/dataset/datatype/BytesDataTypeTest.java
index 64ea05418..23a029e22 100644
--- a/src/test/java/org/dbunit/dataset/datatype/BytesDataTypeTest.java
+++ b/src/test/java/org/dbunit/dataset/datatype/BytesDataTypeTest.java
@@ -38,6 +38,7 @@
import java.net.URLStreamHandler;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
+import java.nio.file.Paths;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -155,7 +156,7 @@ public void testTypeCast_withCompatibleInput_returnsExpectedValue() throws Excep
@Test
void testTypeCastFileName_withFilePathValue_returnsFileContentsAsBytes() throws Exception
{
- final File file = new File("LICENSE.txt");
+ final File file = Paths.get("LICENSE.txt").toFile();
final Object[] values = {"[file]" + file.toString(), file.toString(),
file.getAbsolutePath(), file.toURI().toURL().toString(), file,
@@ -177,7 +178,7 @@ void testTypeCastFileName_withFilePathValue_returnsFileContentsAsBytes() throws
@Test
void testLoadFile_afterLoad_fileIsDeletable() throws Exception
{
- final File file = File.createTempFile("BytesDataTypeTest", ".bin");
+ final File file = Files.createTempFile("BytesDataTypeTest", ".bin").toFile();
file.deleteOnExit();
Files.write(file.toPath(), new byte[] {1, 2, 3});
@@ -270,7 +271,7 @@ void testTypeCast_urlCommandUnreachable_throwsTypeCastException()
throws Exception
{
final File missingFile =
- new File("does-not-exist", "dbunit-missing-file.bin");
+ Paths.get("does-not-exist", "dbunit-missing-file.bin").toFile();
final String value = "[url]" + missingFile.toURI().toURL();
final BytesDataType dataType = new BytesDataType("BINARY", Types.BINARY);
@@ -297,6 +298,31 @@ void testTypeCast_untaggedTextFallback_usesUtf8Bytes() throws Exception
.isEqualTo(expected);
}
+ @Test
+ void testTypeCast_untaggedTextWithPathIllegalCharacter_fallsBackToUtf8Bytes()
+ throws Exception
+ {
+ // NUL is illegal in a filesystem path on every OS, so Paths.get()
+ // throws InvalidPathException when BytesDataType tries this value as
+ // a file name; that must not escape typeCast() but instead fall
+ // through to the literal-UTF-8-bytes fallback, same as any other
+ // unusable file name.
+ final String valueWithIllegalPathChar = "not\u0000a-file";
+ final byte[] expected =
+ valueWithIllegalPathChar.getBytes(StandardCharsets.UTF_8);
+ final BytesDataType dataType = new BytesDataType("BINARY", Types.BINARY);
+
+ final Object actual = dataType.typeCast(valueWithIllegalPathChar);
+
+ assertThat(actual)
+ .as("A value that is not valid Base64, not a URL, and not"
+ + " usable as a file path (because Paths.get()"
+ + " rejects it) must still fall back to literal"
+ + " UTF-8 bytes instead of throwing an unchecked"
+ + " exception.")
+ .isEqualTo(expected);
+ }
+
@Test
void testTypeCast_untaggedLongInvalidBase64_fallsBackToUtf8Bytes()
throws Exception
@@ -326,7 +352,7 @@ void testTypeCast_untaggedLongInvalidBase64_fallsBackToUtf8Bytes()
@TurkishDefaultLocale
void testTypeCast_turkishLocaleFileCommand_recognizedAsFileCommand() throws Exception
{
- final File file = File.createTempFile("BytesDataTypeTest", ".bin");
+ final File file = Files.createTempFile("BytesDataTypeTest", ".bin").toFile();
file.deleteOnExit();
final byte[] expected =
"dbunit turkish locale file command test"
diff --git a/src/test/java/org/dbunit/dataset/excel/XlsDataSetTest.java b/src/test/java/org/dbunit/dataset/excel/XlsDataSetTest.java
index d05e772ca..910c0be0a 100644
--- a/src/test/java/org/dbunit/dataset/excel/XlsDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/excel/XlsDataSetTest.java
@@ -23,8 +23,6 @@
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
@@ -81,10 +79,10 @@ public void testCreateMultipleCaseDuplicateDataSet_withDuplicateCaseVariantNames
void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Exception
{
final IDataSet expectedDataSet = createDataSet();
- final File tempFile = File.createTempFile("xlsDataSetTest", ".xls");
+ final File tempFile = Files.createTempFile("xlsDataSetTest", ".xls").toFile();
try
{
- final OutputStream out = new FileOutputStream(tempFile);
+ final OutputStream out = Files.newOutputStream(tempFile.toPath());
// write dataset in temp file
try
@@ -96,7 +94,7 @@ void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Except
}
// load new dataset from temp file
- final InputStream in = new FileInputStream(tempFile);
+ final InputStream in = Files.newInputStream(tempFile.toPath());
try
{
final IDataSet actualDataSet = new XlsDataSet(in);
@@ -143,7 +141,7 @@ void testConstructor_withFile_closesUnderlyingFileStream() throws Exception
// pass even with the leak still present -- it would not be a meaningful regression guard
// there.
final File sourceFile = TestUtils.getFile("xml/dataSetTest.xls");
- final File tempCopy = File.createTempFile("xlsDataSetTest", ".xls");
+ final File tempCopy = Files.createTempFile("xlsDataSetTest", ".xls").toFile();
try
{
Files.copy(sourceFile.toPath(), tempCopy.toPath(),
diff --git a/src/test/java/org/dbunit/dataset/excel/XlsDataSetWriterTest.java b/src/test/java/org/dbunit/dataset/excel/XlsDataSetWriterTest.java
index 7a02a3af4..a234c9732 100644
--- a/src/test/java/org/dbunit/dataset/excel/XlsDataSetWriterTest.java
+++ b/src/test/java/org/dbunit/dataset/excel/XlsDataSetWriterTest.java
@@ -6,14 +6,16 @@
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Map;
import org.apache.poi.ss.usermodel.Workbook;
@@ -24,13 +26,13 @@
class XlsDataSetWriterTest
{
- private static final File OUTPUT_DIR = new File("target", "excel");
+ private static final File OUTPUT_DIR = Paths.get("target", "excel").toFile();
private static final String INPUT_EXCEL_FILE =
"/excel/XlsDataSetWriterCellStyleCaching.xlsx";
- private static final File OUTPUT_EXCEL_FILE = new File(OUTPUT_DIR,
- "XlsDataSetWriterCellStyleCachingTestOutput.xls");
+ private static final File OUTPUT_EXCEL_FILE = OUTPUT_DIR.toPath()
+ .resolve("XlsDataSetWriterCellStyleCachingTestOutput.xls").toFile();
/**
* Test for issue 377. Without 377's changes, test fails with:
@@ -45,11 +47,12 @@ void testTimestampTzOffsets_withManyRowsExceedingCellStyles_doesNotThrowExceptio
final URL excelFileUrl = getClass().getResource(INPUT_EXCEL_FILE);
final URI excelFileUri = excelFileUrl.toURI();
- final File file = new File(excelFileUri);
+ final File file = Paths.get(excelFileUri).toFile();
final IDataSet dataSet = new XlsDataSet(file);
- final FileOutputStream outputStream =
- new FileOutputStream(OUTPUT_EXCEL_FILE);
- assertDoesNotThrow(() -> XlsDataSet.write(dataSet, outputStream));
+ try (OutputStream outputStream = Files.newOutputStream(OUTPUT_EXCEL_FILE.toPath()))
+ {
+ assertDoesNotThrow(() -> XlsDataSet.write(dataSet, outputStream));
+ }
}
@Test
diff --git a/src/test/java/org/dbunit/dataset/excel/XlsTableTimezoneOffsetTest.java b/src/test/java/org/dbunit/dataset/excel/XlsTableTimezoneOffsetTest.java
index fab6f60b3..9594ebc9d 100644
--- a/src/test/java/org/dbunit/dataset/excel/XlsTableTimezoneOffsetTest.java
+++ b/src/test/java/org/dbunit/dataset/excel/XlsTableTimezoneOffsetTest.java
@@ -3,6 +3,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
+import java.nio.file.Paths;
import java.net.URI;
import java.net.URL;
import java.text.DateFormat;
@@ -55,7 +56,7 @@ void testTimestampTzOffsets_withNonUtcTimezone_readsCorrectTimestampValues(final
final URL spreadsheetUrl = getClass().getResource(EXCEL_SPREADSHEET);
final URI spreadsheetUri = spreadsheetUrl.toURI();
- final File spreadsheetFile = new File(spreadsheetUri);
+ final File spreadsheetFile = Paths.get(spreadsheetUri).toFile();
final XlsDataSet xlsDataSet = new XlsDataSet(spreadsheetFile);
table = xlsDataSet.getTable(TABLE_NAME);
diff --git a/src/test/java/org/dbunit/dataset/excel/XlsTableWriteTest.java b/src/test/java/org/dbunit/dataset/excel/XlsTableWriteTest.java
index 36d7d88ad..4c3ea8404 100644
--- a/src/test/java/org/dbunit/dataset/excel/XlsTableWriteTest.java
+++ b/src/test/java/org/dbunit/dataset/excel/XlsTableWriteTest.java
@@ -23,10 +23,9 @@
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import org.dbunit.Assertion;
import org.dbunit.dataset.CompositeTable;
@@ -48,9 +47,9 @@ public class XlsTableWriteTest extends XlsTableTest
@Override
protected IDataSet createDataSet() throws Exception
{
- final File tempFile = File.createTempFile("tableWriteTest", ".xls");
+ final File tempFile = Files.createTempFile("tableWriteTest", ".xls").toFile();
// System.out.println(tempFile.getAbsoluteFile());
- final OutputStream out = new FileOutputStream(tempFile);
+ final OutputStream out = Files.newOutputStream(tempFile.toPath());
try
{
// write source dataset in temp file
@@ -63,7 +62,7 @@ protected IDataSet createDataSet() throws Exception
}
// load new dataset from temp file
- final InputStream in = new FileInputStream(tempFile);
+ final InputStream in = Files.newInputStream(tempFile.toPath());
try
{
return new XlsDataSet(in);
@@ -99,8 +98,8 @@ void testWriteMultipleTable_withFiveTables_writesAllTablesToFile() throws Except
}
final IDataSet dataSet = new DefaultDataSet(tables);
- final File tempFile = File.createTempFile("tableWriteTest", ".xls");
- final OutputStream out = new FileOutputStream(tempFile);
+ final File tempFile = Files.createTempFile("tableWriteTest", ".xls").toFile();
+ final OutputStream out = Files.newOutputStream(tempFile.toPath());
try
{
// write DefaultTable in temp file
@@ -113,7 +112,7 @@ void testWriteMultipleTable_withFiveTables_writesAllTablesToFile() throws Except
}
// load new dataset from temp file
- final FileInputStream in = new FileInputStream(tempFile);
+ final InputStream in = Files.newInputStream(tempFile.toPath());
try
{
final XlsDataSet dataSet2 = new XlsDataSet(in);
diff --git a/src/test/java/org/dbunit/dataset/json/JsonDataSetTest.java b/src/test/java/org/dbunit/dataset/json/JsonDataSetTest.java
index 081bbcf50..dba401532 100644
--- a/src/test/java/org/dbunit/dataset/json/JsonDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/json/JsonDataSetTest.java
@@ -27,13 +27,12 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.Assertion;
import org.dbunit.dataset.AbstractDataSetTest;
@@ -57,7 +56,7 @@ class JsonDataSetTest extends AbstractDataSetTest
@Override
protected IDataSet createDataSet() throws Exception
{
- try (InputStream in = new FileInputStream(TestUtils.getFile("json/dataSetTest.json")))
+ try (InputStream in = Files.newInputStream(TestUtils.getFile("json/dataSetTest.json").toPath()))
{
return new JsonDataSet(in);
}
@@ -66,8 +65,8 @@ protected IDataSet createDataSet() throws Exception
@Override
protected IDataSet createDuplicateDataSet() throws Exception
{
- try (InputStream in =
- new FileInputStream(TestUtils.getFile("json/jsonDataSetDuplicateTest.json")))
+ try (InputStream in = Files.newInputStream(
+ TestUtils.getFile("json/jsonDataSetDuplicateTest.json").toPath()))
{
return new JsonDataSet(in);
}
@@ -109,16 +108,16 @@ public void testGetCaseInsensitiveTableMetaData_withLowercaseTableName_returnsMe
void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Exception
{
final IDataSet expectedDataSet = createDataSet();
- final File tempFile = File.createTempFile("dataSetTest", ".json");
+ final File tempFile = Files.createTempFile("dataSetTest", ".json").toFile();
try
{
- final OutputStream out = new FileOutputStream(tempFile);
+ final OutputStream out = Files.newOutputStream(tempFile.toPath());
try
{
JsonDataSet.write(expectedDataSet, out);
final IDataSet actualDataSet;
- try (InputStream in = new FileInputStream(tempFile))
+ try (InputStream in = Files.newInputStream(tempFile.toPath()))
{
actualDataSet = new JsonDataSet(in);
}
diff --git a/src/test/java/org/dbunit/dataset/json/JsonTableTest.java b/src/test/java/org/dbunit/dataset/json/JsonTableTest.java
index 857cfbb63..190aa996d 100644
--- a/src/test/java/org/dbunit/dataset/json/JsonTableTest.java
+++ b/src/test/java/org/dbunit/dataset/json/JsonTableTest.java
@@ -23,8 +23,8 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileInputStream;
import java.io.InputStream;
+import java.nio.file.Files;
import org.dbunit.dataset.AbstractTableTest;
import org.dbunit.dataset.Column;
@@ -48,9 +48,10 @@ protected ITable createTable() throws Exception
protected IDataSet createDataSet() throws Exception
{
- final InputStream in =
- new FileInputStream(TestUtils.getFile("json/jsonTableTest.json"));
- return new JsonDataSet(in);
+ try (InputStream in = Files.newInputStream(TestUtils.getFile("json/jsonTableTest.json").toPath()))
+ {
+ return new JsonDataSet(in);
+ }
}
@Override
diff --git a/src/test/java/org/dbunit/dataset/stream/StreamingDataSetTest.java b/src/test/java/org/dbunit/dataset/stream/StreamingDataSetTest.java
index d060aed13..1c6ef8683 100644
--- a/src/test/java/org/dbunit/dataset/stream/StreamingDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/stream/StreamingDataSetTest.java
@@ -22,7 +22,8 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.dataset.DataSetException;
import org.dbunit.dataset.ForwardOnlyDataSetTest;
@@ -45,7 +46,7 @@ class StreamingDataSetTest extends ForwardOnlyDataSetTest
protected IDataSet createDataSet() throws Exception
{
final IDataSetProducer source = new FlatXmlProducer(new InputSource(
- new FileReader(FlatXmlDataSetTest.DATASET_FILE)));
+ Files.newBufferedReader(FlatXmlDataSetTest.DATASET_FILE.toPath(), StandardCharsets.UTF_8)));
return new StreamingDataSet(source);
}
diff --git a/src/test/java/org/dbunit/dataset/stream/StreamingTableTest.java b/src/test/java/org/dbunit/dataset/stream/StreamingTableTest.java
index ff2b02300..192490a02 100644
--- a/src/test/java/org/dbunit/dataset/stream/StreamingTableTest.java
+++ b/src/test/java/org/dbunit/dataset/stream/StreamingTableTest.java
@@ -20,7 +20,9 @@
*/
package org.dbunit.dataset.stream;
-import java.io.FileReader;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.dataset.ForwardOnlyTableTest;
import org.dbunit.dataset.ITable;
@@ -41,8 +43,8 @@ public class StreamingTableTest extends ForwardOnlyTableTest
@Override
protected ITable createTable() throws Exception
{
- final FileReader reader =
- new FileReader(FlatXmlDataSetTest.DATASET_FILE);
+ final Reader reader =
+ Files.newBufferedReader(FlatXmlDataSetTest.DATASET_FILE.toPath(), StandardCharsets.UTF_8);
// IDataSetProducer source = new DataSetProducerAdapter(new
// FlatXmlDataSet(reader));
diff --git a/src/test/java/org/dbunit/dataset/xml/FlatDtdDataSetIT.java b/src/test/java/org/dbunit/dataset/xml/FlatDtdDataSetIT.java
index 8995e9363..1eceae5dc 100644
--- a/src/test/java/org/dbunit/dataset/xml/FlatDtdDataSetIT.java
+++ b/src/test/java/org/dbunit/dataset/xml/FlatDtdDataSetIT.java
@@ -25,10 +25,9 @@
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.DatabaseEnvironment;
import org.dbunit.database.IDatabaseConnection;
@@ -96,11 +95,11 @@ void testWriteFromDtd_withValidDtd_writesEquivalentDtdFile() throws Exception
final IDataSet dataSet =
new FlatDtdDataSet(TestUtils.getFileReader(DTD_FILE));
- final File tempFile = File.createTempFile("flatXmlDocType", ".dtd");
+ final File tempFile = Files.createTempFile("flatXmlDocType", ".dtd").toFile();
try
{
- final Writer out = new FileWriter(tempFile);
+ final Writer out = Files.newBufferedWriter(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
@@ -113,7 +112,7 @@ void testWriteFromDtd_withValidDtd_writesEquivalentDtdFile() throws Exception
FileAsserts.assertEquals(
new BufferedReader(TestUtils.getFileReader(DTD_FILE)),
- new BufferedReader(new FileReader(tempFile)));
+ new BufferedReader(Files.newBufferedReader(tempFile.toPath(), StandardCharsets.UTF_8)));
} finally
{
tempFile.delete();
@@ -128,11 +127,11 @@ void testWriteFromDatabase_withDatabaseDataSet_writesEquivalentDtdFile() throws
DatabaseEnvironment.getInstance().getConnection();
final IDataSet dataSet = connection.createDataSet();
- final File tempFile = File.createTempFile("flatXmlDocType", ".dtd");
+ final File tempFile = Files.createTempFile("flatXmlDocType", ".dtd").toFile();
try
{
- final Writer out = new FileWriter(tempFile);
+ final Writer out = Files.newBufferedWriter(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
@@ -146,8 +145,8 @@ void testWriteFromDatabase_withDatabaseDataSet_writesEquivalentDtdFile() throws
}
FileAsserts.assertEquals(
- new BufferedReader(new FileReader(getFile(DTD_FILE))),
- new BufferedReader(new FileReader(tempFile)));
+ new BufferedReader(Files.newBufferedReader(getFile(DTD_FILE).toPath(), StandardCharsets.UTF_8)),
+ new BufferedReader(Files.newBufferedReader(tempFile.toPath(), StandardCharsets.UTF_8)));
} finally
{
tempFile.delete();
diff --git a/src/test/java/org/dbunit/dataset/xml/FlatDtdProducerTest.java b/src/test/java/org/dbunit/dataset/xml/FlatDtdProducerTest.java
index 137a6ff27..1c69f2039 100644
--- a/src/test/java/org/dbunit/dataset/xml/FlatDtdProducerTest.java
+++ b/src/test/java/org/dbunit/dataset/xml/FlatDtdProducerTest.java
@@ -24,9 +24,9 @@
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.File;
-import java.io.FileInputStream;
import java.io.StringReader;
import java.io.StringWriter;
+import java.nio.file.Files;
import org.dbunit.dataset.Column;
import org.dbunit.dataset.DataSetException;
@@ -52,7 +52,7 @@ class FlatDtdProducerTest extends AbstractProducerTest
protected IDataSetProducer createProducer() throws Exception
{
final InputSource source =
- new InputSource(new FileInputStream(DTD_FILE));
+ new InputSource(Files.newInputStream(DTD_FILE.toPath()));
return new FlatDtdProducer(source);
}
diff --git a/src/test/java/org/dbunit/dataset/xml/FlatXmlDataSetTest.java b/src/test/java/org/dbunit/dataset/xml/FlatXmlDataSetTest.java
index 5562e4862..86d321fef 100644
--- a/src/test/java/org/dbunit/dataset/xml/FlatXmlDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/xml/FlatXmlDataSetTest.java
@@ -26,11 +26,12 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
+import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.Assertion;
import org.dbunit.dataset.AbstractDataSetTest;
@@ -138,10 +139,10 @@ void testMissingColumnAndDisableDtdMetadataEnableSensing_withColumnSensing_detec
void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Exception
{
final IDataSet expectedDataSet = createDataSet();
- final File tempFile = File.createTempFile("flatXmlDataSetTest", ".xml");
+ final File tempFile = Files.createTempFile("flatXmlDataSetTest", ".xml").toFile();
try
{
- final Writer out = new FileWriter(tempFile);
+ final Writer out = Files.newBufferedWriter(tempFile.toPath(), StandardCharsets.UTF_8);
// write dataset in temp file
try
@@ -153,7 +154,7 @@ void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Except
}
// load new dataset from temp file
- final FileReader in = new FileReader(tempFile);
+ final Reader in = Files.newBufferedReader(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
final IDataSet actualDataSet =
diff --git a/src/test/java/org/dbunit/dataset/xml/FlatXmlTableWriteTest.java b/src/test/java/org/dbunit/dataset/xml/FlatXmlTableWriteTest.java
index 7739ecdd7..720f8df3e 100644
--- a/src/test/java/org/dbunit/dataset/xml/FlatXmlTableWriteTest.java
+++ b/src/test/java/org/dbunit/dataset/xml/FlatXmlTableWriteTest.java
@@ -22,9 +22,10 @@
package org.dbunit.dataset.xml;
import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
+import java.io.Reader;
import java.io.Writer;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.Assertion;
import org.dbunit.dataset.CompositeTable;
@@ -46,8 +47,8 @@ class FlatXmlTableWriteTest extends FlatXmlTableTest
protected IDataSet createDataSet() throws Exception
{
final File tempFile =
- File.createTempFile("flatXmlTableWriteTest", ".xml");
- final Writer out = new FileWriter(tempFile);
+ Files.createTempFile("flatXmlTableWriteTest", ".xml").toFile();
+ final Writer out = Files.newBufferedWriter(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
// write DefaultTable in temp file
@@ -60,7 +61,7 @@ protected IDataSet createDataSet() throws Exception
}
// load new dataset from temp file
- final FileReader in = new FileReader(tempFile);
+ final Reader in = Files.newBufferedReader(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
return new FlatXmlDataSetBuilder().build(in);
@@ -90,8 +91,8 @@ void testWriteMultipleTable_withFiveTables_writesAndVerifiesAllTables() throws E
final IDataSet dataSet = new DefaultDataSet(tables);
final File tempFile =
- File.createTempFile("flatXmlTableWriteTest", "xml");
- final Writer out = new FileWriter(tempFile);
+ Files.createTempFile("flatXmlTableWriteTest", ".xml").toFile();
+ final Writer out = Files.newBufferedWriter(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
// write DefaultTable in temp file
@@ -104,7 +105,7 @@ void testWriteMultipleTable_withFiveTables_writesAndVerifiesAllTables() throws E
}
// load new dataset from temp file
- final FileReader in = new FileReader(tempFile);
+ final Reader in = Files.newBufferedReader(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
final FlatXmlDataSet xmlDataSet2 =
diff --git a/src/test/java/org/dbunit/dataset/xml/XmlDataSetTest.java b/src/test/java/org/dbunit/dataset/xml/XmlDataSetTest.java
index 3192bdc2e..614fb7b46 100644
--- a/src/test/java/org/dbunit/dataset/xml/XmlDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/xml/XmlDataSetTest.java
@@ -24,12 +24,11 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.Assertion;
import org.dbunit.dataset.AbstractDataSetTest;
@@ -54,23 +53,23 @@ public class XmlDataSetTest extends AbstractDataSetTest
protected IDataSet createDataSet() throws Exception
{
final Reader in =
- new FileReader(TestUtils.getFile("xml/dataSetTest.xml"));
+ Files.newBufferedReader(TestUtils.getFile("xml/dataSetTest.xml").toPath(), StandardCharsets.UTF_8);
return new XmlDataSet(in);
}
@Override
protected IDataSet createDuplicateDataSet() throws Exception
{
- final InputStream in = new FileInputStream(
- TestUtils.getFile("xml/xmlDataSetDuplicateTest.xml"));
+ final InputStream in = Files.newInputStream(
+ TestUtils.getFile("xml/xmlDataSetDuplicateTest.xml").toPath());
return new XmlDataSet(in);
}
@Override
protected IDataSet createMultipleCaseDuplicateDataSet() throws Exception
{
- final InputStream in = new FileInputStream(TestUtils
- .getFile("xml/xmlDataSetDuplicateMultipleCaseTest.xml"));
+ final InputStream in = Files.newInputStream(TestUtils
+ .getFile("xml/xmlDataSetDuplicateMultipleCaseTest.xml").toPath());
return new XmlDataSet(in);
}
@@ -78,10 +77,10 @@ protected IDataSet createMultipleCaseDuplicateDataSet() throws Exception
void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Exception
{
final IDataSet expectedDataSet = createDataSet();
- final File tempFile = File.createTempFile("dataSetTest", ".xml");
+ final File tempFile = Files.createTempFile("dataSetTest", ".xml").toFile();
try
{
- final OutputStream out = new FileOutputStream(tempFile);
+ final OutputStream out = Files.newOutputStream(tempFile.toPath());
try
{
@@ -90,7 +89,7 @@ void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Except
// load new dataset from temp file
final IDataSet actualDataSet =
- new XmlDataSet(new FileReader(tempFile));
+ new XmlDataSet(Files.newBufferedReader(tempFile.toPath(), StandardCharsets.UTF_8));
// verify table count
assertThat(actualDataSet.getTableNames()).as("table count")
diff --git a/src/test/java/org/dbunit/dataset/xml/XmlTableTest.java b/src/test/java/org/dbunit/dataset/xml/XmlTableTest.java
index 11273ac8d..89a5ed0f8 100644
--- a/src/test/java/org/dbunit/dataset/xml/XmlTableTest.java
+++ b/src/test/java/org/dbunit/dataset/xml/XmlTableTest.java
@@ -23,8 +23,9 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileReader;
import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.dataset.AbstractTableTest;
import org.dbunit.dataset.Column;
@@ -50,7 +51,7 @@ protected ITable createTable() throws Exception
protected IDataSet createDataSet() throws Exception
{
final Reader in =
- new FileReader(TestUtils.getFile("xml/xmlTableTest.xml"));
+ Files.newBufferedReader(TestUtils.getFile("xml/xmlTableTest.xml").toPath(), StandardCharsets.UTF_8);
return new XmlDataSet(in);
}
diff --git a/src/test/java/org/dbunit/dataset/xml/XmlTableWriteTest.java b/src/test/java/org/dbunit/dataset/xml/XmlTableWriteTest.java
index ad21362af..fdc3a552c 100644
--- a/src/test/java/org/dbunit/dataset/xml/XmlTableWriteTest.java
+++ b/src/test/java/org/dbunit/dataset/xml/XmlTableWriteTest.java
@@ -22,9 +22,10 @@
package org.dbunit.dataset.xml;
import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
+import java.io.Reader;
import java.io.Writer;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.Assertion;
import org.dbunit.dataset.CompositeTable;
@@ -47,8 +48,8 @@ class XmlTableWriteTest extends XmlTableTest
protected IDataSet createDataSet() throws Exception
{
final File tempFile =
- File.createTempFile("xmlDataSetWriteTest", ".xml");
- final Writer out = new FileWriter(tempFile);
+ Files.createTempFile("xmlDataSetWriteTest", ".xml").toFile();
+ final Writer out = Files.newBufferedWriter(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
// write DefaultTable in temp file
@@ -61,7 +62,7 @@ protected IDataSet createDataSet() throws Exception
}
// load new dataset from temp file
- final FileReader in = new FileReader(tempFile);
+ final Reader in = Files.newBufferedReader(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
return new XmlDataSet(in);
@@ -91,8 +92,8 @@ void testWriteMultipleTable_withFiveTablesWrittenAndReloaded_tablesMatchOriginal
}
final IDataSet dataSet = new DefaultDataSet(tables);
- final File tempFile = File.createTempFile("xmlDataSetWriteTest", "xml");
- final Writer out = new FileWriter(tempFile);
+ final File tempFile = Files.createTempFile("xmlDataSetWriteTest", ".xml").toFile();
+ final Writer out = Files.newBufferedWriter(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
// write DefaultTable in temp file
@@ -105,7 +106,7 @@ void testWriteMultipleTable_withFiveTablesWrittenAndReloaded_tablesMatchOriginal
}
// load new dataset from temp file
- final FileReader in = new FileReader(tempFile);
+ final Reader in = Files.newBufferedReader(tempFile.toPath(), StandardCharsets.UTF_8);
try
{
final XmlDataSet xmlDataSet2 = new XmlDataSet(in);
diff --git a/src/test/java/org/dbunit/dataset/yaml/YmlDataSetTest.java b/src/test/java/org/dbunit/dataset/yaml/YmlDataSetTest.java
index 79177bef6..69dac614a 100644
--- a/src/test/java/org/dbunit/dataset/yaml/YmlDataSetTest.java
+++ b/src/test/java/org/dbunit/dataset/yaml/YmlDataSetTest.java
@@ -25,10 +25,9 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import org.dbunit.Assertion;
import org.dbunit.dataset.AbstractDataSetTest;
@@ -51,15 +50,15 @@ class YmlDataSetTest extends AbstractDataSetTest
protected IDataSet createDataSet() throws Exception
{
final InputStream in =
- new FileInputStream(TestUtils.getFile("yaml/dataSetTest.yml"));
+ Files.newInputStream(TestUtils.getFile("yaml/dataSetTest.yml").toPath());
return new YamlDataSet(in);
}
@Override
protected IDataSet createDuplicateDataSet() throws Exception
{
- final InputStream in = new FileInputStream(
- TestUtils.getFile("yaml/yamlDataSetDuplicateTest.yml"));
+ final InputStream in = Files.newInputStream(
+ TestUtils.getFile("yaml/yamlDataSetDuplicateTest.yml").toPath());
return new YamlDataSet(in);
}
@@ -98,10 +97,10 @@ public void testGetCaseInsensitiveTableMetaData_withLowercaseTableName_returnsMe
void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Exception
{
final IDataSet expectedDataSet = createDataSet();
- final File tempFile = File.createTempFile("dataSetTest", ".yml");
+ final File tempFile = Files.createTempFile("dataSetTest", ".yml").toFile();
try
{
- final OutputStream out = new FileOutputStream(tempFile);
+ final OutputStream out = Files.newOutputStream(tempFile.toPath());
try
{
@@ -110,7 +109,7 @@ void testWrite_withValidDataSet_writesAndReadsBackEquivalentData() throws Except
// load new dataset from temp file
final IDataSet actualDataSet =
- new YamlDataSet(new FileInputStream(tempFile));
+ new YamlDataSet(Files.newInputStream(tempFile.toPath()));
// verify table count
assertThat(actualDataSet.getTableNames()).as("table count")
diff --git a/src/test/java/org/dbunit/dataset/yaml/YmlTableTest.java b/src/test/java/org/dbunit/dataset/yaml/YmlTableTest.java
index 989a16eb4..8fb2c5d87 100644
--- a/src/test/java/org/dbunit/dataset/yaml/YmlTableTest.java
+++ b/src/test/java/org/dbunit/dataset/yaml/YmlTableTest.java
@@ -23,8 +23,8 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileInputStream;
import java.io.InputStream;
+import java.nio.file.Files;
import org.dbunit.dataset.AbstractTableTest;
import org.dbunit.dataset.Column;
@@ -48,8 +48,8 @@ protected ITable createTable() throws Exception
protected IDataSet createDataSet() throws Exception
{
- final InputStream in = new FileInputStream(
- TestUtils.getFile("yaml/yamlTableTest.yml"));
+ final InputStream in = Files.newInputStream(
+ TestUtils.getFile("yaml/yamlTableTest.yml").toPath());
return new YamlDataSet(in);
}
diff --git a/src/test/java/org/dbunit/operation/CompositeOperationIT.java b/src/test/java/org/dbunit/operation/CompositeOperationIT.java
index acc0c1e27..1d4e38055 100644
--- a/src/test/java/org/dbunit/operation/CompositeOperationIT.java
+++ b/src/test/java/org/dbunit/operation/CompositeOperationIT.java
@@ -23,8 +23,9 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileReader;
import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.AbstractDatabaseIT;
import org.dbunit.dataset.IDataSet;
@@ -46,9 +47,12 @@ void testExecute_withDeleteAllAndInsertOperations_resultMatchesExpected() throws
{
final String tableName = "PK_TABLE";
final String columnName = "PK0";
- final Reader in = new FileReader(
- TestUtils.getFile("xml/compositeOperationTest.xml"));
- final IDataSet xmlDataSet = new XmlDataSet(in);
+ final IDataSet xmlDataSet;
+ try (Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/compositeOperationTest.xml").toPath(), StandardCharsets.UTF_8))
+ {
+ xmlDataSet = new XmlDataSet(in);
+ }
// verify table before
final ITable tableBefore = createOrderedTable(tableName, columnName);
diff --git a/src/test/java/org/dbunit/operation/DeleteOperationIT.java b/src/test/java/org/dbunit/operation/DeleteOperationIT.java
index 0d715450e..0abbab8db 100644
--- a/src/test/java/org/dbunit/operation/DeleteOperationIT.java
+++ b/src/test/java/org/dbunit/operation/DeleteOperationIT.java
@@ -24,8 +24,9 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import java.io.FileReader;
import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.AbstractDatabaseIT;
import org.dbunit.database.DatabaseConfig;
@@ -60,8 +61,8 @@ void testGetOperationData_withNoPrimaryKey_throwsNoPrimaryKeyException() throws
@Test
void testExecute_withXmlDataSet_deletesMatchingRowsByPrimaryKey() throws Exception
{
- final Reader in = new FileReader(
- TestUtils.getFile("xml/deleteOperationTest.xml"));
+ final Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/deleteOperationTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet dataSet = new XmlDataSet(in);
testExecute(dataSet);
@@ -71,8 +72,8 @@ void testExecute_withXmlDataSet_deletesMatchingRowsByPrimaryKey() throws Excepti
@Test
void testExecute_withLowerCaseDataSet_deletesMatchingRows() throws Exception
{
- final Reader in = new FileReader(
- TestUtils.getFile("xml/deleteOperationTest.xml"));
+ final Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/deleteOperationTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet dataSet = new XmlDataSet(in);
testExecute(new LowerCaseDataSet(dataSet));
@@ -81,8 +82,8 @@ void testExecute_withLowerCaseDataSet_deletesMatchingRows() throws Exception
@Test
void testExecute_withBatchedStatements_deletesMatchingRowsByPrimaryKey() throws Exception
{
- final Reader in = new FileReader(
- TestUtils.getFile("xml/deleteOperationTest.xml"));
+ final Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/deleteOperationTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet dataSet = new XmlDataSet(in);
_connection.getConfig()
diff --git a/src/test/java/org/dbunit/operation/InsertOperationIT.java b/src/test/java/org/dbunit/operation/InsertOperationIT.java
index bde139188..c05e88c21 100644
--- a/src/test/java/org/dbunit/operation/InsertOperationIT.java
+++ b/src/test/java/org/dbunit/operation/InsertOperationIT.java
@@ -22,9 +22,10 @@
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.FileReader;
import java.io.Reader;
import java.io.StringReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.sql.SQLException;
import org.dbunit.AbstractDatabaseIT;
@@ -68,7 +69,7 @@ void testExecute_withClobData_insertsClobSuccessfully() throws Exception
final String tableName = "CLOB_TABLE";
final Reader in =
- new FileReader(TestUtils.getFile("xml/clobInsertTest.xml"));
+ Files.newBufferedReader(TestUtils.getFile("xml/clobInsertTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet xmlDataSet = new FlatXmlDataSetBuilder().build(in);
assertThat(_connection.getRowCount(tableName)).as("count before")
@@ -94,7 +95,7 @@ void testExecute_withBlobData_insertsBlobSuccessfully() throws Exception
final String tableName = "BLOB_TABLE";
final Reader in =
- new FileReader(TestUtils.getFile("xml/blobInsertTest.xml"));
+ Files.newBufferedReader(TestUtils.getFile("xml/blobInsertTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet xmlDataSet = new FlatXmlDataSetBuilder().build(in);
assertThat(_connection.getRowCount(tableName)).as("count before")
@@ -119,8 +120,8 @@ void testExecute_withSdoGeometryData_insertsSdoGeometrySuccessfully() throws Exc
{
final String tableName = "SDO_GEOMETRY_TABLE";
- final Reader in = new FileReader(
- TestUtils.getFile("xml/sdoGeometryInsertTest.xml"));
+ final Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/sdoGeometryInsertTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet xmlDataSet = new FlatXmlDataSetBuilder().build(in);
assertThat(_connection.getRowCount(tableName)).as("count before")
@@ -145,8 +146,8 @@ void testExecute_withXmlTypeData_insertsXmlTypeSuccessfully() throws Exception
{
final String tableName = "XML_TYPE_TABLE";
- final Reader in = new FileReader(
- TestUtils.getFile("xml/xmlTypeInsertTest.xml"));
+ final Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/xmlTypeInsertTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet xmlDataSet = new FlatXmlDataSetBuilder().build(in);
assertThat(_connection.getRowCount(tableName)).as("count before")
diff --git a/src/test/java/org/dbunit/operation/TransactionOperationIT.java b/src/test/java/org/dbunit/operation/TransactionOperationIT.java
index 903071418..affa38dec 100644
--- a/src/test/java/org/dbunit/operation/TransactionOperationIT.java
+++ b/src/test/java/org/dbunit/operation/TransactionOperationIT.java
@@ -27,8 +27,9 @@
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.verify;
-import java.io.FileReader;
import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.sql.Connection;
import java.sql.SQLException;
@@ -73,8 +74,8 @@ void assumeTransactionsSupported()
void testExecute_withSuccessfulOperation_commitsAndRestoresAutoCommit() throws Exception
{
final String tableName = "TEST_TABLE";
- final Reader in = new FileReader(
- TestUtils.getFile("xml/transactionOperationTest.xml"));
+ final Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/transactionOperationTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet xmlDataSet = new XmlDataSet(in);
final Connection jdbcConnection = _connection.getConnection();
@@ -102,8 +103,8 @@ void testExecute_withSuccessfulOperation_commitsAndRestoresAutoCommit() throws E
void testExecute_withExistingTransaction_throwsExclusiveTransactionException() throws Exception
{
final String tableName = "TEST_TABLE";
- final Reader in = new FileReader(
- TestUtils.getFile("xml/transactionOperationTest.xml"));
+ final Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/transactionOperationTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet xmlDataSet = new XmlDataSet(in);
final Connection jdbcConnection = _connection.getConnection();
@@ -135,8 +136,8 @@ void testExecute_withExistingTransaction_throwsExclusiveTransactionException() t
void testExecute_withFailingOperation_rollsBackAndRestoresAutoCommit() throws Exception
{
final String tableName = "TEST_TABLE";
- final Reader in = new FileReader(
- TestUtils.getFile("xml/transactionOperationTest.xml"));
+ final Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/transactionOperationTest.xml").toPath(), StandardCharsets.UTF_8);
final IDataSet xmlDataSet = new XmlDataSet(in);
final Exception[] exceptions = new Exception[] {new SQLException(),
new DatabaseUnitException(), new RuntimeException(),};
diff --git a/src/test/java/org/dbunit/operation/UpdateOperationIT.java b/src/test/java/org/dbunit/operation/UpdateOperationIT.java
index 76c61f67c..82df9392a 100644
--- a/src/test/java/org/dbunit/operation/UpdateOperationIT.java
+++ b/src/test/java/org/dbunit/operation/UpdateOperationIT.java
@@ -23,8 +23,9 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.fail;
-import java.io.FileReader;
import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import org.dbunit.AbstractDatabaseIT;
import org.dbunit.Assertion;
@@ -262,9 +263,12 @@ void testExecute_withXmlTypeData_updatesXmlTypeSuccessfully() throws Exception
@Test
void testExecute_withXmlDataSet_updatesMatchingRow() throws Exception
{
- final Reader in = new FileReader(
- TestUtils.getFile("xml/updateOperationTest.xml"));
- final IDataSet dataSet = new XmlDataSet(in);
+ final IDataSet dataSet;
+ try (Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/updateOperationTest.xml").toPath(), StandardCharsets.UTF_8))
+ {
+ dataSet = new XmlDataSet(in);
+ }
testExecute(dataSet);
@@ -273,9 +277,12 @@ void testExecute_withXmlDataSet_updatesMatchingRow() throws Exception
@Test
void testExecute_withLowerCaseDataSet_updatesMatchingRow() throws Exception
{
- final Reader in = new FileReader(
- TestUtils.getFile("xml/updateOperationTest.xml"));
- final IDataSet dataSet = new XmlDataSet(in);
+ final IDataSet dataSet;
+ try (Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/updateOperationTest.xml").toPath(), StandardCharsets.UTF_8))
+ {
+ dataSet = new XmlDataSet(in);
+ }
testExecute(new LowerCaseDataSet(dataSet));
}
@@ -283,9 +290,12 @@ void testExecute_withLowerCaseDataSet_updatesMatchingRow() throws Exception
@Test
void testExecute_withForwardOnlyDataSet_updatesMatchingRow() throws Exception
{
- final Reader in = new FileReader(
- TestUtils.getFile("xml/updateOperationTest.xml"));
- final IDataSet dataSet = new XmlDataSet(in);
+ final IDataSet dataSet;
+ try (Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/updateOperationTest.xml").toPath(), StandardCharsets.UTF_8))
+ {
+ dataSet = new XmlDataSet(in);
+ }
testExecute(new ForwardOnlyDataSet(dataSet));
}
@@ -321,9 +331,12 @@ void testExecute_withTableHavingNoPrimaryKey_throwsNoPrimaryKeyException() throw
void testExecute_batchedStatements_allRowsUpdated() throws Exception
{
final String tableName = "PK_TABLE";
- final Reader in =
- new FileReader(TestUtils.getFile("xml/updateOperationTest.xml"));
- final IDataSet dataSet = new XmlDataSet(in);
+ final IDataSet dataSet;
+ try (Reader in = Files.newBufferedReader(
+ TestUtils.getFile("xml/updateOperationTest.xml").toPath(), StandardCharsets.UTF_8))
+ {
+ dataSet = new XmlDataSet(in);
+ }
_connection.getConfig().setFeature(DatabaseConfig.FEATURE_BATCHED_STATEMENTS, true);
diff --git a/src/test/java/org/dbunit/testutil/FileAsserts.java b/src/test/java/org/dbunit/testutil/FileAsserts.java
index f8733d99f..b9872079f 100644
--- a/src/test/java/org/dbunit/testutil/FileAsserts.java
+++ b/src/test/java/org/dbunit/testutil/FileAsserts.java
@@ -22,10 +22,10 @@
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.nio.file.Files;
import org.dbunit.assertion.DefaultFailureHandler;
import org.dbunit.assertion.JUnitFailureFactory;
@@ -170,7 +170,7 @@ public static void assertEquals(InputStream expected, File actual)
new BufferedReader(new InputStreamReader(expected));
BufferedReader actualData = new BufferedReader(
- new InputStreamReader(new FileInputStream(actual)));
+ new InputStreamReader(Files.newInputStream(actual.toPath())));
assertEquals(expectedData, actualData);
}
@@ -186,9 +186,9 @@ public static void assertEquals(File expected, File actual) throws Exception
ASSERT.assertTrue(actual.canRead());
BufferedReader expectedData = new BufferedReader(
- new InputStreamReader(new FileInputStream(expected)));
+ new InputStreamReader(Files.newInputStream(expected.toPath())));
BufferedReader actualData = new BufferedReader(
- new InputStreamReader(new FileInputStream(actual)));
+ new InputStreamReader(Files.newInputStream(actual.toPath())));
assertEquals(expectedData, actualData);
}
}
diff --git a/src/test/java/org/dbunit/testutil/TestUtils.java b/src/test/java/org/dbunit/testutil/TestUtils.java
index 5cbc5fa04..2862db227 100644
--- a/src/test/java/org/dbunit/testutil/TestUtils.java
+++ b/src/test/java/org/dbunit/testutil/TestUtils.java
@@ -22,9 +22,13 @@
package org.dbunit.testutil;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import org.dbunit.DatabaseEnvironment;
@@ -47,7 +51,8 @@ public static String getFileName(String fileName)
public static File getFile(String fileName)
{
- return new File(getFileName(fileName));
+ final Path path = Paths.get(getFileName(fileName));
+ return path.toFile();
}
public static File getFileForDatabaseEnvironment(String originalFileName)
@@ -55,26 +60,28 @@ public static File getFileForDatabaseEnvironment(String originalFileName)
{
String profilePath =
originalFileName.replace(".", "-" + getProfileName() + ".");
- File profileFile = new File(profilePath);
+ File profileFile = Paths.get(profilePath).toFile();
if (profileFile.exists())
{
return profileFile;
} else
{
- return new File(originalFileName);
+ final Path path = Paths.get(originalFileName);
+ return path.toFile();
}
}
- public static FileReader getFileReader(String fileName)
- throws FileNotFoundException
+ public static Reader getFileReader(String fileName) throws IOException
{
- return new FileReader(getFileName(fileName));
+ final Path path = Paths.get(getFileName(fileName));
+ return Files.newBufferedReader(path, StandardCharsets.UTF_8);
}
- public static FileInputStream getFileInputStream(String fileName)
- throws FileNotFoundException
+ public static InputStream getFileInputStream(String fileName)
+ throws IOException
{
- return new FileInputStream(getFileName(fileName));
+ final Path path = Paths.get(getFileName(fileName));
+ return Files.newInputStream(path);
}
}
diff --git a/src/test/java/org/dbunit/util/FileHelperTest.java b/src/test/java/org/dbunit/util/FileHelperTest.java
index a7103684d..01035dbaf 100644
--- a/src/test/java/org/dbunit/util/FileHelperTest.java
+++ b/src/test/java/org/dbunit/util/FileHelperTest.java
@@ -27,6 +27,7 @@
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
+import java.nio.file.Path;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -37,28 +38,32 @@ class FileHelperTest
void testCopyFile_withRegularFiles_copiesContent(
@TempDir final File tempDir) throws IOException
{
- final File srcFile = new File(tempDir, "source.txt");
- Files.write(srcFile.toPath(),
- "content".getBytes(StandardCharsets.UTF_8));
- final File destFile = new File(tempDir, "destination.txt");
+ final Path srcPath = tempDir.toPath().resolve("source.txt");
+ final byte[] content = "content".getBytes(StandardCharsets.UTF_8);
+ Files.write(srcPath, content);
+ final File srcFile = srcPath.toFile();
+ final Path destPath = tempDir.toPath().resolve("destination.txt");
+ final File destFile = destPath.toFile();
FileHelper.copyFile(srcFile, destFile);
assertThat(destFile)
.as("The destination file should contain the source file's bytes.")
- .hasBinaryContent("content".getBytes(StandardCharsets.UTF_8));
+ .hasBinaryContent(content);
}
@Test
void testCopyFile_destinationUnwritable_sourceNotLocked(
@TempDir final File tempDir) throws IOException
{
- final File srcFile = new File(tempDir, "source.txt");
- Files.write(srcFile.toPath(),
- "content".getBytes(StandardCharsets.UTF_8));
+ final Path srcPath = tempDir.toPath().resolve("source.txt");
+ final byte[] content = "content".getBytes(StandardCharsets.UTF_8);
+ Files.write(srcPath, content);
+ final File srcFile = srcPath.toFile();
// A directory is a portable way to make the destination unopenable
// for writing.
- final File destDir = new File(tempDir, "destination-is-a-directory");
+ final Path destDirPath = tempDir.toPath().resolve("destination-is-a-directory");
+ final File destDir = destDirPath.toFile();
assertThat(destDir.mkdir())
.as("Setup: the destination directory must be created.")
.isTrue();