You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/06/23 23:18:38 UTC

[commons-io] branch master updated (c9c9cc02 -> 23460adf)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git


    from c9c9cc02 [IO-804] FileUtils.forceMkdirParent api doc is likely incorrect
     new 44876fcd Better internal name
     new 23460adf Add IOIntSupplier

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/changes/changes.xml                            | 12 ++++
 .../{IOSupplier.java => IOIntSupplier.java}        | 15 ++--
 .../{IOSupplier.java => IOLongSupplier.java}       | 15 ++--
 .../org/apache/commons/io/function/Uncheck.java    | 32 +++++++++
 .../apache/commons/io/input/ReaderInputStream.java | 16 ++---
 .../apache/commons/io/FileCleaningTrackerTest.java | 80 +++++++++++-----------
 ...{IOSupplierTest.java => IOIntSupplierTest.java} | 32 ++++-----
 ...IOSupplierTest.java => IOLongSupplierTest.java} | 34 ++++-----
 .../apache/commons/io/function/IOSupplierTest.java |  4 +-
 .../apache/commons/io/function/TestConstants.java  |  4 ++
 .../org/apache/commons/io/function/TestUtils.java  | 24 +++++++
 .../apache/commons/io/function/UncheckTest.java    | 14 +++-
 .../io/input/CharSequenceInputStreamTest.java      | 26 +++----
 .../commons/io/input/ReaderInputStreamTest.java    | 15 ++--
 14 files changed, 203 insertions(+), 120 deletions(-)
 copy src/main/java/org/apache/commons/io/function/{IOSupplier.java => IOIntSupplier.java} (82%)
 copy src/main/java/org/apache/commons/io/function/{IOSupplier.java => IOLongSupplier.java} (82%)
 copy src/test/java/org/apache/commons/io/function/{IOSupplierTest.java => IOIntSupplierTest.java} (63%)
 copy src/test/java/org/apache/commons/io/function/{IOSupplierTest.java => IOLongSupplierTest.java} (61%)


[commons-io] 02/02: Add IOIntSupplier

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git

commit 23460adf8c5e236d2c4e291fba8c09c556ec1868
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Jun 23 19:18:33 2023 -0400

    Add IOIntSupplier
    
    - Add Uncheck.getAsInt(IOIntSupplier)
    - Add IOLongSupplier
    - Add Uncheck.getAsLong(IOLongSupplier)
---
 src/changes/changes.xml                            | 12 ++++
 .../apache/commons/io/function/IOIntSupplier.java  | 49 +++++++++++++
 .../apache/commons/io/function/IOLongSupplier.java | 49 +++++++++++++
 .../org/apache/commons/io/function/Uncheck.java    | 32 +++++++++
 .../apache/commons/io/input/ReaderInputStream.java | 16 ++---
 .../apache/commons/io/FileCleaningTrackerTest.java | 80 +++++++++++-----------
 .../commons/io/function/IOIntSupplierTest.java     | 69 +++++++++++++++++++
 .../commons/io/function/IOLongSupplierTest.java    | 69 +++++++++++++++++++
 .../apache/commons/io/function/TestConstants.java  |  4 ++
 .../org/apache/commons/io/function/TestUtils.java  | 24 +++++++
 .../apache/commons/io/function/UncheckTest.java    | 14 +++-
 .../io/input/CharSequenceInputStreamTest.java      | 26 +++----
 .../commons/io/input/ReaderInputStreamTest.java    | 15 ++--
 13 files changed, 390 insertions(+), 69 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index eed27eea..447d6f12 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -61,6 +61,18 @@ The <action> type attribute can be add,update,fix,remove.
       <action dev="ggregory" type="add" due-to="Gary Gregory">
         Add FilesUncheck.find(Path, int, BiPredicate%lt;Path, BasicFileAttributes&gt;, FileVisitOption...)
       </action>
+      <action dev="ggregory" type="add" due-to="Gary Gregory">
+        Add IOIntSupplier.
+      </action>
+      <action dev="ggregory" type="add" due-to="Gary Gregory">
+        Add Uncheck.getAsInt(IOIntSupplier).
+      </action>
+      <action dev="ggregory" type="add" due-to="Gary Gregory">
+        Add IOLongSupplier.
+      </action>
+      <action dev="ggregory" type="add" due-to="Gary Gregory">
+        Add Uncheck.getAsLong(IOLongSupplier).
+      </action>
       <!-- FIX -->
       <action dev="ggregory" type="fix" issue="IO-799" due-to="Jeroen van der Vegt, Gary Gregory">
         ReaderInputStream.read() throws an exception instead of returning -1 when called again after returning -1.
