@Override
    public NSImage fileIcon(final Local file, final Integer size) {
        NSImage icon = null;
        if(file.exists()) {
            icon = this.load(file.getAbsolute(), size);
            if(null == icon) {
                return this.cache(file.getName(),
                        this.convert(file.getName(), workspace.iconForFile(file.getAbsolute()), size), size);
            }
        }
        if(null == icon) {
            return this.iconNamed("notfound.tiff", size);
        }
        return icon;
    }
@Test
    public void testCacheTiff() {
        final NSImageIconCache cache = new NSImageIconCache();
        final NSImage icon32 = cache.fileIcon(new FinderLocal("../../img/ftp.tiff"), 32);
        assertNotNull(icon32);
        assertEquals(32, icon32.size().width.intValue());
        assertEquals(32, icon32.size().height.intValue());
        final NSImage icon16 = cache.fileIcon(new FinderLocal("../../img/ftp.tiff"), 16);
        assertNotNull(icon16);
        assertNotSame(icon16, icon32);
        assertEquals(16, icon16.size().width.intValue());
        assertEquals(16, icon16.size().height.intValue());
        final NSImage icon64 = cache.fileIcon(new FinderLocal("../../img/ftp.tiff"), 64);
        assertNotNull(icon64);
        assertNotSame(icon16, icon64);
        assertNotSame(icon32, icon64);
        assertEquals(64, icon64.size().width.intValue());
        assertEquals(64, icon64.size().height.intValue());
        assertNotNull(NSImage.imageNamed("ftp.tiff (16px)"));
        assertNotNull(NSImage.imageNamed("ftp.tiff (32px)"));
        assertNotNull(NSImage.imageNamed("ftp.tiff (64px)"));
    }