Skip to content

Commit 69ae51d

Browse files
committed
fix test
add MapEnumValuesProvider for simple map based mappings
1 parent 4007e99 commit 69ae51d

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package graphql.schema.idl;
2+
3+
import graphql.Assert;
4+
import graphql.PublicApi;
5+
6+
import java.util.Map;
7+
8+
@PublicApi
9+
public class MapEnumValuesProvider implements EnumValuesProvider {
10+
11+
12+
private final Map<String, Object> values;
13+
14+
public MapEnumValuesProvider(Map<String, Object> values) {
15+
Assert.assertNotNull(values, "values can't be null");
16+
this.values = values;
17+
}
18+
19+
@Override
20+
public Object getValue(String name) {
21+
return values.get(name);
22+
}
23+
}

src/test/groovy/graphql/schema/DataFetcherSelectionTest.groovy

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import graphql.StarWarsData
55
import graphql.execution.FieldCollector
66
import graphql.language.AstPrinter
77
import graphql.language.Field
8+
import graphql.schema.idl.MapEnumValuesProvider
89
import graphql.schema.idl.RuntimeWiring
910
import graphql.schema.idl.SchemaGenerator
1011
import graphql.schema.idl.SchemaParser
@@ -49,7 +50,7 @@ class DataFetcherSelectionTest extends Specification {
4950
//
5051
def selectionSet = environment.getSelectionSet().get()
5152

52-
if (! selectionSet.isEmpty()) {
53+
if (!selectionSet.isEmpty()) {
5354
String subSelection = captureSubSelection(selectionSet)
5455
captureList.add(subSelection)
5556
}
@@ -73,6 +74,9 @@ class DataFetcherSelectionTest extends Specification {
7374
return new SelectionCapturingDataFetcher(delegate, captureList)
7475
}
7576

77+
def episodeValuesProvider = new MapEnumValuesProvider([NEWHOPE: 4, EMPIRE: 5, JEDI: 6])
78+
def episodeWiring = newTypeWiring("Episode").enumValues(episodeValuesProvider).build()
79+
7680
RuntimeWiring wiring = RuntimeWiring.newRuntimeWiring()
7781
.type(newTypeWiring("QueryType")
7882
.dataFetchers(
@@ -92,6 +96,7 @@ class DataFetcherSelectionTest extends Specification {
9296
.type(newTypeWiring("Character")
9397
.typeResolver(StarWarsData.getCharacterTypeResolver())
9498
)
99+
.type(episodeWiring)
95100
.build()
96101

97102
def executableStarWarsSchema = load("starWarsSchema.graphqls", wiring)

0 commit comments

Comments
 (0)