@Test
public void onCreate() {

    final TableDefaultsCustomizer customizer = mock(TableDefaultsCustomizer.class);
    mCategoriesTable.onCreate(mSQLiteDatabase, customizer);
    verify(mSQLiteDatabase, atLeastOnce()).execSQL(mSqlCaptor.capture());
    verify(customizer).insertCategoryDefaults(mCategoriesTable);
    final List<String> allValues = mSqlCaptor.getAllValues();
    assertEquals(1, allValues.size());
    String creatingTable = allValues.get(0);
    assertTrue(creatingTable.contains("CREATE TABLE categories"));
    assertTrue(creatingTable.contains("id INTEGER PRIMARY KEY AUTOINCREMENT"));
    assertTrue(creatingTable.contains("name TEXT"));
    assertTrue(creatingTable.contains("code TEXT"));
    assertTrue(creatingTable.contains("breakdown BOOLEAN"));
    assertTrue(creatingTable.contains("drive_sync_id TEXT"));
    assertTrue(creatingTable.contains("drive_is_synced BOOLEAN DEFAULT 0"));
    assertTrue(creatingTable.contains("drive_marked_for_deletion BOOLEAN DEFAULT 0"));
    assertTrue(creatingTable.contains("last_local_modification_time DATE"));
    assertTrue(creatingTable.contains("custom_order_id INTEGER DEFAULT 0"));
    assertTrue(creatingTable.contains("entity_uuid TEXT"));
}