Package org.geotools.data.directory

Source Code of org.geotools.data.directory.DataStoreCacheTest

package org.geotools.data.directory;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.io.File;
import java.util.Arrays;

import org.geotools.data.directory.DirectoryTypeCache;
import org.junit.Test;


/**
*
*
* @source $URL$
*/
public class DataStoreCacheTest extends DirectoryTestSupport {
   
    private static final String DESTDIR = "shapes";
    // we need a long delay for builds under UNIX, the timestap is coarse
    // (on windows it worked with 100ms)
    private static final int DELAY = 1000;

    @Test
    public void testInitialization() throws Exception {
        copyShapefiles("shapes/archsites.shp");
        File f = copyShapefiles("shapes/bugsites.shp");
        tempDir = f.getParentFile();
       
        DirectoryTypeCache cache = new DirectoryTypeCache(tempDir, getFileStoreFactory());
        System.out.println(cache.getTypeNames());
        assertEquals(2, cache.getTypeNames().size());
        assertTrue(cache.getTypeNames().contains("archsites"));
        assertTrue(cache.getTypeNames().contains("bugsites"));
        cache.dispose();
    }
   
    @Test
    public void testAddNewDataStore() throws Exception {
        File f = copyShapefiles("shapes/bugsites.shp");
        tempDir = f.getParentFile();
        DirectoryTypeCache cache = new DirectoryTypeCache(tempDir, getFileStoreFactory());
       
        assertEquals(1, cache.getTypeNames().size());
        assertTrue(cache.getTypeNames().contains("bugsites"));
       
        // give the os some time, the directory last modification
        // time has a os specific time resolution
        Thread.sleep(DELAY);
        copyShapefiles("shapes/archsites.shp");
        assertEquals(2, cache.getTypeNames().size());
        assertTrue(cache.getTypeNames().contains("bugsites"));
        assertTrue(cache.getTypeNames().contains("archsites"));
        cache.dispose();
    }
   
    @Test
    public void testRemoveDataStore() throws Exception {
        File f = copyShapefiles("shapes/bugsites.shp");
        copyShapefiles("shapes/archsites.shp");
        tempDir = f.getParentFile();
        DirectoryTypeCache cache = new DirectoryTypeCache(tempDir, getFileStoreFactory());
       
        assertEquals(2, cache.getTypeNames().size());
        assertTrue(cache.getTypeNames().contains("bugsites"));
        assertTrue(cache.getTypeNames().contains("archsites"));
       
        // give the os some time, the directory last modification
        // time has a os specific time resolution
        Thread.sleep(DELAY);
        assertTrue(new File(tempDir, "archsites.shp").delete());
        assertTrue(new File(tempDir, "archsites.dbf").delete());
        assertTrue(new File(tempDir, "archsites.shx").delete());
        System.out.println(Arrays.asList(tempDir.listFiles()));
        assertEquals(1, cache.getTypeNames().size());
        assertTrue(cache.getTypeNames().contains("bugsites"));
        cache.dispose();
    }
   
    @Test
    public void testRemoveType() throws Exception {
        File f = copyShapefiles("shapes/bugsites.shp");
        copyShapefiles("shapes/archsites.shp");
        tempDir = f.getParentFile();
        DirectoryTypeCache cache = new DirectoryTypeCache(tempDir, getFileStoreFactory());
        assertEquals(2, cache.getTypeNames().size());
        assertTrue(cache.getTypeNames().contains("archsites"));
        assertTrue(cache.getTypeNames().contains("bugsites"));
       
        // give the os some time, the directory last modification
        // time has a os specific time resolution
        Thread.sleep(DELAY);
        assertTrue(new File(tempDir, "archsites.shp").delete());
        assertEquals(1, cache.getTypeNames().size());
        assertTrue(cache.getTypeNames().contains("bugsites"));
        cache.dispose();
    }
   
    @Test
    public void testAddType() throws Exception {
        File f = copyShapefiles("shapes/bugsites.shp");
        tempDir = f.getParentFile();
        DirectoryTypeCache cache = new DirectoryTypeCache(tempDir, getFileStoreFactory());
        assertEquals(1, cache.getTypeNames().size());
        assertTrue(cache.getTypeNames().contains("bugsites"));
       
        // give the os some time, the directory last modification
        // time has a os specific time resolution
        Thread.sleep(DELAY);
        copyShapefiles("shapes/archsites.shp");
        assertEquals(2, cache.getTypeNames().size());
        assertTrue(cache.getTypeNames().contains("bugsites"));
        assertTrue(cache.getTypeNames().contains("archsites"));
        cache.dispose();
    }

}
TOP

Related Classes of org.geotools.data.directory.DataStoreCacheTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.