/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.importer.bdb;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.io.File;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.DataStoreInfo;
import org.geoserver.catalog.WorkspaceInfo;
import org.geoserver.importer.Directory;
import org.geoserver.importer.ImportContext;
import org.geoserver.importer.ImportTask;
import org.geoserver.importer.ImporterTestSupport;
import org.junit.Test;
import com.sleepycat.je.DatabaseEntry;
public class SerialVersionSafeSerialBindingTest extends ImporterTestSupport {
@Test
public void testSerialize() throws Exception {
createH2DataStore("sf", "data");
Catalog cat = importer.getCatalog();
WorkspaceInfo ws = cat.getFactory().createWorkspace();
ws.setName("sf");
DataStoreInfo ds = cat.getFactory().createDataStore();
ds.setName("data");
File dir = unpack("shape/archsites_epsg_prj.zip");
ImportContext context = importer.createContext(new Directory(dir), ws, ds);
SerialVersionSafeSerialBinding binding = new SerialVersionSafeSerialBinding();
DatabaseEntry e = new DatabaseEntry();
binding.objectToEntry(context, e);
ImportContext context2 = (ImportContext) binding.entryToObject(e);
context2.reattach(cat, true);
assertNotNull(context2.getTargetWorkspace().getId());
assertNotNull(context2.getTargetStore().getId());
assertEquals(1, context2.getTasks().size());
ImportTask task = context2.getTasks().get(0);
assertNotNull(task.getStore());
assertNotNull(task.getStore().getId());
assertNotNull(task.getStore().getWorkspace());
assertNotNull(task.getLayer());
assertNotNull(task.getLayer().getResource());
assertNull(task.getLayer().getId());
assertNull(task.getLayer().getResource().getId());
assertNotNull(task.getLayer().getResource().getStore());
assertNotNull(task.getLayer().getResource().getStore().getId());
}
}