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 87e6728b401cce27380b6aef1f0625e87c74a220 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Thu May 18 08:23:07 2023 -0400 Update tests to user StringInputStream's builder. --- .../java/org/apache/commons/io/CopyUtilsTest.java | 2 +- .../apache/commons/io/DemuxInputStreamTest.java | 2 +- .../java/org/apache/commons/io/IOUtilsTest.java | 2 +- .../commons/io/input/BOMInputStreamTest.java | 9 +-- .../commons/io/input/CountingInputStreamTest.java | 4 +- .../apache/commons/io/input/StringInputStream.java | 66 +++++++++++----------- .../commons/io/input/StringInputStreamTest.java | 5 +- .../io/input/UncheckedFilterInputStreamTest.java | 3 +- .../io/input/WindowsLineEndingInputStreamTest.java | 3 +- .../commons/io/input/XmlStreamReaderTest.java | 4 +- .../io/input/XmlStreamReaderUtilitiesTest.java | 2 +- .../XmlStreamReaderUtilitiesCompatibilityTest.java | 2 +- 12 files changed, 54 insertions(+), 50 deletions(-) diff --git a/src/test/java/org/apache/commons/io/CopyUtilsTest.java b/src/test/java/org/apache/commons/io/CopyUtilsTest.java index ba9f2d18..81b996a4 100644 --- a/src/test/java/org/apache/commons/io/CopyUtilsTest.java +++ b/src/test/java/org/apache/commons/io/CopyUtilsTest.java @@ -101,7 +101,7 @@ public class CopyUtilsTest { final String inDataStr = "data"; final String charsetName = StandardCharsets.UTF_8.name(); final StringWriter writer = new StringWriter(); - CopyUtils.copy(new StringInputStream(inDataStr, charsetName), writer, charsetName); + CopyUtils.copy(new StringInputStream.Builder().setString(inDataStr).setCharset(charsetName).get(), writer, charsetName); assertEquals(inDataStr, writer.toString()); } diff --git a/src/test/java/org/apache/commons/io/DemuxInputStreamTest.java b/src/test/java/org/apache/commons/io/DemuxInputStreamTest.java index b1176236..ca0f3523 100644 --- a/src/test/java/org/apache/commons/io/DemuxInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/DemuxInputStreamTest.java @@ -140,7 +140,7 @@ public class DemuxInputStreamTest { } private void startReader(final String name, final String data, final DemuxInputStream demux) { - final InputStream input = new StringInputStream(data); + final InputStream input = new StringInputStream.Builder().setString(data).get(); final ReaderThread thread = new ReaderThread(name, input, demux); threadMap.put(name, thread); } diff --git a/src/test/java/org/apache/commons/io/IOUtilsTest.java b/src/test/java/org/apache/commons/io/IOUtilsTest.java index cfbe2526..78391485 100644 --- a/src/test/java/org/apache/commons/io/IOUtilsTest.java +++ b/src/test/java/org/apache/commons/io/IOUtilsTest.java @@ -966,7 +966,7 @@ public class IOUtilsTest { @Test public void testReadFully_InputStream_Offset() throws Exception { - final StringInputStream stream = new StringInputStream("abcd1234", StandardCharsets.UTF_8); + final StringInputStream stream = new StringInputStream.Builder().setString("abcd1234").setCharset(StandardCharsets.UTF_8).get(); final byte[] buffer = "wx00000000".getBytes(StandardCharsets.UTF_8); IOUtils.readFully(stream, buffer, 2, 8); assertEquals("wxabcd1234", new String(buffer, 0, buffer.length, StandardCharsets.UTF_8)); diff --git a/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java b/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java index 50890e8b..94bd53f7 100644 --- a/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java @@ -152,14 +152,15 @@ public class BOMInputStreamTest { return new ByteArrayInputStream(data); } - private boolean doesSaxSupportCharacterSet(final String charSetName) throws ParserConfigurationException, SAXException, IOException { + private boolean doesSaxSupportCharacterSet(final String charsetName) throws ParserConfigurationException, SAXException, IOException { final DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - try (StringInputStream byteStream = new StringInputStream("<?xml version=\"1.0\" encoding=\"" + charSetName + "\"?><Z/>", charSetName)) { + try (StringInputStream byteStream = new StringInputStream.Builder().setString("<?xml version=\"1.0\" encoding=\"" + charsetName + "\"?><Z/>") + .setCharset(charsetName).get()) { final InputSource is = new InputSource(byteStream); - is.setEncoding(charSetName); + is.setEncoding(charsetName); documentBuilder.parse(is); } catch (final SAXParseException e) { - if (e.getMessage().contains(charSetName)) { + if (e.getMessage().contains(charsetName)) { return false; } } diff --git a/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java b/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java index ca7083a0..23851f49 100644 --- a/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java @@ -33,7 +33,7 @@ public class CountingInputStreamTest { @Test public void testCounting() throws Exception { final String text = "A piece of text"; - try (CountingInputStream cis = new CountingInputStream(new StringInputStream(text))) { + try (CountingInputStream cis = new CountingInputStream(new StringInputStream.Builder().setString(text).get())) { // have to declare this larger as we're going to read // off the end of the stream and input stream seems @@ -149,7 +149,7 @@ public class CountingInputStreamTest { @Test public void testSkipping() throws IOException { final String text = "Hello World!"; - try (CountingInputStream cis = new CountingInputStream(new StringInputStream(text))) { + try (CountingInputStream cis = new CountingInputStream(new StringInputStream.Builder().setString(text).get())) { assertEquals(6, cis.skip(6)); assertEquals(6, cis.getCount()); diff --git a/src/test/java/org/apache/commons/io/input/StringInputStream.java b/src/test/java/org/apache/commons/io/input/StringInputStream.java index dc6da34b..e54fc1b4 100644 --- a/src/test/java/org/apache/commons/io/input/StringInputStream.java +++ b/src/test/java/org/apache/commons/io/input/StringInputStream.java @@ -21,56 +21,56 @@ import java.io.InputStream; import java.io.StringReader; import java.nio.charset.Charset; +import org.apache.commons.io.build.AbstractStreamBuilder; + /** * An {@link InputStream} on a String. * - * @since 2.12.0 + * @since 2.13.0 */ public class StringInputStream extends ReaderInputStream { /** - * Creates a new instance on a String. - * - * @param source The source string, MUST not be null. - * @return A new instance. + * Builds a new {@link ReaderInputStream} instance. + * <p> + * For example: + * </p> + * <pre>{@code + * ReaderInputStream s = ReaderInputStream.builder() + * .setString("String") + * .setCharsetEncoder(Charset.defaultCharset()) + * .get()} + * </pre> + * <p> */ - public static StringInputStream on(final String source) { - return new StringInputStream(source); - } + public static class Builder extends AbstractStreamBuilder<StringInputStream, Builder> { - /** - * Creates a new instance on the empty String. - */ - public StringInputStream() { - this("", Charset.defaultCharset()); - } + private String string; - /** - * Creates a new instance on a String. - * - * @param source The source string, MUST not be null. - */ - public StringInputStream(final String source) { - this(source, Charset.defaultCharset()); - } + /** + * Constructs a new instance. + * + * Only uses the String and Charset aspects of this builder. + * @throws UnsupportedOperationException if the origin cannot be converted to a Reader. + */ + @Override + public StringInputStream get() { + return new StringInputStream(string, getCharset()); + } - /** - * Creates a new instance on a String for a Charset. - * - * @param source The source string, MUST not be null. - * @param charset The source charset, MUST not be null. - */ - public StringInputStream(final String source, final Charset charset) { - super(new StringReader(source), charset); - } + public Builder setString(final String string) { + this.string = string; + return this; + } + } /** - * Creates a new instance on a String and for a Charset. + * Creates a new instance on a String for a Charset. * * @param source The source string, MUST not be null. * @param charset The source charset, MUST not be null. */ - public StringInputStream(final String source, final String charset) { + private StringInputStream(final String source, final Charset charset) { super(new StringReader(source), charset); } diff --git a/src/test/java/org/apache/commons/io/input/StringInputStreamTest.java b/src/test/java/org/apache/commons/io/input/StringInputStreamTest.java index 62415104..3b5b36bb 100644 --- a/src/test/java/org/apache/commons/io/input/StringInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/StringInputStreamTest.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.nio.charset.Charset; import org.apache.commons.io.IOUtils; +import org.apache.commons.io.input.StringInputStream.Builder; import org.junit.jupiter.api.Test; /** @@ -32,14 +33,14 @@ public class StringInputStreamTest { @Test public void testStringConstructorString() throws IOException { - try (StringInputStream input = StringInputStream.on("01")) { + try (StringInputStream input = new Builder().setString("01").get()) { assertEquals("01", IOUtils.toString(input, Charset.defaultCharset())); } } @Test public void testStringConstructorStringCharset() throws IOException { - try (StringInputStream input = new StringInputStream("01", Charset.defaultCharset())) { + try (StringInputStream input = new Builder().setString("01").setCharset(Charset.defaultCharset()).get()) { assertEquals("01", IOUtils.toString(input, Charset.defaultCharset())); } } diff --git a/src/test/java/org/apache/commons/io/input/UncheckedFilterInputStreamTest.java b/src/test/java/org/apache/commons/io/input/UncheckedFilterInputStreamTest.java index 3a77acd0..85013db5 100644 --- a/src/test/java/org/apache/commons/io/input/UncheckedFilterInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/UncheckedFilterInputStreamTest.java @@ -41,7 +41,8 @@ public class UncheckedFilterInputStreamTest { @SuppressWarnings("resource") @BeforeEach public void beforeEach() { - stringInputStream = UncheckedFilterInputStream.builder().setInputStream(new BufferedInputStream(new StringInputStream("01"))).get(); + stringInputStream = UncheckedFilterInputStream.builder().setInputStream(new BufferedInputStream(new StringInputStream.Builder().setString("01").get())) + .get(); exception = new IOException("test exception"); brokenInputStream = UncheckedFilterInputStream.builder().setInputStream(new BrokenInputStream(exception)).get(); } diff --git a/src/test/java/org/apache/commons/io/input/WindowsLineEndingInputStreamTest.java b/src/test/java/org/apache/commons/io/input/WindowsLineEndingInputStreamTest.java index f643e6e7..53d2ab7c 100644 --- a/src/test/java/org/apache/commons/io/input/WindowsLineEndingInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/WindowsLineEndingInputStreamTest.java @@ -56,7 +56,8 @@ public class WindowsLineEndingInputStreamTest { } private String roundtrip(final String msg, final boolean ensure) throws IOException { - try (WindowsLineEndingInputStream lf = new WindowsLineEndingInputStream(new StringInputStream(msg, StandardCharsets.UTF_8), ensure)) { + try (WindowsLineEndingInputStream lf = new WindowsLineEndingInputStream( + new StringInputStream.Builder().setString(msg).setCharset(StandardCharsets.UTF_8).get(), ensure)) { final byte[] buf = new byte[100]; final int read = lf.read(buf); return new String(buf, 0, read, StandardCharsets.UTF_8); diff --git a/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java b/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java index e7c1a208..b804a2ed 100644 --- a/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java +++ b/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java @@ -379,7 +379,7 @@ public class XmlStreamReaderTest { public void testHttpContent() throws Exception { final String encoding = UTF_8; final String xml = getXML("no-bom", XML3, encoding, encoding); - try (XmlStreamReader xmlReader = new XmlStreamReader(new StringInputStream(xml, encoding))) { + try (XmlStreamReader xmlReader = new XmlStreamReader(new StringInputStream.Builder().setString(xml).setCharset(encoding).get())) { assertEquals(xmlReader.getEncoding(), encoding, "Check encoding"); assertEquals(xml, IOUtils.toString(xmlReader), "Check content"); } @@ -505,7 +505,7 @@ public class XmlStreamReaderTest { public void testRawContent() throws Exception { final String encoding = UTF_8; final String xml = getXML("no-bom", XML3, encoding, encoding); - try (XmlStreamReader xmlReader = new XmlStreamReader(new StringInputStream(xml, encoding))) { + try (XmlStreamReader xmlReader = new XmlStreamReader(new StringInputStream.Builder().setString(xml).setCharset(encoding).get())) { assertEquals(xmlReader.getEncoding(), encoding, "Check encoding"); assertEquals(xml, IOUtils.toString(xmlReader), "Check content"); } diff --git a/src/test/java/org/apache/commons/io/input/XmlStreamReaderUtilitiesTest.java b/src/test/java/org/apache/commons/io/input/XmlStreamReaderUtilitiesTest.java index d6aac11a..0235dd77 100644 --- a/src/test/java/org/apache/commons/io/input/XmlStreamReaderUtilitiesTest.java +++ b/src/test/java/org/apache/commons/io/input/XmlStreamReaderUtilitiesTest.java @@ -33,7 +33,7 @@ public class XmlStreamReaderUtilitiesTest { /** Mock {@link XmlStreamReader} implementation */ private static class MockXmlStreamReader extends XmlStreamReader { MockXmlStreamReader(final String defaultEncoding) throws IOException { - super(new StringInputStream(), null, true, defaultEncoding); + super(new StringInputStream.Builder().setString("").get(), null, true, defaultEncoding); } } private static final String RAWMGS1 = "encoding mismatch"; diff --git a/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReaderUtilitiesCompatibilityTest.java b/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReaderUtilitiesCompatibilityTest.java index 1127de49..eeaf8d73 100644 --- a/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReaderUtilitiesCompatibilityTest.java +++ b/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReaderUtilitiesCompatibilityTest.java @@ -29,7 +29,7 @@ public class XmlStreamReaderUtilitiesCompatibilityTest extends XmlStreamReaderUt /** Mock {@link XmlStreamReader} implementation */ private static class MockXmlStreamReader extends XmlStreamReader { MockXmlStreamReader(final String defaultEncoding) throws IOException { - super(new StringInputStream(), null, true, defaultEncoding); + super(new StringInputStream.Builder().setString("").get(), null, true, defaultEncoding); } } @Override