@Test
public void testJPEGGeo() throws Exception {

    Metadata metadata = new Metadata();
    metadata.set(Metadata.CONTENT_TYPE, "image/jpeg");
    try (InputStream stream = getClass().getResourceAsStream("/test-documents/testJPEG_GEO.jpg")) {
        parser.parse(stream, new DefaultHandler(), metadata, new ParseContext());
    }
    // Geo tags
    assertEquals("12.54321", metadata.get(Metadata.LATITUDE));
    assertEquals("-54.1234", metadata.get(Metadata.LONGITUDE));
    // Core EXIF/TIFF tags
    assertEquals("3888", metadata.get(Metadata.IMAGE_WIDTH));
    assertEquals("2592", metadata.get(Metadata.IMAGE_LENGTH));
    assertEquals("8", metadata.get(Metadata.BITS_PER_SAMPLE));
    assertEquals(null, metadata.get(Metadata.SAMPLES_PER_PIXEL));
    assertEquals("6.25E-4", metadata.get(Metadata.EXPOSURE_TIME)); // 1/1600
    assertEquals("5.6", metadata.get(Metadata.F_NUMBER));
    assertEquals("false", metadata.get(Metadata.FLASH_FIRED));
    assertEquals("194.0", metadata.get(Metadata.FOCAL_LENGTH));
    assertEquals("400", metadata.get(Metadata.ISO_SPEED_RATINGS));
    assertEquals("Canon", metadata.get(Metadata.EQUIPMENT_MAKE));
    assertEquals("Canon EOS 40D", metadata.get(Metadata.EQUIPMENT_MODEL));
    assertEquals("Adobe Photoshop CS3 Macintosh", metadata.get(Metadata.SOFTWARE));
    assertEquals(null, metadata.get(Metadata.ORIENTATION)); // Not present
    assertEquals("240.0", metadata.get(Metadata.RESOLUTION_HORIZONTAL));
    assertEquals("240.0", metadata.get(Metadata.RESOLUTION_VERTICAL));
    assertEquals("Inch", metadata.get(Metadata.RESOLUTION_UNIT));
    // Common tags
    assertEquals("Date/Time Original for when the photo was taken, unspecified time zone",
            "2009-08-11T09:09:45", metadata.get(TikaCoreProperties.CREATED));
    assertEquals("This image has different Date/Time than Date/Time Original, so it is probably modification date",
            "2009-10-02T23:02:49", metadata.get(Metadata.LAST_MODIFIED));
    assertEquals("Date/Time Original should be stored in EXIF field too",
            "2009-08-11T09:09:45", metadata.get(TIFF.ORIGINAL_DATE));
    assertEquals("canon-55-250", metadata.getValues(TikaCoreProperties.SUBJECT)[0]);
}