package org.jwildfire.loader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import java.util.Vector; import javax.swing.JDesktopPane; import org.apache.commons.io.IOUtils; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.jwildfire.image.SimpleImage; public class LoaderTest { @BeforeClass public static void before() { try { File f = new File("/dev/shm"); if(!f.isDirectory()) System.err.println("Error, test needs a /dev/shm"); if(!f.exists()) { f.mkdir(); System.out.println("created a /dev/shm"); } } catch (Exception e) { e.printStackTrace(); } } @Test public void testLoadersListNull() { //default should return null since there are no loaders String name = "test"; JDesktopPane desk = new JDesktopPane(); ImageLoader imageloader = LoadersList.getLoaderInstance(desk,name); Assert.assertNull(imageloader); } @Test public void testLoadersList() { //Note at init the name must be ImageSequenceLoader to return from getLoaderInstance //I don't think it is possible to add any other instances to LoadersList.items, there is only //one ImageSequenceLoader, which is created statically String name = "ImageSequenceLoader"; JDesktopPane desk = new JDesktopPane(); ImageLoader imageloader = LoadersList.getLoaderInstance(desk,name); Vector<String> loadVec = LoadersList.getItemVector(); Assert.assertNotNull(imageloader); for(String item:loadVec) System.out.println(item); } @Test public void testImageLoader() throws Exception { //use an image we have available already in classpath FileInputStream fs = new FileInputStream("Delphi/jwildfire_icon.png"); FileOutputStream fo = new FileOutputStream(new File("/dev/shm/test007")); IOUtils.copyLarge(fs, fo); fs.close(); fo.close(); String fn="/dev/shm/test001"; String name = "ImageSequenceLoader"; JDesktopPane desk = new JDesktopPane(); ImageSequenceLoader imageloader = (ImageSequenceLoader)LoadersList.getLoaderInstance(null,name); imageloader.setFilename(fn); imageloader.setFrame(7); Assert.assertEquals(fn,imageloader.getFilename()); Assert.assertEquals(7,imageloader.getFrame()); imageloader.setDesktop(desk); Assert.assertEquals(desk,imageloader.getDesktop()); Assert.assertEquals(name,imageloader.getName()); Assert.assertEquals(name, imageloader.getBeanInfo().getBeanDescriptor().getName()); SimpleImage si = imageloader.loadImage(); Assert.assertEquals(48, si.getImageHeight()); Assert.assertEquals(48, si.getImageWidth()); Assert.assertEquals(1.0, si.getAspect(),.000001); imageloader.execute(); new File("/dev/shm/test007").delete(); } }