blob: 748c9faf885df8388fd3152f6fe6a5b2166a6600 [file] [log] [blame]
/*
* 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.
*/
package org.apache.harmony.archive.tests.java.util.zip;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.IOException;
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
import junit.framework.TestCase;
import tests.support.resource.Support_Resources;
public class CheckedInputStreamTest extends TestCase {
@Override
protected void tearDown() {
try {
File deletedFile = new File("empty.txt");
deletedFile.delete();
} catch (SecurityException e) {
fail("Cannot delete file for security reasons");
}
}
/**
* @tests java.util.zip.CheckedInputStream#CheckedInputStream(java.io.InputStream,
* java.util.zip.Checksum)
*/
public void test_ConstructorLjava_io_InputStreamLjava_util_zip_Checksum() throws Exception {
InputStream checkInput = Support_Resources.getStream("hyts_checkInput.txt");
CheckedInputStream checkIn = new CheckedInputStream(checkInput, new CRC32());
assertEquals("constructor of checkedInputStream has failed", 0, checkIn.getChecksum()
.getValue());
checkInput.close();
}
/**
* @tests java.util.zip.CheckedInputStream#getChecksum()
*/
public void test_getChecksum() throws Exception {
byte outBuf[] = new byte[100];
// testing getChecksum for an empty file
FileOutputStream outEmp = new FileOutputStream("empty.txt");
outEmp.close();
InputStream inEmp = new FileInputStream("empty.txt");
CheckedInputStream checkEmpty = new CheckedInputStream(inEmp, new CRC32());
while (checkEmpty.read() >= 0) {
}
assertEquals("the checkSum value of an empty file is not zero", 0, checkEmpty
.getChecksum().getValue());
inEmp.close();
// testing getChecksum for the file checkInput
InputStream checkInput = Support_Resources.getStream("hyts_checkInput.txt");
CheckedInputStream checkIn = new CheckedInputStream(checkInput, new CRC32());
while (checkIn.read() >= 0) {
}
// ran JDK and found that the checkSum value of this is 2036203193
// System.out.print(" " + checkIn.getChecksum().getValue());
assertEquals("the checksum value is incorrect", 2036203193, checkIn.getChecksum()
.getValue());
checkInput.close();
// testing getChecksum for file checkInput
checkInput = Support_Resources.getStream("hyts_checkInput.txt");
CheckedInputStream checkIn2 = new CheckedInputStream(checkInput, new CRC32());
checkIn2.read(outBuf, 0, 10);
// ran JDK and found that the checkSum value of this is 2235765342
// System.out.print(" " + checkIn2.getChecksum().getValue());
assertEquals("the checksum value is incorrect", 2235765342L, checkIn2.getChecksum()
.getValue());
checkInput.close();
}
/**
* @tests java.util.zip.CheckedInputStream#skip(long)
*/
public void test_skipJ() throws Exception {
// testing that the return by skip is valid
InputStream checkInput = Support_Resources.getStream("hyts_checkInput.txt");
CheckedInputStream checkIn = new CheckedInputStream(checkInput, new CRC32());
long skipValue = 5;
assertEquals("the value returned by skip(n) is not the same as its parameter",
skipValue, checkIn.skip(skipValue));
checkIn.skip(skipValue);
// ran JDK and found the checkSum value is 2235765342
// System.out.print(checkIn.getChecksum().getValue());
assertEquals("checkSum value is not correct", 2235765342L, checkIn.getChecksum()
.getValue());
checkInput.close();
}
public void test_read() throws Exception {
// testing that the return by skip is valid
InputStream checkInput = Support_Resources
.getStream("hyts_checkInput.txt");
CheckedInputStream checkIn = new CheckedInputStream(checkInput,
new CRC32());
checkIn.read();
checkIn.close();
try {
checkIn.read();
fail("IOException expected.");
} catch (IOException ee) {
// expected
}
checkInput.close();
}
public void test_read$byteII() throws Exception {
// testing that the return by skip is valid
InputStream checkInput = Support_Resources
.getStream("hyts_checkInput.txt");
CheckedInputStream checkIn = new CheckedInputStream(checkInput,
new CRC32());
byte buff[] = new byte[50];
checkIn.read(buff, 10, 5);
checkIn.close();
try {
checkIn.read(buff, 10, 5);
fail("IOException expected.");
} catch (IOException ee) {
// expected
}
checkInput.close();
}
}