blob: a8b6b31ab887101c56b1f15c0ba6ee8e81b2b9b0 [file] [log] [blame]
package org.apache.maven.shared.utils.io;
/*
* 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.
*/
import org.junit.Test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.concurrent.atomic.AtomicBoolean;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@SuppressWarnings( "deprecation" )
public class IOUtilTest
{
private static final long INFINITE_LOOP_TIMEOUT = 500;
@Test
public void closeReaderWithNull()
throws Exception
{
IOUtil.close( (Reader) null );
}
@Test
public void closeWriterWithNull()
throws Exception
{
IOUtil.close( (Writer) null );
}
@Test
public void closeInputStreamWithNull()
throws Exception
{
IOUtil.close( nullInputStream() );
}
@Test
public void closeOutputStreamWithNull()
throws Exception
{
IOUtil.close( nullOutputStream() );
}
@Test
public void closeReaderWithIOE()
throws Exception
{
IOUtil.close( new BufferedReader( new StringReader( emptyString() ) )
{
@Override
public void close()
throws IOException
{
super.close();
throw new IOException( "don't bomb out" );
}
} );
}
@Test
public void closeWriterWithIOE()
throws Exception
{
IOUtil.close( new BufferedWriter( new StringWriter() )
{
@Override
public void close()
throws IOException
{
super.close();
throw new IOException( "don't bomb out" );
}
} );
}
@Test
public void closeInputStreamWithIOE()
throws Exception
{
IOUtil.close( new BufferedInputStream( emptyInputStream() )
{
@Override
public void close()
throws IOException
{
super.close();
throw new IOException( "don't bomb out" );
}
} );
}
@Test
public void closeOutputStreamWithIOE()
throws Exception
{
IOUtil.close( new BufferedOutputStream( new ByteArrayOutputStream() )
{
@Override
public void close()
throws IOException
{
super.close();
throw new IOException( "don't bomb out" );
}
} );
}
@Test
public void closeReaderCloses()
throws Exception
{
final AtomicBoolean closed = new AtomicBoolean( false );
IOUtil.close( new BufferedReader( new StringReader( emptyString() ) )
{
@Override
public void close()
throws IOException
{
closed.set( true );
super.close();
}
} );
assertThat( closed.get(), is( true ) );
}
@Test
public void closeWriterCloses()
throws Exception
{
final AtomicBoolean closed = new AtomicBoolean( false );
IOUtil.close( new BufferedWriter( new StringWriter() )
{
@Override
public void close()
throws IOException
{
closed.set( true );
super.close();
}
} );
assertThat( closed.get(), is( true ) );
}
@Test
public void closeInputStreamCloses()
throws Exception
{
final AtomicBoolean closed = new AtomicBoolean( false );
IOUtil.close( new BufferedInputStream( emptyInputStream() )
{
@Override
public void close()
throws IOException
{
closed.set( true );
super.close();
}
} );
assertThat( closed.get(), is( true ) );
}
@Test
public void closeOutputStreamCloses()
throws Exception
{
final AtomicBoolean closed = new AtomicBoolean( false );
IOUtil.close( new BufferedOutputStream( new ByteArrayOutputStream() )
{
@Override
public void close()
throws IOException
{
closed.set( true );
super.close();
}
} );
assertThat( closed.get(), is( true ) );
}
@Test
public void toByteArrayFromString()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toByteArray( probe ), is( probe.getBytes() ) );
}
@Test
public void toByteArrayFromReader()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toByteArray( new StringReader( probe ) ), is( probe.getBytes() ) );
}
@Test
public void toByteArrayFromInputStream()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toByteArray( new DontCloseByteArrayInputStream( IOUtil.toByteArray( probe ) ) ),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toByteArrayNullString()
throws Exception
{
IOUtil.toByteArray( (String) null );
}
@Test( expected = NullPointerException.class )
public void toByteArrayNullReader()
throws Exception
{
IOUtil.toByteArray( (Reader) null );
}
@Test( expected = NullPointerException.class )
public void toByteArrayNullInputStream()
throws Exception
{
IOUtil.toByteArray( nullInputStream() );
}
@Test( expected = IOException.class )
public void contentEqualNullNull()
throws Exception
{
IOUtil.contentEquals( null, null );
}
@Test( expected = IOException.class )
public void contentEqualNonNullNull()
throws Exception
{
IOUtil.contentEquals( new DontCloseByteArrayInputStream( emptyByteArray() ), null );
}
@Test( expected = IOException.class )
public void contentEqualNullNonNull()
throws Exception
{
IOUtil.contentEquals( new DontCloseByteArrayInputStream( emptyByteArray() ), null );
}
@Test
public void contentEqualEmptyEmpty()
throws Exception
{
assertThat( IOUtil.contentEquals( new DontCloseByteArrayInputStream( emptyByteArray() ),
new DontCloseByteArrayInputStream( emptyByteArray() ) ), is( true ) );
}
@Test
public void contentEqualNonEmptyEmpty()
throws Exception
{
assertThat( IOUtil.contentEquals( new DontCloseByteArrayInputStream( new byte[1] ),
new DontCloseByteArrayInputStream( emptyByteArray() ) ), is( false ) );
}
@Test
public void contentEqualEmptyNonEmpty()
throws Exception
{
assertThat( IOUtil.contentEquals( new DontCloseByteArrayInputStream( emptyByteArray() ),
new DontCloseByteArrayInputStream( new byte[1] ) ), is( false ) );
}
@Test
public void contentEqualNonEmptyNonEmpty()
throws Exception
{
assertThat( IOUtil.contentEquals( new DontCloseByteArrayInputStream( new byte[1] ),
new DontCloseByteArrayInputStream( new byte[1] ) ), is( true ) );
}
@Test
public void contentEqualMostlySame()
throws Exception
{
assertThat( IOUtil.contentEquals( new DontCloseByteArrayInputStream( new byte[]{ 1, 2, 3, 4, 5, 6 } ),
new DontCloseByteArrayInputStream( new byte[]{ 1, 2, 3, 4, 5, 7 } ) ),
is( false ) );
}
@Test
public void contentEqualLargeSame()
throws Exception
{
assertThat( IOUtil.contentEquals( new DontCloseByteArrayInputStream( new byte[8192] ),
new DontCloseByteArrayInputStream( new byte[8192] ) ), is( true ) );
}
@Test
public void contentEqualLargeDifferent()
throws Exception
{
byte[] buf = new byte[8192];
buf[8191] = 1;
assertThat( IOUtil.contentEquals( new DontCloseByteArrayInputStream( new byte[8192] ),
new DontCloseByteArrayInputStream( buf ) ), is( false ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullByteArray()
throws Exception
{
IOUtil.toString( nullByteArray() );
}
@Test
public void toStringEmptyByteArray()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray() ), is( emptyString() ) );
}
@Test
public void toStringByteArray()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes() ).getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullByteArrayNegBufSz()
throws Exception
{
IOUtil.toString( nullByteArray(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void toStringEmptyByteArrayNegBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), -1 ), is( emptyString() ) );
}
@Test( expected = NegativeArraySizeException.class )
public void toStringByteArrayNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes(), -1 ), is( probe ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringNullByteArrayZeroBufSz()
throws Exception
{
IOUtil.toString( nullByteArray(), 0 );
}
@Test( expected = NullPointerException.class )
public void toStringNullByteArrayPosBufSz()
throws Exception
{
IOUtil.toString( nullByteArray(), 1 );
}
@Test
public void toStringEmptyByteArrayPosBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), 1 ), is( emptyString() ) );
}
@Test
public void toStringByteArrayPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes(), 1 ).getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullByteArrayNullEncoding()
throws Exception
{
IOUtil.toString( nullByteArray(), null );
}
@Test( expected = NullPointerException.class )
public void toStringEmptyByteArrayNullEncoding()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), null ), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void toStringByteArrayNullEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes(), null ).getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullByteArrayJunkEncoding()
throws Exception
{
IOUtil.toString( nullByteArray(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void toStringEmptyByteArrayJunkEncoding()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), "junk" ), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class )
public void toStringByteArrayJunkEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes(), "junk" ).getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullByteArrayValidEncoding()
throws Exception
{
IOUtil.toString( nullByteArray(), "utf-16" );
}
@Test
public void toStringEmptyByteArrayValidEncoding()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), "utf-16" ), is( emptyString() ) );
}
@Test
public void toStringByteArrayValidEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes( "utf-16" ), "utf-16" ).getBytes( "utf-8" ),
is( probe.getBytes( "utf-8" ) ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullByteArrayNullEncodingNegBufSz()
throws Exception
{
IOUtil.toString( nullByteArray(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void toStringEmptyByteArrayNullEncodingNegBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), null, -1 ), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void toStringByteArrayNullEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes(), null, -1 ).getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullByteArrayJunkEncodingNegBufSz()
throws Exception
{
IOUtil.toString( nullByteArray(), "junk", -1 );
}
@Test( expected = UnsupportedEncodingException.class )
public void toStringEmptyByteArrayJunkEncodingNegBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), "junk", -1 ), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class )
public void toStringByteArrayJunkEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes(), "junk", -1 ).getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullByteArrayValidEncodingNegBufSz()
throws Exception
{
IOUtil.toString( nullByteArray(), "utf-16", -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void toStringEmptyByteArrayValidEncodingNegBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), "utf-16", -1 ), is( emptyString() ) );
}
@Test( expected = NegativeArraySizeException.class )
public void toStringByteArrayValidEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes( "utf-16" ), "utf-16", -1 ).getBytes( "utf-8" ),
is( probe.getBytes( "utf-8" ) ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringNullByteArrayNullEncodingZeroBufSz()
throws Exception
{
IOUtil.toString( nullByteArray(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringEmptyByteArrayNullEncodingZeroBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), null, 0 ), is( emptyString() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringByteArrayNullEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes(), null, 0 ).getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringNullByteArrayJunkEncodingZeroBufSz()
throws Exception
{
IOUtil.toString( nullByteArray(), "junk", 0 );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringEmptyByteArrayJunkEncodingZeroBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyByteArray(), "junk", 0 ), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringByteArrayJunkEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( probe.getBytes(), "junk", 0 ).getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringNullByteArrayValidEncodingZeroBufSz()
throws Exception
{
IOUtil.toString( nullByteArray(), "utf-16", 0 );
}
/*
* copy(byte[],OutputStream)
*/
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullOutputStream()
throws Exception
{
IOUtil.copy( nullByteArray(), nullOutputStream() );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayValidOutputStream()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseByteArrayOutputStream() );
}
@Test( expected = NullPointerException.class )
public void copyEmptyByteArrayNullOutputStream()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullOutputStream() );
}
@Test
public void copyEmptyByteArrayValidOutputStream()
throws Exception
{
IOUtil.copy( emptyByteArray(), new DontCloseByteArrayOutputStream() );
}
@Test
public void copyByteArrayValidOutputStream()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
byte[] input = { 1, 2, 3, 4, 5, 6 };
IOUtil.copy( input, outputStream );
assertThat( outputStream.toByteArray(), is( input ) );
}
/*
* copy(byte[],OutputStream,int)
*/
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullOutputStream());
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayValidOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseByteArrayOutputStream());
}
@Test( expected = NullPointerException.class )
public void copyEmptyByteArrayNullOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullOutputStream());
}
@Test
public void copyEmptyByteArrayValidOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), new DontCloseByteArrayOutputStream());
}
@Test
public void copyByteArrayValidOutputStreamNegBufSz()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
byte[] input = { 1, 2, 3, 4, 5, 6 };
IOUtil.copy( input, outputStream);
assertThat( outputStream.toByteArray(), is( input ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayNullOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullOutputStream());
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayValidOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseByteArrayOutputStream());
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyByteArrayNullOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullOutputStream());
}
@Test( timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyByteArrayValidOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), new DontCloseByteArrayOutputStream());
}
@Test( timeout = INFINITE_LOOP_TIMEOUT )
public void copyByteArrayValidOutputStreamZeroBufSz()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
byte[] input = { 1, 2, 3, 4, 5, 6 };
IOUtil.copy( input, outputStream);
assertThat( outputStream.toByteArray(), is( input ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayNullOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullOutputStream());
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayValidOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseByteArrayOutputStream());
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyByteArrayNullOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullOutputStream());
}
@Test( timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyByteArrayValidOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), new DontCloseByteArrayOutputStream());
}
@Test( timeout = INFINITE_LOOP_TIMEOUT )
public void copyByteArrayValidOutputStreamPosBufSz()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
byte[] input = { 1, 2, 3, 4, 5, 6 };
IOUtil.copy( input, outputStream);
assertThat( outputStream.toByteArray(), is( input ) );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullOutputStream()
throws Exception
{
IOUtil.copy( nullInputStream(), nullOutputStream() );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamValidOutputStream()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseByteArrayOutputStream() );
}
@Test
public void copyEmptyInputStreamNullOutputStream()
throws Exception
{
IOUtil.copy( new DontCloseByteArrayInputStream( emptyByteArray() ), nullOutputStream() );
}
@Test
public void copyEmptyInputStreamValidOutputStream()
throws Exception
{
IOUtil.copy( new DontCloseByteArrayInputStream( emptyByteArray() ), new DontCloseByteArrayOutputStream() );
}
@Test
public void copyInputStreamValidOutputStream()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
byte[] input = { 1, 2, 3, 4, 5, 6 };
IOUtil.copy( new DontCloseByteArrayInputStream( input ), outputStream );
assertThat( outputStream.toByteArray(), is( input ) );
}
@Test( expected = NegativeArraySizeException.class )
public void copyNullInputStreamNullOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullOutputStream(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyNullInputStreamValidOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseByteArrayOutputStream(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyInputStreamNullOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( new DontCloseByteArrayInputStream( emptyByteArray() ), nullOutputStream(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyInputStreamValidOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( new DontCloseByteArrayInputStream( emptyByteArray() ), new DontCloseByteArrayOutputStream(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyInputStreamValidOutputStreamNegBufSz()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
byte[] input = { 1, 2, 3, 4, 5, 6 };
IOUtil.copy( new DontCloseByteArrayInputStream( input ), outputStream, -1 );
assertThat( outputStream.toByteArray(), is( input ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamNullOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullOutputStream(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamValidOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new ByteArrayOutputStream(), 0 );
}
@Test( timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyInputStreamNullOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( new DontCloseByteArrayInputStream( emptyByteArray() ), nullOutputStream(), 0 );
}
@Test( timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyInputStreamValidOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( new DontCloseByteArrayInputStream( emptyByteArray() ), new DontCloseByteArrayOutputStream(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamNullOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullOutputStream(), 1 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamValidOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new ByteArrayOutputStream(), 1 );
}
@Test( timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyInputStreamNullOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( new DontCloseByteArrayInputStream( emptyByteArray() ), nullOutputStream(), 1 );
}
@Test( timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyInputStreamValidOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( new DontCloseByteArrayInputStream( emptyByteArray() ), new DontCloseByteArrayOutputStream(), 1 );
}
@Test( timeout = INFINITE_LOOP_TIMEOUT )
public void copyInputStreamValidOutputStreamPosBufSz()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
byte[] input = { 1, 2, 3, 4, 5, 6 };
IOUtil.copy( new DontCloseByteArrayInputStream( input ), outputStream, 1 );
assertThat( outputStream.toByteArray(), is( input ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullInputStream()
throws Exception
{
IOUtil.toString( nullInputStream() );
}
@Test
public void toStringEmptyInputStream()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream() ), is( emptyString() ) );
}
@Test
public void toStringInputStream()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new ByteArrayInputStream( probe.getBytes() ) ).getBytes(),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullInputStreamNegBufSz()
throws Exception
{
IOUtil.toString( nullInputStream(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void toStringEmptyInputStreamNegBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), -1 ), is( emptyString() ) );
}
@Test( expected = NegativeArraySizeException.class )
public void toStringInputStreamNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new ByteArrayInputStream( probe.getBytes() ), -1 ), is( probe ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringNullInputStreamZeroBufSz()
throws Exception
{
IOUtil.toString( nullInputStream(), 0 );
}
@Test( expected = NullPointerException.class )
public void toStringNullInputStreamPosBufSz()
throws Exception
{
IOUtil.toString( nullInputStream(), 1 );
}
@Test
public void toStringEmptyInputStreamPosBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), 1 ), is( emptyString() ) );
}
@Test
public void toStringInputStreamPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new ByteArrayInputStream( probe.getBytes() ), 1 ).getBytes(),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullInputStreamNullEncoding()
throws Exception
{
IOUtil.toString( nullInputStream(), null );
}
@Test( expected = NullPointerException.class )
public void toStringEmptyInputStreamNullEncoding()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), null ), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void toStringInputStreamNullEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new ByteArrayInputStream( probe.getBytes() ), null ).getBytes(),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullInputStreamJunkEncoding()
throws Exception
{
IOUtil.toString( nullInputStream(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void toStringEmptyInputStreamJunkEncoding()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), "junk" ), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class )
public void toStringInputStreamJunkEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new ByteArrayInputStream( probe.getBytes() ), "junk" ).getBytes(),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullInputStreamValidEncoding()
throws Exception
{
IOUtil.toString( nullInputStream(), "utf-16" );
}
@Test
public void toStringEmptyInputStreamValidEncoding()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), "utf-16" ), is( emptyString() ) );
}
@Test
public void toStringInputStreamValidEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat(
IOUtil.toString( new ByteArrayInputStream( probe.getBytes( "utf-16" ) ), "utf-16" ).getBytes( "utf-8" ),
is( probe.getBytes( "utf-8" ) ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullInputStreamNullEncodingNegBufSz()
throws Exception
{
IOUtil.toString( nullInputStream(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void toStringEmptyInputStreamNullEncodingNegBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), null, -1 ), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void toStringInputStreamNullEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new ByteArrayInputStream( probe.getBytes() ), null, -1 ).getBytes(),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullInputStreamJunkEncodingNegBufSz()
throws Exception
{
IOUtil.toString( nullInputStream(), "junk", -1 );
}
@Test( expected = UnsupportedEncodingException.class )
public void toStringEmptyInputStreamJunkEncodingNegBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), "junk", -1 ), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class )
public void toStringInputStreamJunkEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new ByteArrayInputStream( probe.getBytes() ), "junk", -1 ).getBytes(),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toStringNullInputStreamValidEncodingNegBufSz()
throws Exception
{
IOUtil.toString( nullInputStream(), "utf-16", -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void toStringEmptyInputStreamValidEncodingNegBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), "utf-16", -1 ), is( emptyString() ) );
}
@Test( expected = NegativeArraySizeException.class )
public void toStringInputStreamValidEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat(
IOUtil.toString( new ByteArrayInputStream( probe.getBytes( "utf-16" ) ), "utf-16", -1 ).getBytes( "utf-8" ),
is( probe.getBytes( "utf-8" ) ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringNullInputStreamNullEncodingZeroBufSz()
throws Exception
{
IOUtil.toString( nullInputStream(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringEmptyInputStreamNullEncodingZeroBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), null, 0 ), is( emptyString() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringInputStreamNullEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new ByteArrayInputStream( probe.getBytes() ), null, 0 ).getBytes(),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringNullInputStreamJunkEncodingZeroBufSz()
throws Exception
{
IOUtil.toString( nullInputStream(), "junk", 0 );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringEmptyInputStreamJunkEncodingZeroBufSz()
throws Exception
{
assertThat( IOUtil.toString( emptyInputStream(), "junk", 0 ), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringInputStreamJunkEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new ByteArrayInputStream( probe.getBytes() ), "junk", 0 ).getBytes(),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void toStringNullInputStreamValidEncodingZeroBufSz()
throws Exception
{
IOUtil.toString( nullInputStream(), "utf-16", 0 );
}
/*
* copy(InputStream,Writer)
*/
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullWriter()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter() );
}
@Test( expected = NullPointerException.class )
public void copyEmptyInputStreamNullWriter()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter() );
}
@Test
public void copyEmptyInputStreamValidWriter()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyInputStream(), writer );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void copyInputStreamNullWriter()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), nullWriter() );
}
@Test
public void copyInputStreamValidWriter()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), writer );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
/*
* copy(InputStream,Writer,int)
*/
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullWriterNegBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyInputStreamNullWriterNegBufSz()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyInputStreamValidWriterNegBufSz()
throws Exception
{
IOUtil.copy( emptyInputStream(), new DontCloseStringWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyInputStreamNullWriterNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyInputStreamValidWriterNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), writer, -1 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamNullWriterZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamValidWriterZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyInputStreamNullWriterZeroBufSz()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), 0 );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullWriterPosBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamValidWriterPosBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyInputStreamNullWriterPosBufSz()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), 1 );
}
@Test
public void copyEmptyInputStreamValidWriterPosBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyInputStream(), writer, 1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test
public void copyInputStreamValidWriterPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), writer, 1 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
/*
* copy(InputStream,Writer,String)
*/
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullWriterNullEncoding()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), null );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamValidWriterNullEncoding()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), null );
}
@Test( expected = NullPointerException.class )
public void copyEmptyInputStreamNullWriterNullEncoding()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), null );
}
@Test( expected = NullPointerException.class )
public void copyEmptyInputStreamValidWriterNullEncoding()
throws Exception
{
IOUtil.copy( emptyInputStream(), new DontCloseStringWriter(), null );
}
@Test( expected = NullPointerException.class )
public void copyInputStreamNullEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), writer, null );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullWriterJunkEncoding()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), "junk" );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamValidWriterJunkEncoding()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyEmptyInputStreamNullWriterJunkEncoding()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyEmptyInputStreamValidWriterJunkEncoding()
throws Exception
{
IOUtil.copy( emptyInputStream(), new DontCloseStringWriter(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyInputStreamNullWriterJunkEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), nullWriter(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyInputStreamValidWriterJunkEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), writer, "junk" );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullWriterValidEncoding()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), "utf-16" );
}
@Test( expected = NullPointerException.class )
public void copyEmptyInputStreamNullWriterValidEncoding()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), "utf-16" );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamValidWriterValidEncoding()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), "utf-16" );
}
@Test
public void copyEmptyInputStreamValidWriterValidEncoding()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyInputStream(), writer, "utf-16" );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void copyInputStreamNullWriterValidEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new ByteArrayInputStream( probe.getBytes( "utf-16" ) ), nullWriter(), "utf-16" );
}
@Test
public void copyInputStreamValidWriterValidEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes( "utf-16" ) ), writer, "utf-16" );
assertThat( writer.toString().getBytes( "utf-8" ), is( probe.getBytes( "utf-8" ) ) );
}
/*
* copy(InputStream,Writer,String,int)
*/
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullWriterNullEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamValidWriterNullEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyInputStreamNullWriterNullEncodingNegBufSz()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyInputStreamValidWriterNullEncodingNegBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyInputStream(), writer, null, -1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void copyInputStreamNullWriterNullEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), nullWriter(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void copyInputStreamValidWriterNullEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), writer, null, -1 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullWriterJunkEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), "junk", -1 );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamValidWriterJunkEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), "junk", -1 );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyEmptyInputStreamNullWriterJunkEncodingNegBufSz()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), "junk", -1 );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyEmptyInputStreamJunkEncodingNegBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyInputStream(), writer, "junk", -1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyInputStreamNullWriterJunkEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), nullWriter(), "junk", -1 );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyInputStreamValidWriterJunkEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), writer, "junk", -1 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamNullWriterValidEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), "utf-16", -1 );
}
@Test( expected = NullPointerException.class )
public void copyNullInputStreamValidWriterValidEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), "utf-16", -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyInputStreamNullWriterValidEncodingNegBufSz()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), "utf-16", -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyInputStreamValidWriterValidEncodingNegBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyInputStream(), writer, "utf-16", -1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NegativeArraySizeException.class )
public void copyInputStreamNullWriterValidEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new ByteArrayInputStream( probe.getBytes( "utf-16" ) ), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyInputStreamValidEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes( "utf-16" ) ), writer, "utf-16", -1 );
assertThat( writer.toString().getBytes( "utf-8" ), is( probe.getBytes( "utf-8" ) ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamNullWriterNullEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamValidWriterNullEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyInputStreamNullWriterNullEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyInputStreamValidWriterNullEncodingZeroBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyInputStream(), writer, null, 0 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyInputStreamNullWriterNullEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), nullWriter(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyInputStreamValidWriterNullEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), writer, null, 0 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamNullWriterJunkEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), "junk", 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamValidWriterJunkEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), "junk", 0 );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyInputStreamNullWriterJunkEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( emptyInputStream(), nullWriter(), "junk", 0 );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyInputStreamValidWriterJunkEncodingZeroBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyInputStream(), writer, "junk", 0 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyInputStreamNullWriterJunkEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), nullWriter(), "junk", 0 );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyInputStreamValidWriterJunkEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new ByteArrayInputStream( probe.getBytes() ), writer, "junk", 0 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamNullWriterValidEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), nullWriter(), "utf-16", 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullInputStreamValidWriterValidEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullInputStream(), new DontCloseStringWriter(), "utf-16", 0 );
}
/*
* copy(String,Writer)
*/
@Test( expected = NullPointerException.class )
public void copyNullStringNullWriter()
throws Exception
{
IOUtil.copy( nullString(), nullWriter() );
}
@Test( expected = NullPointerException.class )
public void copyEmptyStringNullWriter()
throws Exception
{
IOUtil.copy( emptyString(), nullWriter() );
}
@Test
public void copyNullStringValidWriter()
throws Exception
{
IOUtil.copy( nullString(), new DontCloseStringWriter() );
}
@Test
public void copyEmptyStringValidWriter()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyString(), writer );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void copyStringNullWriter()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe, nullWriter() );
}
@Test
public void copyStringValidWriter()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe, writer );
assertThat( writer.toString(), is( probe ) );
}
@Test( expected = NullPointerException.class )
public void copyNullStringNullOutputStream()
throws Exception
{
IOUtil.copy( nullString(), nullOutputStream() );
}
@Test( expected = NullPointerException.class )
public void copyEmptyStringNullOutputStream()
throws Exception
{
IOUtil.copy( emptyString(), nullOutputStream() );
}
@Test( expected = NullPointerException.class )
public void copyNullStringValidOutputStream()
throws Exception
{
IOUtil.copy( nullString(), new DontCloseByteArrayOutputStream() );
}
@Test
public void copyEmptyStringValidOutputStream()
throws Exception
{
ByteArrayOutputStream OutputStream = new DontCloseByteArrayOutputStream();
IOUtil.copy( emptyString(), OutputStream );
assertThat( OutputStream.toByteArray(), is( emptyString().getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyStringNullOutputStream()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe, nullOutputStream() );
}
@Test
public void copyStringValidOutputStream()
throws Exception
{
String probe = "A string \u2345\u00ef";
ByteArrayOutputStream OutputStream = new DontCloseByteArrayOutputStream();
IOUtil.copy( probe, OutputStream );
assertThat( OutputStream.toByteArray(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullStringNullOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( nullString(), nullOutputStream(), -1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyStringNullOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( emptyString(), nullOutputStream(), -1 );
}
@Test( expected = NullPointerException.class )
public void copyNullStringValidOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( nullString(), new DontCloseByteArrayOutputStream(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyStringValidOutputStreamNegBufSz()
throws Exception
{
ByteArrayOutputStream OutputStream = new DontCloseByteArrayOutputStream();
IOUtil.copy( emptyString(), OutputStream, -1 );
assertThat( OutputStream.toByteArray(), is( emptyString().getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyStringNullOutputStreamNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe, nullOutputStream(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyStringValidOutputStreamNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
ByteArrayOutputStream OutputStream = new DontCloseByteArrayOutputStream();
IOUtil.copy( probe, OutputStream, -1 );
assertThat( OutputStream.toByteArray(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullStringNullOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( nullString(), nullOutputStream(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyStringNullOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( emptyString(), nullOutputStream(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullStringValidOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( nullString(), new DontCloseByteArrayOutputStream(), 0 );
}
@Test( expected = NullPointerException.class )
public void copyNullStringNullOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( nullString(), nullOutputStream(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyStringNullOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( emptyString(), nullOutputStream(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyNullStringValidOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( nullString(), new DontCloseByteArrayOutputStream(), 1 );
}
@Test
public void copyEmptyStringValidOutputStreamPosBufSz()
throws Exception
{
ByteArrayOutputStream OutputStream = new DontCloseByteArrayOutputStream();
IOUtil.copy( emptyString(), OutputStream, 1 );
assertThat( OutputStream.toByteArray(), is( emptyString().getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyStringNullOutputStreamPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe, nullOutputStream(), 1 );
}
@Test
public void copyStringValidOutputStreamPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
ByteArrayOutputStream OutputStream = new DontCloseByteArrayOutputStream();
IOUtil.copy( probe, OutputStream, 1 );
assertThat( OutputStream.toByteArray(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullReaderNullWriter()
throws Exception
{
IOUtil.copy( nullReader(), nullWriter() );
}
@Test( expected = NullPointerException.class )
public void copyEmptyReaderNullWriter()
throws Exception
{
IOUtil.copy( emptyReader(), nullWriter() );
}
@Test( expected = NullPointerException.class )
public void copyNullReaderValidWriter()
throws Exception
{
IOUtil.copy( nullReader(), new DontCloseStringWriter() );
}
@Test
public void copyEmptyReaderValidWriter()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyReader(), writer );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void copyReaderNullWriter()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new StringReader( probe ), nullWriter() );
}
@Test
public void copyReaderValidWriter()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new StringReader( probe ), writer );
assertThat( writer.toString(), is( probe ) );
}
/*
* copy(Reader,Writer,int)
*/
@Test( expected = NegativeArraySizeException.class )
public void copyNullReaderNullWriterNegBufSz()
throws Exception
{
IOUtil.copy( nullReader(), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyReaderNullWriterNegBufSz()
throws Exception
{
IOUtil.copy( emptyReader(), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyNullReaderValidWriterNegBufSz()
throws Exception
{
IOUtil.copy( nullReader(), new DontCloseStringWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyReaderValidWriterNegBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyReader(), writer, -1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NegativeArraySizeException.class )
public void copyReaderNullWriterNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new StringReader( probe ), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyReaderValidWriterNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new StringReader( probe ), writer, -1 );
assertThat( writer.toString(), is( probe ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullReaderNullWriterZeroBufSz()
throws Exception
{
IOUtil.copy( nullReader(), nullWriter(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyReaderNullWriterZeroBufSz()
throws Exception
{
IOUtil.copy( emptyReader(), nullWriter(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullReaderValidWriterZeroBufSz()
throws Exception
{
IOUtil.copy( nullReader(), new DontCloseStringWriter(), 0 );
}
@Test( expected = NullPointerException.class )
public void copyNullReaderNullWriterPosBufSz()
throws Exception
{
IOUtil.copy( nullReader(), nullWriter(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyReaderNullWriterPosBufSz()
throws Exception
{
IOUtil.copy( emptyReader(), nullWriter(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyNullReaderValidWriterPosBufSz()
throws Exception
{
IOUtil.copy( nullReader(), new DontCloseStringWriter(), 1 );
}
@Test
public void copyEmptyReaderValidWriterPosBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyReader(), writer, 1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void copyReaderNullWriterPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( new StringReader( probe ), nullWriter(), 1 );
}
@Test
public void copyReaderValidWriterPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( new StringReader( probe ), writer, 1 );
assertThat( writer.toString(), is( probe ) );
}
/*
* toByteArray(InputStream,int)
*/
@Test( expected = NegativeArraySizeException.class )
public void toByteArrayFromInputStreamNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toByteArray( new DontCloseByteArrayInputStream( IOUtil.toByteArray( probe ) ), -1 ),
is( probe.getBytes() ) );
}
@Test( expected = NegativeArraySizeException.class )
public void toByteArrayNullInputStreamNegBufSz()
throws Exception
{
IOUtil.toByteArray( nullInputStream(), -1 );
}
@Test
public void toByteArrayFromInputStreamPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toByteArray( new DontCloseByteArrayInputStream( IOUtil.toByteArray( probe ) ), +1 ),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toByteArrayNullInputStreamPosBufSz()
throws Exception
{
IOUtil.toByteArray( nullInputStream(), +1 );
}
/*
* toByteArray(Reader,int)
*/
@Test( expected = NegativeArraySizeException.class )
public void toByteArrayFromReaderNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toByteArray( new DontCloseStringReader( probe ), -1 ),
is( probe.getBytes() ) );
}
@Test( expected = NegativeArraySizeException.class )
public void toByteArrayNullReaderNegBufSz()
throws Exception
{
IOUtil.toByteArray( nullReader(), -1 );
}
@Test
public void toByteArrayFromReaderPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toByteArray( new DontCloseStringReader( probe ), +1 ),
is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toByteArrayNullReaderPosBufSz()
throws Exception
{
IOUtil.toByteArray( nullReader(), +1 );
}
/*
* toByteArray(String,int)
*/
@Test( expected = NegativeArraySizeException.class )
public void toByteArrayFromStringNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toByteArray( probe, -1 ), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toByteArrayNullStringNegBufSz()
throws Exception
{
IOUtil.toByteArray( nullString(), -1 );
}
@Test
public void toByteArrayFromStringPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toByteArray( probe, +1 ), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void toByteArrayNullStringPosBufSz()
throws Exception
{
IOUtil.toByteArray( nullString(), +1 );
}
/*
* toString(Reader,int)
*/
@Test( expected = NegativeArraySizeException.class )
public void toStringFromReaderNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new DontCloseStringReader( probe ), -1 ),
is( probe) );
}
@Test( expected = NegativeArraySizeException.class )
public void toStringNullReaderNegBufSz()
throws Exception
{
IOUtil.toString( nullReader(), -1 );
}
@Test
public void toStringFromReaderPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
assertThat( IOUtil.toString( new DontCloseStringReader( probe ), +1 ),
is( probe) );
}
@Test( expected = NullPointerException.class )
public void toStringNullReaderPosBufSz()
throws Exception
{
IOUtil.toString( nullReader(), +1 );
}
/*
* copy(Reader,OutputStream)
*/
@Test( expected = NullPointerException.class )
public void copyNullReaderNullOutputStream()
throws Exception
{
IOUtil.copy( nullReader(), nullOutputStream() );
}
@Test( expected = NullPointerException.class )
public void copyNullReaderValidOutputStream()
throws Exception
{
IOUtil.copy( nullReader(), new DontCloseByteArrayOutputStream() );
}
@Test( expected = NullPointerException.class )
public void copyEmptyReaderNullOutputStream()
throws Exception
{
IOUtil.copy( emptyReader(), nullOutputStream() );
}
@Test
public void copyEmptyReaderValidOutputStream()
throws Exception
{
IOUtil.copy( emptyReader(), new DontCloseByteArrayOutputStream() );
}
@Test
public void copyReaderValidOutputStream()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
String probe = "A string \u2345\u00ef";
IOUtil.copy( new DontCloseStringReader( probe ), outputStream );
assertThat( outputStream.toByteArray(), is( probe.getBytes()) );
}
/*
* copy(Reader,OutputStream,int)
*/
@Test( expected = NullPointerException.class )
public void copyNullReaderNullOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( nullReader(), nullOutputStream(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyNullReaderValidOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( nullReader(), new DontCloseByteArrayOutputStream(), -1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyReaderNullOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( emptyReader(), nullOutputStream(), -1 );
}
@Test(expected = NegativeArraySizeException.class)
public void copyEmptyReaderValidOutputStreamNegBufSz()
throws Exception
{
IOUtil.copy( emptyReader(), new DontCloseByteArrayOutputStream(), -1 );
}
@Test(expected = NegativeArraySizeException.class)
public void copyReaderValidOutputStreamNegBufSz()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
String probe = "A string \u2345\u00ef";
IOUtil.copy( new DontCloseStringReader( probe ), outputStream, -1 );
assertThat( outputStream.toByteArray(), is( probe.getBytes()) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullReaderNullOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( nullReader(), nullOutputStream(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullReaderValidOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( nullReader(), new DontCloseByteArrayOutputStream(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyReaderNullOutputStreamZeroBufSz()
throws Exception
{
IOUtil.copy( emptyReader(), nullOutputStream(), 0 );
}
@Test( expected = NullPointerException.class )
public void copyNullReaderNullOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( nullReader(), nullOutputStream(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyNullReaderValidOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( nullReader(), new DontCloseByteArrayOutputStream(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyReaderNullOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( emptyReader(), nullOutputStream(), 1 );
}
@Test
public void copyEmptyReaderValidOutputStreamPosBufSz()
throws Exception
{
IOUtil.copy( emptyReader(), new DontCloseByteArrayOutputStream(), 1 );
}
@Test
public void copyReaderValidOutputStreamPosBufSz()
throws Exception
{
ByteArrayOutputStream outputStream = new DontCloseByteArrayOutputStream();
String probe = "A string \u2345\u00ef";
IOUtil.copy( new DontCloseStringReader( probe ), outputStream, 1 );
assertThat( outputStream.toByteArray(), is( probe.getBytes()) );
}
/*
* copy(byte[],Writer)
*/
/*
* copy(byte[],Writer,int)
*/
/*
* copy(byte[],Writer,String)
*/
/*
* copy(byte[],Writer,String,int)
*/
/*
* copy(byte[],Writer)
*/
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullWriter()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter() );
}
@Test( expected = NullPointerException.class )
public void copyEmptyByteArrayNullWriter()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter() );
}
@Test
public void copyEmptyByteArrayValidWriter()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyByteArray(), writer );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void copyByteArrayNullWriter()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe.getBytes(), nullWriter() );
}
@Test
public void copyByteArrayValidWriter()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes(), writer );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
/*
* copy(byte[],Writer,int)
*/
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullWriterNegBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyByteArrayNullWriterNegBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyByteArrayValidWriterNegBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), new DontCloseStringWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyByteArrayNullWriterNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe.getBytes(), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyByteArrayValidWriterNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes(), writer, -1 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayNullWriterZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayValidWriterZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyByteArrayNullWriterZeroBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), 0 );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullWriterPosBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayValidWriterPosBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), 1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyByteArrayNullWriterPosBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), 1 );
}
@Test
public void copyEmptyByteArrayValidWriterPosBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyByteArray(), writer, 1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test
public void copyByteArrayValidWriterPosBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes(), writer, 1 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
/*
* copy(byte[],Writer,String)
*/
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullWriterNullEncoding()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), null );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayValidWriterNullEncoding()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), null );
}
@Test( expected = NullPointerException.class )
public void copyEmptyByteArrayNullWriterNullEncoding()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), null );
}
@Test( expected = NullPointerException.class )
public void copyEmptyByteArrayValidWriterNullEncoding()
throws Exception
{
IOUtil.copy( emptyByteArray(), new DontCloseStringWriter(), null );
}
@Test( expected = NullPointerException.class )
public void copyByteArrayNullEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes(), writer, null );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullWriterJunkEncoding()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), "junk" );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayValidWriterJunkEncoding()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyEmptyByteArrayNullWriterJunkEncoding()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyEmptyByteArrayValidWriterJunkEncoding()
throws Exception
{
IOUtil.copy( emptyByteArray(), new DontCloseStringWriter(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyByteArrayNullWriterJunkEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe.getBytes(), nullWriter(), "junk" );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyByteArrayValidWriterJunkEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes(), writer, "junk" );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullWriterValidEncoding()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), "utf-16" );
}
@Test( expected = NullPointerException.class )
public void copyEmptyByteArrayNullWriterValidEncoding()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), "utf-16" );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayValidWriterValidEncoding()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), "utf-16" );
}
@Test
public void copyEmptyByteArrayValidWriterValidEncoding()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyByteArray(), writer, "utf-16" );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void copyByteArrayNullWriterValidEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe.getBytes( "utf-16" ), nullWriter(), "utf-16" );
}
@Test
public void copyByteArrayValidWriterValidEncoding()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes( "utf-16" ), writer, "utf-16" );
assertThat( writer.toString().getBytes( "utf-8" ), is( probe.getBytes( "utf-8" ) ) );
}
/*
* copy(byte[],Writer,String,int)
*/
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullWriterNullEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayValidWriterNullEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyByteArrayNullWriterNullEncodingNegBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void copyEmptyByteArrayValidWriterNullEncodingNegBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyByteArray(), writer, null, -1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class )
public void copyByteArrayNullWriterNullEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe.getBytes(), nullWriter(), null, -1 );
}
@Test( expected = NullPointerException.class )
public void copyByteArrayValidWriterNullEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes(), writer, null, -1 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullWriterJunkEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), "junk", -1 );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayValidWriterJunkEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), "junk", -1 );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyEmptyByteArrayNullWriterJunkEncodingNegBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), "junk", -1 );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyEmptyByteArrayJunkEncodingNegBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyByteArray(), writer, "junk", -1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyByteArrayNullWriterJunkEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe.getBytes(), nullWriter(), "junk", -1 );
}
@Test( expected = UnsupportedEncodingException.class )
public void copyByteArrayValidWriterJunkEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes(), writer, "junk", -1 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayNullWriterValidEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), "utf-16", -1 );
}
@Test( expected = NullPointerException.class )
public void copyNullByteArrayValidWriterValidEncodingNegBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), "utf-16", -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyByteArrayNullWriterValidEncodingNegBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), "utf-16", -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyEmptyByteArrayValidWriterValidEncodingNegBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyByteArray(), writer, "utf-16", -1 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NegativeArraySizeException.class )
public void copyByteArrayNullWriterValidEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe.getBytes( "utf-16" ), nullWriter(), -1 );
}
@Test( expected = NegativeArraySizeException.class )
public void copyByteArrayValidEncodingNegBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes( "utf-16" ), writer, "utf-16", -1 );
assertThat( writer.toString().getBytes( "utf-8" ), is( probe.getBytes( "utf-8" ) ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayNullWriterNullEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayValidWriterNullEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyByteArrayNullWriterNullEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyByteArrayValidWriterNullEncodingZeroBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyByteArray(), writer, null, 0 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyByteArrayNullWriterNullEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe.getBytes(), nullWriter(), null, 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyByteArrayValidWriterNullEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes(), writer, null, 0 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayNullWriterJunkEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), "junk", 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayValidWriterJunkEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), "junk", 0 );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyByteArrayNullWriterJunkEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( emptyByteArray(), nullWriter(), "junk", 0 );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyEmptyByteArrayValidWriterJunkEncodingZeroBufSz()
throws Exception
{
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( emptyByteArray(), writer, "junk", 0 );
assertThat( writer.toString(), is( emptyString() ) );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyByteArrayNullWriterJunkEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
IOUtil.copy( probe.getBytes(), nullWriter(), "junk", 0 );
}
@Test( expected = UnsupportedEncodingException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyByteArrayValidWriterJunkEncodingZeroBufSz()
throws Exception
{
String probe = "A string \u2345\u00ef";
StringWriter writer = new DontCloseStringWriter();
IOUtil.copy( probe.getBytes(), writer, "junk", 0 );
assertThat( writer.toString().getBytes(), is( probe.getBytes() ) );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayNullWriterValidEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), nullWriter(), "utf-16", 0 );
}
@Test( expected = NullPointerException.class, timeout = INFINITE_LOOP_TIMEOUT )
public void copyNullByteArrayValidWriterValidEncodingZeroBufSz()
throws Exception
{
IOUtil.copy( nullByteArray(), new DontCloseStringWriter(), "utf-16", 0 );
}
/*
* Utility methods
*/
private static byte[] nullByteArray()
{
return null;
}
private static String nullString()
{
return null;
}
private static OutputStream nullOutputStream()
{
return null;
}
private static InputStream nullInputStream()
{
return null;
}
private static Writer nullWriter()
{
return null;
}
private static Reader nullReader()
{
return null;
}
private static ByteArrayInputStream emptyInputStream()
{
return new ByteArrayInputStream( emptyByteArray() );
}
private static Reader emptyReader()
{
return new StringReader( emptyString() );
}
private static String emptyString()
{
return "";
}
private static byte[] emptyByteArray()
{
return new byte[0];
}
private static class DontCloseStringWriter
extends StringWriter
{
@Override
public void close()
throws IOException
{
throw new UnsupportedOperationException( "should not be called" );
}
}
private static class DontCloseStringReader
extends StringReader
{
public DontCloseStringReader( String s )
{
super( s );
}
@Override
public void close()
{
throw new UnsupportedOperationException( "should not be called" );
}
}
private static class DontCloseByteArrayInputStream
extends ByteArrayInputStream
{
public DontCloseByteArrayInputStream( byte[] input )
{
super( input );
}
@Override
public void close()
throws IOException
{
throw new UnsupportedOperationException( "should not be called" );
}
}
private static class DontCloseByteArrayOutputStream
extends ByteArrayOutputStream
{
@Override
public void close()
throws IOException
{
throw new UnsupportedOperationException( "should not be called" );
}
}
}