Reformat sample applications

Fixes gh-54
This commit is contained in:
Brian Clozel
2021-06-02 14:29:19 +02:00
parent 39937679e3
commit 53e2a379de
18 changed files with 80 additions and 129 deletions

View File

@@ -22,8 +22,8 @@ import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
/**
* WebFilter that inserts a key-value pair into the Reactor context which is
* transferred to and accessible in Reactor data fetchers.
* WebFilter that inserts a key-value pair into the Reactor context which is transferred
* to and accessible in Reactor data fetchers.
*/
public class ContextWebFilter implements WebFilter {

View File

@@ -41,19 +41,17 @@ public class DataRepository {
}
public Flux<String> getGreetings(DataFetchingEnvironment environment) {
return Mono.delay(Duration.ofMillis(50)).flatMapMany(aLong ->
Flux.deferContextual(context -> {
String name = context.get("name");
return Flux.just("Hi", "Bonjour", "Hola", "Ciao", "Zdravo").map(s -> s + " " + name);
}));
return Mono.delay(Duration.ofMillis(50)).flatMapMany(aLong -> Flux.deferContextual(context -> {
String name = context.get("name");
return Flux.just("Hi", "Bonjour", "Hola", "Ciao", "Zdravo").map(s -> s + " " + name);
}));
}
public Flux<String> getGreetingsStream(DataFetchingEnvironment environment) {
return Mono.delay(Duration.ofMillis(50)).flatMapMany(aLong ->
Flux.deferContextual(context -> {
String name = context.get("name");
return Flux.just("Hi", "Bonjour", "Hola", "Ciao", "Zdravo").map(s -> s + " " + name);
}));
return Mono.delay(Duration.ofMillis(50)).flatMapMany(aLong -> Flux.deferContextual(context -> {
String name = context.get("name");
return Flux.just("Hi", "Bonjour", "Hola", "Ciao", "Zdravo").map(s -> s + " " + name);
}));
}
}

View File

@@ -26,26 +26,22 @@ public class SampleWiring implements RuntimeWiringCustomizer {
private final DataRepository dataRepository;
public SampleWiring(@Autowired DataRepository dataRepository) {
this.dataRepository = dataRepository;
}
@Override
public void customize(RuntimeWiring.Builder builder) {
builder.type("Query", typeBuilder ->
typeBuilder.dataFetcher("greeting", this.dataRepository::getBasic));
builder.type("Query", typeBuilder -> typeBuilder.dataFetcher("greeting", this.dataRepository::getBasic));
builder.type("Query", typeBuilder ->
typeBuilder.dataFetcher("greetingMono", this.dataRepository::getGreeting));
builder.type("Query", typeBuilder -> typeBuilder.dataFetcher("greetingMono", this.dataRepository::getGreeting));
builder.type("Query", typeBuilder ->
typeBuilder.dataFetcher("greetingsFlux", this.dataRepository::getGreetings));
builder.type("Query",
typeBuilder -> typeBuilder.dataFetcher("greetingsFlux", this.dataRepository::getGreetings));
builder.type("Subscription", typeBuilder ->
typeBuilder.dataFetcher("greetings", this.dataRepository::getGreetingsStream));
builder.type("Subscription",
typeBuilder -> typeBuilder.dataFetcher("greetings", this.dataRepository::getGreetingsStream));
}
}

View File

@@ -32,29 +32,21 @@ public class QueryTests {
private GraphQlTester graphQlTester;
@BeforeEach
public void setUp(@Autowired WebGraphQlHandler handler) {
this.graphQlTester = GraphQlTester.create(webInput ->
handler.handle(webInput).contextWrite(context -> context.put("name", "James")));
this.graphQlTester = GraphQlTester
.create(webInput -> handler.handle(webInput).contextWrite(context -> context.put("name", "James")));
}
@Test
void greetingMono() {
this.graphQlTester.query("{greetingMono}")
.execute()
.path("greetingMono")
.entity(String.class)
this.graphQlTester.query("{greetingMono}").execute().path("greetingMono").entity(String.class)
.isEqualTo("Hello James");
}
@Test
void greetingsFlux() {
this.graphQlTester.query("{greetingsFlux}")
.execute()
.path("greetingsFlux")
.entityList(String.class)
this.graphQlTester.query("{greetingsFlux}").execute().path("greetingsFlux").entityList(String.class)
.containsExactly("Hi James", "Bonjour James", "Hola James", "Ciao James", "Zdravo James");
}

View File

@@ -34,44 +34,31 @@ public class SubscriptionTests {
private GraphQlTester graphQlTester;
@BeforeEach
public void setUp(@Autowired WebGraphQlHandler handler) {
this.graphQlTester = GraphQlTester.create(webInput ->
handler.handle(webInput).contextWrite(context -> context.put("name", "James")));
this.graphQlTester = GraphQlTester
.create(webInput -> handler.handle(webInput).contextWrite(context -> context.put("name", "James")));
}
@Test
void subscriptionWithEntityPath() {
String query = "subscription { greetings }";
Flux<String> result = this.graphQlTester.query(query)
.executeSubscription()
.toFlux("greetings", String.class);
Flux<String> result = this.graphQlTester.query(query).executeSubscription().toFlux("greetings", String.class);
StepVerifier.create(result)
.expectNext("Hi James")
.expectNext("Bonjour James")
.expectNext("Hola James")
.expectNext("Ciao James")
.expectNext("Zdravo James")
.verifyComplete();
StepVerifier.create(result).expectNext("Hi James").expectNext("Bonjour James").expectNext("Hola James")
.expectNext("Ciao James").expectNext("Zdravo James").verifyComplete();
}
@Test
void subscriptionWithResponseSpec() {
String query = "subscription { greetings }";
Flux<GraphQlTester.ResponseSpec> result = this.graphQlTester.query(query)
.executeSubscription()
.toFlux();
Flux<GraphQlTester.ResponseSpec> result = this.graphQlTester.query(query).executeSubscription().toFlux();
StepVerifier.create(result)
.consumeNextWith(spec -> spec.path("greetings").valueExists())
StepVerifier.create(result).consumeNextWith(spec -> spec.path("greetings").valueExists())
.consumeNextWith(spec -> spec.path("greetings").matchesJson("\"Bonjour James\""))
.consumeNextWith(spec -> spec.path("greetings").matchesJson("\"Hola James\""))
.expectNextCount(2)
.consumeNextWith(spec -> spec.path("greetings").matchesJson("\"Hola James\"")).expectNextCount(2)
.verifyComplete();
}