Clover coverage report -
Coverage timestamp: Fri Nov 19 2004 13:41:51 PST
file stats: LOC: 92   Methods: 2
NCLOC: 72   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
PersisterTest.java 50% 95.8% 100% 94.2%
coverage coverage
 1    package photospace.meta;
 2   
 3    import java.io.*;
 4    import java.util.*;
 5    import org.apache.commons.io.*;
 6    import org.apache.commons.logging.*;
 7    import com.drew.metadata.*;
 8    import com.drew.metadata.exif.*;
 9    import com.hp.hpl.jena.rdf.model.*;
 10    import junit.framework.*;
 11    import photospace.meta.rdf.*;
 12    import photospace.vfs.*;
 13   
 14    public class PersisterTest
 15    extends TestCase
 16    {
 17    private static final Log log = LogFactory.getLog(PersisterTest.class);
 18   
 19  1 public void testGetMetadataFromJpeg() throws Exception
 20    {
 21  1 PersisterImpl persister = new PersisterImpl();
 22  1 persister.setStoringInJpeg(false);
 23  1 Translator translator = new Translator();
 24  1 persister.setTranslator(translator);
 25  1 FileSystem filesystem = new FileSystemImpl();
 26  1 filesystem.setRoot(new File(System.getProperty("project.root"), "build/test/"));
 27  1 persister.setFilesystem(filesystem);
 28   
 29  1 File jpeg = new File(System.getProperty("project.root"), "build/test/exif-nordf.jpg").getCanonicalFile();
 30   
 31  1 Metadata exif = persister.getExif(jpeg);
 32   
 33  1 Model existing = persister.getRdf(jpeg);
 34  1 if (existing != null)
 35    {
 36  0 persister.removeRdf(jpeg);
 37  0 exif = persister.getExif(jpeg);
 38    }
 39  1 assertNull(persister.getRdf(jpeg));
 40   
 41  1 PhotoMeta photo = translator.fromExif(exif);
 42  1 Model rdf = translator.toRdf(photo);
 43   
 44  1 Statement rdfMake = rdf.getProperty(null, TechVocab.CAMERA);
 45  1 String exifMake = exif.getDirectory(ExifDirectory.class).getString(ExifDirectory.TAG_MODEL);
 46  1 assertNotNull(rdfMake);
 47  1 assertNotNull(exifMake);
 48   
 49  1 PhotoMeta meta = (PhotoMeta) persister.getMeta(jpeg);
 50  1 assertEquals("/exif-nordf.jpg", meta.getPath());
 51  1 assertEquals(photo.getDevice(), rdfMake.getString());
 52  1 assertEquals(photo.getDevice(), exifMake);
 53  1 assertEquals(photo.getDevice(), meta.getDevice());
 54    }
 55   
 56  1 public void testSaveMeta() throws Exception
 57    {
 58  1 PersisterImpl persister = new PersisterImpl();
 59  1 persister.setStoringInJpeg(false);
 60  1 Translator translator = new Translator();
 61  1 persister.setTranslator(translator);
 62  1 FileSystem filesystem = new FileSystemImpl();
 63  1 filesystem.setRoot(new File(System.getProperty("project.root"), "build/test/"));
 64  1 persister.setFilesystem(filesystem);
 65   
 66  1 Date before = new Date();
 67   
 68  1 File exifJpeg = new File(System.getProperty("project.root"), "build/test/exif-nordf.jpg");
 69   
 70  1 File rdfJpeg = new File(System.getProperty("project.root"), "build/test/exif-rdf.jpg");
 71  1 File destJpeg = new File(System.getProperty("java.io.tmpdir"), "PersisterTest.jpg");
 72  1 FileUtils.copyFile(rdfJpeg, destJpeg);
 73   
 74  1 Metadata exif = persister.getExif(exifJpeg);
 75    // make sure file handles are closed properly
 76  1 exif = persister.getExif(exifJpeg);
 77   
 78  1 PhotoMeta exifPhoto = translator.fromExif(exif);
 79  1 persister.saveMeta(destJpeg, exifPhoto);
 80    // make sure file handles are closed properly
 81  1 persister.saveMeta(destJpeg, exifPhoto);
 82   
 83  1 Model rdf = persister.getRdf(destJpeg);
 84  1 PhotoMeta rdfPhoto = (PhotoMeta) translator.fromRdf(rdf);
 85   
 86  1 assertEquals(exifPhoto.getUpdated(), rdfPhoto.getUpdated());
 87  1 assertEquals(exifPhoto, rdfPhoto);
 88  1 assertTrue(before.before(exifPhoto.getUpdated()));
 89  1 assertTrue(before.before(rdfPhoto.getUpdated()));
 90    }
 91   
 92    }