Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added a loadImpl function to allow delegate overriding better - fixed…
… test
  • Loading branch information
bbakerman committed Oct 14, 2025
commit 2f3fa1e6d058d37c79c82e9c49b7f3d696ffb4e8
31 changes: 27 additions & 4 deletions src/test/java/org/dataloader/DelegatingDataLoaderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import org.dataloader.fixtures.TestKit;
import org.dataloader.fixtures.parameterized.DelegatingDataLoaderFactory;
import org.jspecify.annotations.NonNull;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
import org.junit.jupiter.api.Test;
Expand All @@ -11,6 +10,7 @@
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;

import static org.awaitility.Awaitility.await;
import static org.hamcrest.CoreMatchers.equalTo;
Expand All @@ -34,14 +34,37 @@ void canUnwrapDataLoaders() {
}

@Test
@NullMarked
void canCreateAClassOk() {
DataLoader<String, String> rawLoader = TestKit.idLoader();
DelegatingDataLoader<String, String> delegatingDataLoader = new DelegatingDataLoader<>(rawLoader) {
@Override
public CompletableFuture<String> load(@NonNull String key, @Nullable Object keyContext) {
CompletableFuture<String> cf = super.load(key, keyContext);
private CompletableFuture<String> enhance(CompletableFuture<String> cf) {
return cf.thenApply(v -> "|" + v + "|");
}

private CompletableFuture<List<String>> enhanceList(CompletableFuture<List<String>> cf) {
return cf.thenApply(v -> v.stream().map(s -> "|" + s + "|").collect(Collectors.toList()));
}

@Override
public CompletableFuture<String> load(String key, @Nullable Object keyContext) {
return enhance(super.load(key, keyContext));
}

@Override
public CompletableFuture<String> load(String key) {
return enhance(super.load(key));
}

@Override
public CompletableFuture<List<String>> loadMany(List<String> keys) {
return enhanceList(super.loadMany(keys));
}

@Override
public CompletableFuture<List<String>> loadMany(List<String> keys, List<Object> keyContexts) {
return enhanceList(super.loadMany(keys, keyContexts));
}
};

assertThat(delegatingDataLoader.getDelegate(), is(rawLoader));
Expand Down