package org.springmodules.lucene.index.document.handler.file;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import junit.framework.TestCase;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springmodules.lucene.util.IOUtils;
public class PdfBoxDocumentHandlerTests extends TestCase {
private Resource getPdfResource() {
return new ClassPathResource("/org/springmodules/lucene/index/document/handler/file/quick.pdf");
}
private void checkField(Document document, String fieldKey, boolean notNull) {
Field field = document.getField(fieldKey);
if( notNull) {
assertNotNull(field);
}
}
public void testGetDocument() {
PdfBoxDocumentHandler documentHandler = new PdfBoxDocumentHandler();
Resource pdfResource = getPdfResource();
Map description = new HashMap();
InputStream inputStream = null;
try {
inputStream = pdfResource.getInputStream();
Document document = documentHandler.doGetDocumentWithInputStream(description, inputStream);
checkField(document, "path", false);
checkField(document, "url", false);
checkField(document, "contents", true);
checkField(document, "summary", true);
checkField(document, "modified", false);
checkField(document, "uid", false);
checkField(document, "CreationDate", true);
checkField(document, "Creator", true);
checkField(document, "Keywords", false);
checkField(document, "ModificationDate", false);
checkField(document, "Producer", true);
checkField(document, "Subject", false);
checkField(document, "Trapped", false);
} catch(Exception ex) {
ex.printStackTrace();
fail();
} finally {
IOUtils.closeInputStream(inputStream);
}
}
}