mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2026-05-20 00:00:03 -04:00
543acce8a3
* chore: Update to junit5 for servlet package * chore: Update to junit5 for contrib package * chore: Update to junit5 for common-image package * chore: Update to junit5 for common-lang package * chore: Update to junit5 for entire project files * fix: test case for JPEGImageReaderTest failed for java 8 and 11 assertEquals was using old signature of junit4. * Update common/common-io/src/test/java/com/twelvemonkeys/io/InputStreamAbstractTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update common/common-io/src/test/java/com/twelvemonkeys/io/InputStreamAbstractTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-bmp/src/test/java/com/twelvemonkeys/imageio/plugins/bmp/BMPImageReaderTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageMetadataTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriterTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-core/src/test/java/com/twelvemonkeys/imageio/stream/BufferedChannelImageInputStreamTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-core/src/test/java/com/twelvemonkeys/imageio/stream/BufferedChannelImageInputStreamTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * refactor: few indentation changes and missed test case - review change related to missing test annotation - unwanted new lines inside test case - duplicate assertions * refactor: moved the lambda expression to method reference * review: testNotNullWithParameterNull catch block was never executed. Added the suggested change * Apply suggestions from code review chore: adjust suggested indentation Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-core/src/test/java/com/twelvemonkeys/imageio/util/ImageReaderAbstractTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-core/src/test/java/com/twelvemonkeys/imageio/util/ImageReaderAbstractTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * Update imageio/imageio-core/src/test/java/com/twelvemonkeys/imageio/util/ImageWriterAbstractTest.java Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com> * refactor: using assertTimeout doesnot kill the execution, even if the timeout happens. It is better to use assertTimeoutPreemptively in cases, where we really want to kill the execution after timeout. https://stackoverflow.com/questions/57116801/how-to-fail-a-test-after-a-timeout-is-exceeded-in-junit-5/57116959#57116959 --------- Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com>
119 lines
3.5 KiB
Java
119 lines
3.5 KiB
Java
package com.twelvemonkeys.io;
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.time.Duration;
|
|
import java.util.Arrays;
|
|
import java.util.Random;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
/**
|
|
* SubStreamTest.
|
|
*
|
|
* @author <a href="mailto:harald.kuhr@gmail.com">Harald Kuhr</a>
|
|
* @author last modified by $Author: haraldk$
|
|
* @version $Id: SubStreamTest.java,v 1.0 07/11/2023 haraldk Exp$
|
|
*/
|
|
public class SubStreamTest {
|
|
|
|
private final Random rng = new Random(2918475687L);
|
|
|
|
@SuppressWarnings("resource")
|
|
@Test
|
|
public void testCreateNullStream() {
|
|
assertThrows(IllegalArgumentException.class, () -> {
|
|
new SubStream(null, 42);
|
|
});
|
|
}
|
|
|
|
@Test
|
|
public void testCreateNegativeLength() {
|
|
assertThrows(IllegalArgumentException.class, () -> {
|
|
new SubStream(new ByteArrayInputStream(new byte[1]), -1);
|
|
});
|
|
}
|
|
|
|
@Test
|
|
public void testReadAll() throws IOException {
|
|
byte[] buf = new byte[128];
|
|
rng.nextBytes(buf);
|
|
|
|
try (InputStream stream = new SubStream(new ByteArrayInputStream(buf), buf.length)) {
|
|
for (byte b : buf) {
|
|
assertEquals(b, (byte) stream.read());
|
|
}
|
|
|
|
assertEquals(-1, stream.read());
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testReadAllArray() throws IOException {
|
|
byte[] buf = new byte[128];
|
|
rng.nextBytes(buf);
|
|
|
|
try (InputStream stream = new SubStream(new ByteArrayInputStream(buf), buf.length)) {
|
|
byte[] temp = new byte[buf.length / 4];
|
|
for (int i = 0; i < 4; i++) {
|
|
assertEquals(temp.length, stream.read(temp)); // Depends on ByteArrayInputStream specifics...
|
|
assertArrayEquals(Arrays.copyOfRange(buf, i * temp.length, (i + 1) * temp.length), temp);
|
|
}
|
|
|
|
assertEquals(-1, stream.read());
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testSkipAll() throws IOException {
|
|
byte[] buf = new byte[128];
|
|
|
|
try (InputStream stream = new SubStream(new ByteArrayInputStream(buf), buf.length)) {
|
|
assertEquals(128, stream.skip(buf.length)); // Depends on ByteArrayInputStream specifics...
|
|
assertEquals(-1, stream.read());
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("EmptyTryBlock")
|
|
@Test
|
|
public void testCloseConsumesAll() throws IOException {
|
|
ByteArrayInputStream stream = new ByteArrayInputStream(new byte[128]);
|
|
|
|
try (InputStream ignore = new SubStream(stream, 128)) {
|
|
// Nothing here...
|
|
}
|
|
|
|
assertEquals(0, stream.available());
|
|
assertEquals(-1, stream.read());
|
|
}
|
|
|
|
@SuppressWarnings("EmptyTryBlock")
|
|
@Test
|
|
public void testCloseConsumesAllLongStream() throws IOException {
|
|
ByteArrayInputStream stream = new ByteArrayInputStream(new byte[256]);
|
|
|
|
try (InputStream ignore = new SubStream(stream, 128)) {
|
|
// Nothing here...
|
|
}
|
|
|
|
assertEquals(128, stream.available());
|
|
assertEquals(0, stream.read());
|
|
}
|
|
|
|
@SuppressWarnings("EmptyTryBlock")
|
|
@Test
|
|
public void testCloseConsumesAllShortStream() throws IOException {
|
|
assertTimeoutPreemptively(Duration.ofMillis(500), () -> {
|
|
ByteArrayInputStream stream = new ByteArrayInputStream(new byte[13]);
|
|
|
|
try (InputStream ignore = new SubStream(stream, 42)) {
|
|
// Nothing here...
|
|
}
|
|
|
|
assertEquals(0, stream.available());
|
|
assertEquals(-1, stream.read());
|
|
});
|
|
}
|
|
} |