diff --git a/src/main/java/org/apache/commons/io/function/IOIntSupplier.java b/src/main/java/org/apache/commons/io/function/IOIntSupplier.java
new file mode 100644
index 00000000..420498b7
--- /dev/null
+++ b/src/main/java/org/apache/commons/io/function/IOIntSupplier.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.io.function;
+
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.util.function.IntSupplier;
+import java.util.function.Supplier;
+
+/**
+ * Like {@link IntSupplier} but throws {@link IOException}.
+ *
+ * @since 2.14.0
+ */
+@FunctionalInterface
+public interface IOIntSupplier {
+
+    /**
+     * Creates a {@link Supplier} for this instance that throws {@link UncheckedIOException} instead of {@link IOException}.
+     *
+     * @return an UncheckedIOException Supplier.
+     */
+    default IntSupplier asIntSupplier() {
+        return () -> Uncheck.getAsInt(this);
+    }
+
+    /**
+     * Gets a result.
+     *
+     * @return a result
+     * @throws IOException if an I/O error occurs.
+     */
+    int getAsInt() throws IOException;
+}
diff --git a/src/main/java/org/apache/commons/io/function/IOLongSupplier.java b/src/main/java/org/apache/commons/io/function/IOLongSupplier.java
new file mode 100644
index 00000000..ff5181c8
--- /dev/null
+++ b/src/main/java/org/apache/commons/io/function/IOLongSupplier.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.io.function;
+
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.util.function.LongSupplier;
+import java.util.function.Supplier;
+
+/**
+ * Like {@link IOLongSupplier} but throws {@link IOException}.
+ *
+ * @since 2.14.0
+ */
+@FunctionalInterface
+public interface IOLongSupplier {
+
+    /**
+     * Creates a {@link Supplier} for this instance that throws {@link UncheckedIOException} instead of {@link IOException}.
+     *
+     * @return an UncheckedIOException Supplier.
+     */
+    default LongSupplier asSupplier() {
+        return () -> Uncheck.getAsLong(this);
+    }
+
+    /**
+     * Gets a result.
+     *
+     * @return a result
+     * @throws IOException if an I/O error occurs.
+     */
+    long getAsLong() throws IOException;
+}
diff --git a/src/main/java/org/apache/commons/io/function/Uncheck.java b/src/main/java/org/apache/commons/io/function/Uncheck.java
index e18937f8..3c272da6 100644
--- a/src/main/java/org/apache/commons/io/function/Uncheck.java
+++ b/src/main/java/org/apache/commons/io/function/Uncheck.java
@@ -199,6 +199,38 @@ public final class Uncheck {
         }
     }
 
