blob: 7cfc8bebb8ad3c6a08ecc951e28aa013934f03d1 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 compeople AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* compeople AG (Stefan Liebig) - initial API and implementation
*******************************************************************************/
package org.apache.tools.bzip2.test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import junit.framework.TestCase;
import org.apache.tools.bzip2.CBZip2InputStream;
import org.apache.tools.bzip2.CBZip2OutputStream;
public class CBZip2OutputStreamTest extends TestCase {
/**
* @throws IOException
*/
public void testEmtpyOutputShouldNotFail() throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
CBZip2OutputStream outputStream = new CBZip2OutputStream(
byteArrayOutputStream);
outputStream.close();
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
byteArrayOutputStream.toByteArray());
CBZip2InputStream inputStream = new CBZip2InputStream(
byteArrayInputStream);
assertEquals(-1, inputStream.read());
}
/**
* @throws IOException
*/
public void testOneByteOutputAndOneByteIn() throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
CBZip2OutputStream outputStream = new CBZip2OutputStream(
byteArrayOutputStream);
outputStream.write(42);
outputStream.close();
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
byteArrayOutputStream.toByteArray());
CBZip2InputStream inputStream = new CBZip2InputStream(
byteArrayInputStream);
assertEquals(42, inputStream.read());
assertEquals(-1, inputStream.read());
}
/**
* @throws IOException
*/
public void testWriteFinishAndClose() throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
CBZip2OutputStream outputStream = new CBZip2OutputStream(
byteArrayOutputStream);
outputStream.flush();
int len = byteArrayOutputStream.toByteArray().length;
outputStream.write(42);
outputStream.finish();
int lenAfterWrite = byteArrayOutputStream.toByteArray().length;
assertTrue(len != lenAfterWrite);
outputStream.close();
int lenAfterClose = byteArrayOutputStream.toByteArray().length;
assertTrue(lenAfterWrite == lenAfterClose);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
byteArrayOutputStream.toByteArray());
CBZip2InputStream inputStream = new CBZip2InputStream(
byteArrayInputStream);
assertEquals(42, inputStream.read());
assertEquals(-1, inputStream.read());
}
/**
* @throws IOException
*/
public void testWriteFinishFinishAndClose() throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
CBZip2OutputStream outputStream = new CBZip2OutputStream(
byteArrayOutputStream);
outputStream.flush();
int len = byteArrayOutputStream.toByteArray().length;
outputStream.write(42);
outputStream.finish();
outputStream.finish();
int lenAfterWrite = byteArrayOutputStream.toByteArray().length;
assertTrue(len != lenAfterWrite);
outputStream.close();
int lenAfterClose = byteArrayOutputStream.toByteArray().length;
assertTrue(lenAfterWrite == lenAfterClose);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
byteArrayOutputStream.toByteArray());
CBZip2InputStream inputStream = new CBZip2InputStream(
byteArrayInputStream);
assertEquals(42, inputStream.read());
assertEquals(-1, inputStream.read());
}
/**
* @throws IOException
*/
public void testWriteFinishAndCloseClose() throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
CBZip2OutputStream outputStream = new CBZip2OutputStream(
byteArrayOutputStream);
outputStream.flush();
int len = byteArrayOutputStream.toByteArray().length;
outputStream.write(42);
outputStream.finish();
int lenAfterWrite = byteArrayOutputStream.toByteArray().length;
assertTrue(len != lenAfterWrite);
outputStream.close();
int lenAfterClose1 = byteArrayOutputStream.toByteArray().length;
assertTrue(lenAfterWrite == lenAfterClose1);
outputStream.close();
int lenAfterClose2 = byteArrayOutputStream.toByteArray().length;
assertTrue(lenAfterWrite == lenAfterClose2);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
byteArrayOutputStream.toByteArray());
CBZip2InputStream inputStream = new CBZip2InputStream(
byteArrayInputStream);
assertEquals(42, inputStream.read());
assertEquals(-1, inputStream.read());
}
/**
* @throws IOException
*/
public void testWriteFinishWriteClose() throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
CBZip2OutputStream outputStream = new CBZip2OutputStream(
byteArrayOutputStream);
outputStream.flush();
int len = byteArrayOutputStream.toByteArray().length;
outputStream.write(42);
outputStream.finish();
outputStream.write(21);
outputStream.finish();
int lenAfterWrite = byteArrayOutputStream.toByteArray().length;
assertTrue(len != lenAfterWrite);
outputStream.close();
int lenAfterClose = byteArrayOutputStream.toByteArray().length;
assertTrue(lenAfterWrite == lenAfterClose);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
byteArrayOutputStream.toByteArray());
CBZip2InputStream inputStream = new CBZip2InputStream(
byteArrayInputStream);
assertEquals(42, inputStream.read());
assertEquals(-1, inputStream.read());
}
}