warnings = 0;
url = this.getClass().getClassLoader().getResource(arcFile);
file = new File(getUrlPath(url));
ram = new RandomAccessFile(file, "r");
in = new RandomAccessFileInputStream(ram);
reader = ArcReaderFactory.getReaderUncompressed(in);
reader.setBlockDigestEnabled( bDigest );
Assert.assertTrue(reader.setBlockDigestAlgorithm( "sha1" ));
reader.setPayloadDigestEnabled( bDigest );
Assert.assertTrue(reader.setPayloadDigestAlgorithm( "sha1" ));
for (int i=0; i<entries.size(); ++i) {
entry = entries.get(i);
try {
reader.getNextRecordFrom(in, entry.offset);
Assert.fail("Exception expected!");
} catch (IllegalStateException e) {
}
try {
reader.getNextRecordFrom(in, entry.offset, 8192);
Assert.fail("Exception expected!");
} catch (IllegalStateException e) {
}
if ((record = reader.getNextRecord()) != null) {
if (bDebugOutput) {
TestBaseUtils.printRecord(record);
//RecordDebugBase.printRecordErrors(record);
}
record.close();
consumed += record.getConsumed();
Assert.assertEquals(record.consumed, record.getConsumed());
if ( bDigest ) {
if ( (record.payload != null && record.computedBlockDigest == null)
|| (record.httpHeader != null && record.computedPayloadDigest == null) ) {
Assert.fail( "Digest missing!" );
}
}
++records;
switch (records) {
case 1:
Assert.assertEquals(ArcRecordBase.RT_VERSION_BLOCK, record.recordType);
Assert.assertTrue(record.isCompliant());
Assert.assertNotNull(record.versionHeader);
Assert.assertNotNull(record.versionHeader.isValid());
Assert.assertEquals(ArcVersion.VERSION_1_1, record.versionHeader.version);
break;
default:
Assert.assertEquals(ArcRecordBase.RT_ARC_RECORD, record.recordType);
Assert.assertTrue(record.isCompliant());
Assert.assertNull(record.versionHeader);
break;
}
if (record.diagnostics.hasErrors()) {
errors += record.diagnostics.getErrors().size();
}
if (record.diagnostics.hasWarnings()) {
warnings += record.diagnostics.getWarnings().size();
}
if (record.header.urlUri.compareTo(entry.recordId) != 0) {
Assert.fail("Wrong record");
}
} else {
Assert.fail("Location incorrect");
}
}
record = reader.getNextRecord();
Assert.assertNull(record);
Assert.assertEquals(ram.length(), reader.getConsumed());
Assert.assertEquals(ram.length(), reader.getOffset());
Assert.assertEquals(ram.length(), consumed);
reader.close();
Assert.assertEquals(ram.length(), reader.getConsumed());
Assert.assertEquals(ram.length(), reader.getOffset());
Assert.assertEquals(ram.length(), consumed);
in.close();
ram.close();
if (bDebugOutput) {
TestBaseUtils.printStatus(records, errors, warnings);
}
Assert.assertEquals(expected_records, records);
Assert.assertEquals(0, errors);
Assert.assertEquals(0, warnings);
/*
* getReaderUncompressed(in, buffer_size) / getNextRecord().
*/
records = 0;
consumed = 0;
errors = 0;
warnings = 0;
url = this.getClass().getClassLoader().getResource(arcFile);
file = new File(getUrlPath(url));
ram = new RandomAccessFile(file, "r");
in = new RandomAccessFileInputStream(ram);
reader = ArcReaderFactory.getReaderUncompressed(in, 8192);
reader.setBlockDigestEnabled( bDigest );
Assert.assertTrue(reader.setBlockDigestAlgorithm( "sha1" ));