package org.yamcs.yarch.rocksdb; import static org.junit.Assert.assertNotNull; import java.util.Arrays; import org.junit.Test; import org.yamcs.yarch.ColumnDefinition; import org.yamcs.yarch.DataType; import org.yamcs.yarch.PartitioningSpec; import org.yamcs.yarch.TableDefinition; import org.yamcs.yarch.TableWriter; import org.yamcs.yarch.TableWriter.InsertMode; import org.yamcs.yarch.Tuple; import org.yamcs.yarch.TupleDefinition; import org.yamcs.yarch.YarchTestCase; import com.google.common.io.Files; public class RdbEngineTest extends YarchTestCase { @Test public void testCreateDrop() throws Exception { RdbStorageEngine rse = new RdbStorageEngine(ydb); TupleDefinition tdef=new TupleDefinition(); tdef.addColumn(new ColumnDefinition("gentime", DataType.TIMESTAMP)); tdef.addColumn(new ColumnDefinition("packetid", DataType.INT)); TableDefinition tblDef = new TableDefinition("RdbEngineTest", tdef, Arrays.asList("gentime")); String tmpdir=Files.createTempDir().getAbsolutePath(); tblDef.setDataDir(tmpdir); PartitioningSpec pspec=PartitioningSpec.timeAndValueSpec("gentime", "packetid"); pspec.setValueColumnType(DataType.INT); tblDef.setPartitioningSpec(pspec); IllegalArgumentException iae=null; try { rse.newTableReaderStream(tblDef, true, true); } catch (IllegalArgumentException e) { iae=e; } assertNotNull(iae); rse.createTable(tblDef); TableWriter tw = rse.newTableWriter(tblDef, InsertMode.INSERT); Tuple t = new Tuple(tdef, new Object[]{1000L, 10}); tw.onTuple(null, t); rse.dropTable(tblDef); iae=null; try { rse.newTableReaderStream(tblDef, true, true); } catch (IllegalArgumentException e) { iae=e; } assertNotNull(iae); } }