@Test
public void alterTableDropColumnTest() throws UnsupportedException, ExecutionException {

    TableName tableName = new TableName(DB_NAME, TABLE_NAME);
    ColumnMetadata columnMetadata = new ColumnMetadata(new ColumnName(DB_NAME, TABLE_NAME, COLUMN_NAME),
                    new Object[0], new ColumnType(DataType.INT));
    AlterOptions alterOptions = new AlterOptions(AlterOperation.DROP_COLUMN, null, columnMetadata);
    DBCollection collection = mock(DBCollection.class);
    when(client.getDB(DB_NAME)).thenReturn(database);
    when(database.getCollection(TABLE_NAME)).thenReturn(collection);
    DBObject dropColumn = new BasicDBObject(COLUMN_NAME, new BasicDBObject("$unset", new BasicDBObject()));
    PowerMockito.mockStatic(AlterOptionsUtils.class);
    Mockito.when(AlterOptionsUtils.buildDropColumnDBObject(COLUMN_NAME)).thenReturn(dropColumn);
    mongoMetadataEngine.alterTable(tableName, alterOptions, connection);
    verify(collection, times(1)).updateMulti(any(BasicDBObject.class), Matchers.eq(dropColumn));
}