ColumnDatabaseAdapter implements DatabaseAdapter<Column<Receipt>> { @NonNull @Override public Column<Receipt> read(@NonNull Cursor cursor) { final int idIndex = cursor.getColumnIndex(AbstractColumnTable.COLUMN_ID); final int uuidIndex = cursor.getColumnIndex(AbstractColumnTable.COLUMN_UUID); final int typeIndex = cursor.getColumnIndex(AbstractColumnTable.COLUMN_TYPE); final int customOrderIndex = cursor.getColumnIndex(AbstractColumnTable.COLUMN_CUSTOM_ORDER_ID); final int id = cursor.getInt(idIndex); final UUID uuid = UUID.fromString(cursor.getString(uuidIndex)); final int type = cursor.getInt(typeIndex); final SyncState syncState = mSyncStateAdapter.read(cursor); final long customOrderId = cursor.getLong(customOrderIndex); return new ColumnBuilderFactory<>(mReceiptColumnDefinitions) .setColumnId(id) .setColumnUuid(uuid) .setColumnType(type) .setSyncState(syncState) .setCustomOrderId(customOrderId) .build(); } ColumnDatabaseAdapter(@NonNull ColumnDefinitions<Receipt> receiptColumnDefinitions);  ColumnDatabaseAdapter(@NonNull ColumnDefinitions<Receipt> receiptColumnDefinitions, @NonNull SyncStateAdapter syncStateAdapter); @NonNull @Override Column<Receipt> read(@NonNull Cursor cursor); @NonNull @Override ContentValues write(@NonNull Column<Receipt> column, @NonNull DatabaseOperationMetadata databaseOperationMetadata); @NonNull @Override Column<Receipt> build(@NonNull Column<Receipt> column, int primaryKey, @NonNull UUID uuid, @NonNull DatabaseOperationMetadata databaseOperationMetadata);  }
@Test public void read() throws Exception { assertEquals(receiptNameColumn, columnDatabaseAdapter.read(cursor)); }