/*******************************************************************************
* Copyright (c) 2012-2015 INRIA.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Generoso Pagano - initial API and implementation
******************************************************************************/
package fr.inria.soctrace.test.junit.lib.storage;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.junit.Test;
import fr.inria.soctrace.lib.model.EventType;
import fr.inria.soctrace.lib.model.utils.SoCTraceException;
import fr.inria.soctrace.lib.storage.TraceDBObject;
import fr.inria.soctrace.lib.storage.utils.ModelElementCache;
import fr.inria.soctrace.test.junit.utils.BaseTraceDBTest;
import fr.inria.soctrace.test.junit.utils.TestConstants;
import fr.inria.soctrace.test.junit.utils.importer.VirtualImporter;
/**
* Test Trace DB specific functions
*
* @author "Generoso Pagano <generoso.pagano@inria.fr>"
*/
public class TraceDBObjectTest extends BaseTraceDBTest {
@Test
public final void testGetEventTypesCache() throws SoCTraceException {
ModelElementCache typeCache = traceDB.getEventTypeCache();
for (int i=0; i<VirtualImporter.NUMBER_OF_CATEGORIES*VirtualImporter.NUMBER_OF_TYPES; i++) {
EventType et = typeCache.get(EventType.class, i);
assertEquals(VirtualImporter.TYPE_NAME_PREFIX+i, et.getName());
assertEquals(i, et.getId());
}
assertNull(typeCache.get(EventType.class, VirtualImporter.NUMBER_OF_CATEGORIES*VirtualImporter.NUMBER_OF_TYPES + 1));
}
@Test
public final void testGetMinPage() throws SoCTraceException {
assertEquals(VirtualImporter.PAGE, traceDB.getMinPage());
}
@Test
public final void testGetMaxPage() throws SoCTraceException {
assertEquals(TestConstants.MAX_PAGE, traceDB.getMaxPage());
}
@Test
public final void testGetMinTimestamp() throws SoCTraceException {
assertEquals( VirtualImporter.MIN_TIMESTAMP, traceDB.getMinTimestamp());
}
@Test
public final void testGetMaxTimestamp() throws SoCTraceException {
assertEquals( VirtualImporter.getMaxTimestamp(), traceDB.getMaxTimestamp());
}
@Test
public final void testTimestampIndex() throws SoCTraceException {
// drop non existing index
traceDB.dropTimestampIndex();
traceDB.close();
// create non existing index
traceDB = TraceDBObject.openNewInstance(VirtualImporter.DB_NAME);
traceDB.createTimestampIndex();
traceDB.close();
// create existing index
traceDB = TraceDBObject.openNewInstance(VirtualImporter.DB_NAME);
traceDB.createTimestampIndex();
traceDB.close();
// drop existing index
traceDB = TraceDBObject.openNewInstance(VirtualImporter.DB_NAME);
traceDB.dropTimestampIndex();
traceDB.close();
// reopen for other tests
traceDB = TraceDBObject.openNewInstance(VirtualImporter.DB_NAME);
}
}