Skip to content

Commit 435de80

Browse files
authored
Merge pull request graphql-java#3693 from jbellenger/jbellenger-IncrementalExecutionResult-transform
transformable IncrementalExecutionResult
2 parents 96cadf7 + 00774a9 commit 435de80

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/main/java/graphql/incremental/IncrementalExecutionResultImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.LinkedList;
1111
import java.util.List;
1212
import java.util.Map;
13+
import java.util.function.Consumer;
1314
import java.util.stream.Collectors;
1415

1516
@ExperimentalApi
@@ -52,6 +53,13 @@ public static Builder fromExecutionResult(ExecutionResult executionResult) {
5253
return new Builder().from(executionResult);
5354
}
5455

56+
@Override
57+
public IncrementalExecutionResult transform(Consumer<ExecutionResult.Builder<?>> builderConsumer) {
58+
var builder = fromExecutionResult(this);
59+
builderConsumer.accept(builder);
60+
return builder.build();
61+
}
62+
5563
@Override
5664
public Map<String, Object> toSpecification() {
5765
Map<String, Object> map = new LinkedHashMap<>(super.toSpecification());

src/test/groovy/graphql/incremental/IncrementalExecutionResultTest.groovy

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package graphql.incremental
22

33
import graphql.execution.ResultPath
4-
import groovy.json.JsonOutput
54
import io.reactivex.Flowable
6-
import org.reactivestreams.Publisher
75
import spock.lang.Specification
86

97
import static graphql.incremental.DeferPayload.newDeferredItem
@@ -120,4 +118,18 @@ class IncrementalExecutionResultTest extends Specification {
120118
newIncrementalExecutionResult.hasNext() == incrementalExecutionResult.hasNext()
121119
newIncrementalExecutionResult.toSpecification() == incrementalExecutionResult.toSpecification()
122120
}
121+
122+
def "transform returns IncrementalExecutionResult"() {
123+
when:
124+
def initial = newIncrementalExecutionResult().hasNext(true).build()
125+
126+
then:
127+
def transformed = initial.transform { b ->
128+
b.addExtension("ext-key", "ext-value")
129+
b.hasNext(false)
130+
}
131+
transformed instanceof IncrementalExecutionResult
132+
transformed.extensions == ["ext-key": "ext-value"]
133+
transformed.hasNext == false
134+
}
123135
}

0 commit comments

Comments
 (0)