aboutsummaryrefslogtreecommitdiffstats
path: root/guava-tests/test/com/google/common/io/ByteSourceTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-tests/test/com/google/common/io/ByteSourceTest.java')
-rw-r--r--guava-tests/test/com/google/common/io/ByteSourceTest.java215
1 files changed, 0 insertions, 215 deletions
diff --git a/guava-tests/test/com/google/common/io/ByteSourceTest.java b/guava-tests/test/com/google/common/io/ByteSourceTest.java
deleted file mode 100644
index 73919f1..0000000
--- a/guava-tests/test/com/google/common/io/ByteSourceTest.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (C) 2012 The Guava Authors
- *
- * Licensed 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 com.google.common.io;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.io.TestOption.CLOSE_THROWS;
-import static com.google.common.io.TestOption.OPEN_THROWS;
-import static com.google.common.io.TestOption.READ_THROWS;
-import static com.google.common.io.TestOption.SKIP_THROWS;
-import static com.google.common.io.TestOption.WRITE_THROWS;
-import static org.junit.Assert.assertArrayEquals;
-
-import com.google.common.base.Charsets;
-import com.google.common.hash.Hashing;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.EnumSet;
-
-/**
- * Tests for the default implementations of {@code ByteSource} methods.
- *
- * @author Colin Decker
- */
-public class ByteSourceTest extends IoTestCase {
-
- private static final byte[] bytes = newPreFilledByteArray(10000);
-
- private TestByteSource source;
-
- @Override
- protected void setUp() throws Exception {
- source = new TestByteSource(bytes);
- }
-
- public void testOpenBufferedStream() throws IOException {
- BufferedInputStream in = source.openBufferedStream();
- assertTrue(source.wasStreamOpened());
- assertFalse(source.wasStreamClosed());
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- ByteStreams.copy(in, out);
- in.close();
- out.close();
-
- assertTrue(source.wasStreamClosed());
- assertArrayEquals(bytes, out.toByteArray());
- }
-
- public void testSize() throws IOException {
- assertEquals(bytes.length, source.size());
- assertTrue(source.wasStreamOpened() && source.wasStreamClosed());
-
- // test that we can get the size even if skip() isn't supported
- assertEquals(bytes.length, new TestByteSource(bytes, SKIP_THROWS).size());
- }
-
- public void testCopyTo_outputStream() throws IOException {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
-
- assertEquals(bytes.length, source.copyTo(out));
- assertTrue(source.wasStreamOpened() && source.wasStreamClosed());
-
- assertArrayEquals(bytes, out.toByteArray());
- }
-
- public void testCopyTo_byteSink() throws IOException {
- TestByteSink sink = new TestByteSink();
-
- assertFalse(sink.wasStreamOpened() || sink.wasStreamClosed());
-
- assertEquals(bytes.length, source.copyTo(sink));
- assertTrue(source.wasStreamOpened() && source.wasStreamClosed());
- assertTrue(sink.wasStreamOpened() && sink.wasStreamClosed());
-
- assertArrayEquals(bytes, sink.getBytes());
- }
-
- public void testRead_toArray() throws IOException {
- assertArrayEquals(bytes, source.read());
- assertTrue(source.wasStreamOpened() && source.wasStreamClosed());
- }
-
- public void testHash() throws IOException {
- ByteSource byteSource = new TestByteSource("hamburger\n".getBytes(Charsets.US_ASCII));
-
- // Pasted this expected string from `echo hamburger | md5sum`
- assertEquals("cfa0c5002275c90508338a5cdb2a9781", byteSource.hash(Hashing.md5()).toString());
- }
-
- public void testContentEquals() throws IOException {
- assertTrue(source.contentEquals(source));
- assertTrue(source.wasStreamOpened() && source.wasStreamClosed());
-
- ByteSource equalSource = new TestByteSource(bytes);
- assertTrue(source.contentEquals(equalSource));
- assertTrue(new TestByteSource(bytes).contentEquals(source));
-
- ByteSource fewerBytes = new TestByteSource(newPreFilledByteArray(bytes.length / 2));
- assertFalse(source.contentEquals(fewerBytes));
-
- byte[] copy = bytes.clone();
- copy[9876] = 1;
- ByteSource oneByteOff = new TestByteSource(copy);
- assertFalse(source.contentEquals(oneByteOff));
- }
-
- public void testSlice() throws IOException {
- // Test preconditions
- try {
- source.slice(-1, 10);
- fail();
- } catch (IllegalArgumentException expected) {
- }
-
- try {
- source.slice(0, -1);
- fail();
- } catch (IllegalArgumentException expected) {
- }
-
- assertCorrectSlice(0, 0, 0, 0);
- assertCorrectSlice(0, 0, 1, 0);
- assertCorrectSlice(100, 0, 10, 10);
- assertCorrectSlice(100, 0, 100, 100);
- assertCorrectSlice(100, 5, 10, 10);
- assertCorrectSlice(100, 5, 100, 95);
- assertCorrectSlice(100, 100, 0, 0);
- assertCorrectSlice(100, 100, 10, 0);
-
- try {
- assertCorrectSlice(100, 101, 10, 0);
- fail();
- } catch (EOFException expected) {
- }
- }
-
- /**
- * @param input the size of the input source
- * @param offset the first argument to {@link ByteStreams#slice}
- * @param length the second argument to {@link ByteStreams#slice}
- * @param expectRead the number of bytes we expect to read
- */
- private static void assertCorrectSlice(
- int input, int offset, long length, int expectRead) throws IOException {
- checkArgument(expectRead == (int) Math.max(0, Math.min(input, offset + length) - offset));
-
- byte[] expected = newPreFilledByteArray(offset, expectRead);
-
- ByteSource source = new TestByteSource(newPreFilledByteArray(input));
- ByteSource slice = source.slice(offset, length);
-
- assertArrayEquals(expected, slice.read());
- }
-
- public void testCopyToStream_doesNotCloseThatStream() throws IOException {
- TestOutputStream out = new TestOutputStream(ByteStreams.nullOutputStream());
- assertFalse(out.closed());
- source.copyTo(out);
- assertFalse(out.closed());
- }
-
- public void testClosesOnErrors_copyingToByteSinkThatThrows() {
- for (TestOption option : EnumSet.of(OPEN_THROWS, WRITE_THROWS, CLOSE_THROWS)) {
- TestByteSource okSource = new TestByteSource(bytes);
- try {
- okSource.copyTo(new TestByteSink(option));
- fail();
- } catch (IOException expected) {
- }
- // ensure stream was closed IF it was opened (depends on implementation whether or not it's
- // opened at all if sink.newOutputStream() throws).
- assertTrue("stream not closed when copying to sink with option: " + option,
- !okSource.wasStreamOpened() || okSource.wasStreamClosed());
- }
- }
-
- public void testClosesOnErrors_whenReadThrows() {
- TestByteSource failSource = new TestByteSource(bytes, READ_THROWS);
- try {
- failSource.copyTo(new TestByteSink());
- fail();
- } catch (IOException expected) {
- }
- assertTrue(failSource.wasStreamClosed());
- }
-
- public void testClosesOnErrors_copyingToOutputStreamThatThrows() {
- TestByteSource okSource = new TestByteSource(bytes);
- try {
- OutputStream out = new TestOutputStream(ByteStreams.nullOutputStream(), WRITE_THROWS);
- okSource.copyTo(out);
- fail();
- } catch (IOException expected) {
- }
- assertTrue(okSource.wasStreamClosed());
- }
-}