+    /**
+     * Gets the result from an IO int supplier.
+     *
+     * @param supplier Supplies the return value.
+     * @return result from the supplier.
+     * @throws UncheckedIOException if an I/O error occurs.
+     * @since 2.14.0
+     */
+    public static int getAsInt(final IOIntSupplier supplier) {
+        try {
+            return supplier.getAsInt();
+        } catch (final IOException e) {
+            throw wrap(e);
+        }
+    }
+
+    /**
+     * Gets the result from an IO long supplier.
+     *
+     * @param supplier Supplies the return value.
+     * @return result from the supplier.
+     * @throws UncheckedIOException if an I/O error occurs.
+     * @since 2.14.0
+     */
+    public static long getAsLong(final IOLongSupplier supplier) {
+        try {
+            return supplier.getAsLong();
+        } catch (final IOException e) {
+            throw wrap(e);
+        }
+    }
+
     /**
      * Runs an IO runnable.
      *
diff --git a/src/main/java/org/apache/commons/io/input/ReaderInputStream.java b/src/main/java/org/apache/commons/io/input/ReaderInputStream.java
index bba17caa..cfe79fc1 100644
--- a/src/main/java/org/apache/commons/io/input/ReaderInputStream.java
+++ b/src/main/java/org/apache/commons/io/input/ReaderInputStream.java
@@ -148,14 +148,6 @@ public class ReaderInputStream extends InputStream {
 
     }
 
-    private static CharsetEncoder newEncoder(final Charset charset) {
-        // @formatter:off
-        return Charsets.toCharset(charset).newEncoder()
-                .onMalformedInput(CodingErrorAction.REPLACE)
-                .onUnmappableCharacter(CodingErrorAction.REPLACE);
-        // @formatter:on
-    }
-
     /**
      * Constructs a new {@link Builder}.
      *
@@ -179,6 +171,14 @@ public class ReaderInputStream extends InputStream {
         return charsetEncoder.maxBytesPerChar() * 2;
     }
 
+    private static CharsetEncoder newEncoder(final Charset charset) {
+        // @formatter:off
+        return Charsets.toCharset(charset).newEncoder()
+                .onMalformedInput(CodingErrorAction.REPLACE)
+                .onUnmappableCharacter(CodingErrorAction.REPLACE);
+        // @formatter:on
+    }
+
     private final Reader reader;
 
     private final CharsetEncoder charsetEncoder;
diff --git a/src/test/java/org/apache/commons/io/FileCleaningTrackerTest.java b/src/test/java/org/apache/commons/io/FileCleaningTrackerTest.java
index 579fcfce..b5074515 100644
--- a/src/test/java/org/apache/commons/io/FileCleaningTrackerTest.java
+++ b/src/test/java/org/apache/commons/io/FileCleaningTrackerTest.java
@@ -111,46 +111,6 @@ public class FileCleaningTrackerTest extends AbstractTempDirTest {
         theInstance = null;
     }
 
-    @Test
-    public void testFileCleanerDirectoryFileSource() throws Exception {
-        TestUtils.createFile(testFile, 100);
-        assertTrue(testFile.exists());
-        assertTrue(tempDirFile.exists());
-
-        Object obj = new Object();
-        assertEquals(0, theInstance.getTrackCount());
-        theInstance.track(tempDirFile, obj);
-        assertEquals(1, theInstance.getTrackCount());
-
-        obj = null;
-
-        waitUntilTrackCount();
-
-        assertEquals(0, theInstance.getTrackCount());
-        assertTrue(testFile.exists());  // not deleted, as dir not empty
-        assertTrue(testFile.getParentFile().exists());  // not deleted, as dir not empty
-    }
-
-    @Test
-    public void testFileCleanerDirectoryPathSource() throws Exception {
-        TestUtils.createFile(testPath, 100);
-        assertTrue(Files.exists(testPath));
-        assertTrue(Files.exists(tempDirPath));
-
-        Object obj = new Object();
-        assertEquals(0, theInstance.getTrackCount());
-        theInstance.track(tempDirPath, obj);
-        assertEquals(1, theInstance.getTrackCount());
-
-        obj = null;
-
-        waitUntilTrackCount();
-
-        assertEquals(0, theInstance.getTrackCount());
-        assertTrue(Files.exists(testPath));  // not deleted, as dir not empty
-        assertTrue(Files.exists(testPath.getParent()));  // not deleted, as dir not empty
-    }
-
     @Test
     public void testFileCleanerDirectory_ForceStrategy_FileSource() throws Exception {
         if (!testFile.getParentFile().exists()) {
@@ -227,6 +187,46 @@ public class FileCleaningTrackerTest extends AbstractTempDirTest {
         assertTrue(testFile.getParentFile().exists());  // not deleted, as dir not empty
     }
 
+    @Test
+    public void testFileCleanerDirectoryFileSource() throws Exception {
+        TestUtils.createFile(testFile, 100);
+        assertTrue(testFile.exists());
+        assertTrue(tempDirFile.exists());
+
+        Object obj = new Object();
+        assertEquals(0, theInstance.getTrackCount());
+        theInstance.track(tempDirFile, obj);
+        assertEquals(1, theInstance.getTrackCount());
+
+        obj = null;
+
+        waitUntilTrackCount();
+
+        assertEquals(0, theInstance.getTrackCount());
+        assertTrue(testFile.exists());  // not deleted, as dir not empty
+        assertTrue(testFile.getParentFile().exists());  // not deleted, as dir not empty
+    }
+
+    @Test
+    public void testFileCleanerDirectoryPathSource() throws Exception {
+        TestUtils.createFile(testPath, 100);
+        assertTrue(Files.exists(testPath));
+        assertTrue(Files.exists(tempDirPath));
+
+        Object obj = new Object();
+        assertEquals(0, theInstance.getTrackCount());
+        theInstance.track(tempDirPath, obj);
+        assertEquals(1, theInstance.getTrackCount());
+
+        obj = null;
+
+        waitUntilTrackCount();
+
+        assertEquals(0, theInstance.getTrackCount());
+        assertTrue(Files.exists(testPath));  // not deleted, as dir not empty
+        assertTrue(Files.exists(testPath.getParent()));  // not deleted, as dir not empty
+    }
+
     @Test
     public void testFileCleanerExitWhenFinished_NoTrackAfter() {
         assertFalse(theInstance.exitWhenFinished);
diff --git a/src/test/java/org/apache/commons/io/function/IOIntSupplierTest.java b/src/test/java/org/apache/commons/io/function/IOIntSupplierTest.java
new file mode 100644
index 00000000..b23f8f67
--- /dev/null
+++ b/src/test/java/org/apache/commons/io/function/IOIntSupplierTest.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.io.function;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+/**
+ * Tests {@link IOIntSupplier}.
+ */
+public class IOIntSupplierTest {
+
+    private AtomicInteger atomicInt;
+
+    private int getThrowsIO(final IOIntSupplier supplier) throws IOException {
+        return supplier.getAsInt();
+    }
+
+    private int getThrowsNone(final IOIntSupplier supplier) {
+        return supplier.asIntSupplier().getAsInt();
+    }
+
+    @BeforeEach
+    public void initEach() {
+        atomicInt = new AtomicInteger();
+    }
+
+    @Test
+    public void testAsSupplier() {
+        assertThrows(UncheckedIOException.class, () -> TestConstants.THROWING_IO_INT_SUPPLIER.asIntSupplier().getAsInt());
+        assertEquals(1, getThrowsNone(() -> TestUtils.compareAndSetThrowsIO(atomicInt, 1)));
+        assertEquals(1, atomicInt.get());
+        assertNotEquals(TestConstants.THROWING_IO_INT_SUPPLIER.asIntSupplier(), TestConstants.THROWING_IO_INT_SUPPLIER.asIntSupplier());
+    }
+
+    @Test
+    public void testGet() throws IOException {
+        assertThrows(IOException.class, () -> TestConstants.THROWING_IO_INT_SUPPLIER.getAsInt());
+        assertThrows(IOException.class, () -> {
+            throw new IOException();
+        });
+        assertEquals(1, getThrowsIO(() -> TestUtils.compareAndSetThrowsIO(atomicInt, 1)));
+        assertEquals(1, atomicInt.get());
+    }
+
+}
\ No newline at end of file
diff --git a/src/test/java/org/apache/commons/io/function/IOLongSupplierTest.java b/src/test/java/org/apache/commons/io/function/IOLongSupplierTest.java
new file mode 100644
index 00000000..07748ded
--- /dev/null
+++ b/src/test/java/org/apache/commons/io/function/IOLongSupplierTest.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.io.function;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+/**
+ * Tests {@link IOLongSupplier}.
+ */
+public class IOLongSupplierTest {
+
+    private AtomicLong atomicLong;
+
+    private long getThrowsIO(final IOLongSupplier supplier) throws IOException {
+        return supplier.getAsLong();
+    }
+
+    private long getThrowsNone(final IOLongSupplier supplier) {
+        return supplier.asSupplier().getAsLong();
+    }
+
+    @BeforeEach
+    public void initEach() {
+        atomicLong = new AtomicLong();
+    }
+
+    @Test
+    public void testAsSupplier() throws IOException {
+        assertThrows(UncheckedIOException.class, () -> TestConstants.THROWING_IO_LONG_SUPPLIER.asSupplier().getAsLong());
+        assertEquals(1L, getThrowsNone(() -> TestUtils.compareAndSetThrowsIO(atomicLong, 1L)));
+        assertEquals(1L, atomicLong.get());
+        assertNotEquals(TestConstants.THROWING_IO_LONG_SUPPLIER.asSupplier(), TestConstants.THROWING_IO_LONG_SUPPLIER.asSupplier());
+    }
+
+    @Test
+    public void testGet() throws IOException {
+        assertThrows(IOException.class, () -> TestConstants.THROWING_IO_LONG_SUPPLIER.getAsLong());
+        assertThrows(IOException.class, () -> {
+            throw new IOException();
+        });
+        assertEquals(1L, getThrowsIO(() -> TestUtils.compareAndSetThrowsIO(atomicLong, 1L)));
+        assertEquals(1L, atomicLong.get());
+    }
+
+}
\ No newline at end of file
diff --git a/src/test/java/org/apache/commons/io/function/TestConstants.java b/src/test/java/org/apache/commons/io/function/TestConstants.java
index 5f0581c7..bafe7ef0 100644
--- a/src/test/java/org/apache/commons/io/function/TestConstants.java
+++ b/src/test/java/org/apache/commons/io/function/TestConstants.java
@@ -44,6 +44,10 @@ class TestConstants {
 
     static IOFunction<Object, Object> THROWING_IO_FUNCTION = t -> throwIOException();
 
+    static IOIntSupplier THROWING_IO_INT_SUPPLIER = () -> throwIOException();
+
+    static IOLongSupplier THROWING_IO_LONG_SUPPLIER = () -> throwIOException();
+
     static IOPredicate<Object> THROWING_IO_PREDICATE = t -> throwIOException();
 
     static IOQuadFunction<Object, Object, Object, Object, Object> THROWING_IO_QUAD_FUNCTION = (t, u, v, w) -> throwIOException();
diff --git a/src/test/java/org/apache/commons/io/function/TestUtils.java b/src/test/java/org/apache/commons/io/function/TestUtils.java
index 9b6f3aa7..9d05f026 100644
--- a/src/test/java/org/apache/commons/io/function/TestUtils.java
+++ b/src/test/java/org/apache/commons/io/function/TestUtils.java
@@ -18,10 +18,34 @@
 package org.apache.commons.io.function;
 
 import java.io.IOException;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.AtomicReference;
 
 class TestUtils {
 
+    static int compareAndSetThrowsIO(final AtomicInteger ref, final int update) throws IOException {
+        return compareAndSetThrowsIO(ref, 0, update);
+    }
+
+    static int compareAndSetThrowsIO(final AtomicInteger ref, final int expected, final int update) throws IOException {
+        if (!ref.compareAndSet(expected, update)) {
+            throw new IOException("Unexpected");
+        }
+        return ref.get(); // same as update
+    }
+
+    static long compareAndSetThrowsIO(final AtomicLong ref, final long update) throws IOException {
+        return compareAndSetThrowsIO(ref, 0, update);
+    }
+
+    static long compareAndSetThrowsIO(final AtomicLong ref, final long expected, final long update) throws IOException {
+        if (!ref.compareAndSet(expected, update)) {
+            throw new IOException("Unexpected");
+        }
+        return ref.get(); // same as update
+    }
+
     static <T> T compareAndSetThrowsIO(final AtomicReference<T> ref, final T update) throws IOException {
         return compareAndSetThrowsIO(ref, null, update);
     }
diff --git a/src/test/java/org/apache/commons/io/function/UncheckTest.java b/src/test/java/org/apache/commons/io/function/UncheckTest.java
index ee73abc6..fedd08a2 100644
--- a/src/test/java/org/apache/commons/io/function/UncheckTest.java
+++ b/src/test/java/org/apache/commons/io/function/UncheckTest.java
@@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
 import java.io.UncheckedIOException;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.junit.jupiter.api.BeforeEach;
@@ -36,8 +37,8 @@ public class UncheckTest {
     private AtomicReference<String> ref1;
     private AtomicReference<String> ref2;
     private AtomicReference<String> ref3;
-
     private AtomicReference<String> ref4;
+    private AtomicInteger atomicInt;
 
     @BeforeEach
     public void initEach() {
@@ -45,6 +46,7 @@ public class UncheckTest {
         ref2 = new AtomicReference<>();
         ref3 = new AtomicReference<>();
         ref4 = new AtomicReference<>();
+        atomicInt = new AtomicInteger();
     }
 
     @Test
@@ -158,6 +160,16 @@ public class UncheckTest {
         assertEquals("new1", ref1.get());
     }
 
+    @Test
+    public void testGetAsInt() {
+        assertThrows(UncheckedIOException.class, () -> Uncheck.getAsInt(() -> {
+            throw new IOException();
+        }));
+        assertThrows(UncheckedIOException.class, () -> Uncheck.getAsInt(TestConstants.THROWING_IO_INT_SUPPLIER));
+        assertEquals(1, Uncheck.getAsInt(() -> TestUtils.compareAndSetThrowsIO(atomicInt, 1)));
+        assertEquals(1, atomicInt.get());
+    }
+
     @Test
     public void testRun() {
         assertThrows(UncheckedIOException.class, () -> Uncheck.run(() -> {
diff --git a/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java b/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java
index 97c3f1d3..7bc997e0 100644
--- a/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java
+++ b/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java
@@ -425,19 +425,6 @@ public class CharSequenceInputStreamTest {
         }
     }
 
-    private void testSingleByteRead(final String testString, final String charsetName) throws IOException {
-        final byte[] bytes = testString.getBytes(charsetName);
-        try (InputStream in = new CharSequenceInputStream(testString, charsetName, 512)) {
-            for (final byte b : bytes) {
-                final int read = in.read();
-                assertTrue(read >= 0, "read " + read + " >=0 ");
-                assertTrue(read <= 255, "read " + read + " <= 255");
-                assertEquals(b, (byte) read, "Should agree with input");
-            }
-            assertEquals(-1, in.read());
-        }
-    }
-
     @Test
     public void testResetCharset() {
         assertNotNull(CharSequenceInputStream.builder().setReader(new StringReader("\uD800")).setCharset((Charset) null).getCharset());
@@ -453,6 +440,19 @@ public class CharSequenceInputStreamTest {
         assertNotNull(CharSequenceInputStream.builder().setReader(new StringReader("\uD800")).setCharset((String) null).getCharset());
     }
 
+    private void testSingleByteRead(final String testString, final String charsetName) throws IOException {
+        final byte[] bytes = testString.getBytes(charsetName);
+        try (InputStream in = new CharSequenceInputStream(testString, charsetName, 512)) {
+            for (final byte b : bytes) {
+                final int read = in.read();
+                assertTrue(read >= 0, "read " + read + " >=0 ");
+                assertTrue(read <= 255, "read " + read + " <= 255");
+                assertEquals(b, (byte) read, "Should agree with input");
+            }
+            assertEquals(-1, in.read());
+        }
+    }
+
     @Test
     public void testSingleByteRead_RequiredCharsets() throws IOException {
         for (final String csName : getRequiredCharsetNames()) {
diff --git a/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java b/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java
index fb0636d4..7aaaa3d9 100644
--- a/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java
+++ b/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java
@@ -37,6 +37,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.stream.Stream;
 
 import javax.xml.parsers.DocumentBuilderFactory;
+
 import org.apache.commons.io.IOUtils;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
@@ -202,13 +203,6 @@ public class ReaderInputStreamTest {
         }
     }
 
-    @Test
-    public void testIo803StringReaderSanityCheck() {
-        final StringReader reader = new StringReader("");
-        final InputSource inputSource = new InputSource(reader);
-        assertThrows(SAXException.class, () -> DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputSource));
-    }
-
     @Test
     public void testIo803SAXException() throws IOException {
         final StringReader reader = new StringReader("");
@@ -218,6 +212,13 @@ public class ReaderInputStreamTest {
         }
     }
 
+    @Test
+    public void testIo803StringReaderSanityCheck() {
+        final StringReader reader = new StringReader("");
+        final InputSource inputSource = new InputSource(reader);
+        assertThrows(SAXException.class, () -> DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputSource));
+    }
+
     @Test
     public void testLargeUTF8WithBufferedRead() throws IOException {
         testWithBufferedRead(LARGE_TEST_STRING, UTF_8);


[commons-io] 01/02: Better internal name

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git

commit 44876fcd5aa96ae451d0e481ff010e4faf95d8da
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Jun 23 17:59:21 2023 -0400

    Better internal name
---
 src/test/java/org/apache/commons/io/function/IOSupplierTest.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/test/java/org/apache/commons/io/function/IOSupplierTest.java b/src/test/java/org/apache/commons/io/function/IOSupplierTest.java
index 4b18f48f..7a8e94f5 100644
--- a/src/test/java/org/apache/commons/io/function/IOSupplierTest.java
+++ b/src/test/java/org/apache/commons/io/function/IOSupplierTest.java
@@ -35,7 +35,7 @@ public class IOSupplierTest {
 
     private AtomicReference<String> ref1;
 
-    private String getThrows(final IOSupplier<String> supplier) throws IOException {
+    private String getThrowsIO(final IOSupplier<String> supplier) throws IOException {
         return supplier.get();
     }
 
@@ -62,7 +62,7 @@ public class IOSupplierTest {
         assertThrows(IOException.class, () -> {
             throw new IOException();
         });
-        assertEquals("new1", getThrows(() -> TestUtils.compareAndSetThrowsIO(ref1, "new1")));
+        assertEquals("new1", getThrowsIO(() -> TestUtils.compareAndSetThrowsIO(ref1, "new1")));
         assertEquals("new1", ref1.get());
     }