@Test public void testAddIndex() { when(storeFactory.createStore(anyString())).thenReturn(storageMock); when(storageMock.openTable(anyString())).thenReturn(tableMock); proxy.openTable(TEST_TABLE_NAME); verify(storeFactory, times(1)).createStore(eq(TEST_TABLE_NAME)); verify(storageMock, times(1)).openTable(eq(TEST_TABLE_NAME)); proxy.addIndex(TEST_INDEX, INDEX_SCHEMA.serialize()); verify(storageMock, times(1)).addIndex(eq(TEST_TABLE_NAME), eq(INDEX_SCHEMA)); verify(tableMock, times(1)).insertTableIndex(eq(INDEX_SCHEMA)); verify(tableMock, times(1)).flush(); }
@Test(expected = IllegalStateException.class) public void testAddIndexTableNotOpen() { when(storeFactory.createStore(anyString())).thenReturn(storageMock); when(storageMock.openTable(anyString())).thenReturn(tableMock); proxy.addIndex(TEST_INDEX, INDEX_SCHEMA.serialize()); verify(storageMock, never()).addIndex(eq(TEST_TABLE_NAME), eq(INDEX_SCHEMA)); verify(tableMock, never()).insertTableIndex(eq(INDEX_SCHEMA)); verify(tableMock, never()).flush(); }
@Test(expected = IllegalArgumentException.class) public void testAddUniqueIndex() { when(storeFactory.createStore(anyString())).thenReturn(storageMock); when(storageMock.openTable(anyString())).thenReturn(tableMock); proxy.openTable(TEST_TABLE_NAME); verify(storeFactory, times(1)).createStore(eq(TEST_TABLE_NAME)); verify(storageMock, times(1)).openTable(eq(TEST_TABLE_NAME)); final IndexSchema uniqueIndex = new IndexSchema("uniqueIdx", ImmutableList.<String>of(TEST_COLUMN), true); proxy.addIndex(TEST_INDEX, uniqueIndex.serialize()); verify(storageMock, never()).addIndex(eq(TEST_TABLE_NAME), eq(INDEX_SCHEMA)); verify(tableMock, never()).insertTableIndex(eq(INDEX_SCHEMA)); verify(tableMock, never()).flush(); }
@Test(expected = NullPointerException.class) public void testDeserializeInvalidIndexName() { IndexSchema.deserialize(TEST_INDEX_SCHEMA.serialize(), null); }
@Test(expected = IllegalArgumentException.class) public void testDeserializeEmptyIndexName() { IndexSchema.deserialize(TEST_INDEX_SCHEMA.serialize(), ""); }
@Test(expected = IllegalArgumentException.class) public void testAddIndexEmptyIndexName() { proxy.addIndex("", INDEX_SCHEMA.serialize()); }
@Test(expected = NullPointerException.class) public void testAddIndexInvalidIndexName() { proxy.addIndex(null, INDEX_SCHEMA.serialize()); }
@Test public void testDeserializeValidSerializedSchemaAndIndexName() { final IndexSchema actualSchema = IndexSchema.deserialize(TEST_INDEX_SCHEMA.serialize(), TEST_INDEX_SCHEMA.getIndexName()); assertEquals(TEST_INDEX_SCHEMA.getIndexName(), actualSchema.getIndexName()); assertEquals(TEST_INDEX_SCHEMA, actualSchema); }