ColumnDatabaseAdapter implements DatabaseAdapter<Column<Receipt>> { @NonNull @Override public Column<Receipt> build(@NonNull Column<Receipt> column, int primaryKey, @NonNull UUID uuid, @NonNull DatabaseOperationMetadata databaseOperationMetadata) { return new ColumnBuilderFactory<>(mReceiptColumnDefinitions) .setColumnId(primaryKey) .setColumnUuid(uuid) .setColumnType(column.getType()) .setSyncState(mSyncStateAdapter.get(column.getSyncState(), databaseOperationMetadata)) .setCustomOrderId(column.getCustomOrderId()) .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 build() throws Exception { assertEquals(receiptNameColumn, columnDatabaseAdapter.build(column, ID, COLUMN_UUID, mock(DatabaseOperationMetadata.class))); assertEquals(receiptNameColumn.getSyncState(), columnDatabaseAdapter.build(column, ID, COLUMN_UUID, mock(DatabaseOperationMetadata.class)).getSyncState()); }