Search in sources :

Example 6 with Author

use of org.springframework.graphql.Author in project spring-graphql by spring-projects.

the class SchemaMappingInvocationTests method mutation.

@Test
void mutation() {
    String document = "mutation { " + "  addAuthor(firstName:\"James\", lastName:\"Joyce\") { " + "    id" + "    firstName" + "    lastName" + "  }" + "}";
    Mono<RequestOutput> resultMono = graphQlService().execute(TestRequestInput.forDocument(document));
    Author author = GraphQlResponse.from(resultMono).toEntity("addAuthor", Author.class);
    assertThat(author.getId()).isEqualTo(99);
    assertThat(author.getFirstName()).isEqualTo("James");
    assertThat(author.getLastName()).isEqualTo("Joyce");
}
Also used : RequestOutput(org.springframework.graphql.RequestOutput) Author(org.springframework.graphql.Author) Test(org.junit.jupiter.api.Test)

Example 7 with Author

use of org.springframework.graphql.Author in project spring-graphql by spring-projects.

the class SchemaMappingInvocationTests method queryWithArgumentViaDataFetchingEnvironment.

@Test
void queryWithArgumentViaDataFetchingEnvironment() {
    String document = "{ " + "  authorById(id:\"101\") { " + "    id" + "    firstName" + "    lastName" + "  }" + "}";
    AtomicReference<GraphQLContext> contextRef = new AtomicReference<>();
    RequestInput requestInput = TestRequestInput.forDocument(document);
    requestInput.configureExecutionInput((executionInput, builder) -> {
        contextRef.set(executionInput.getGraphQLContext());
        return executionInput;
    });
    Mono<RequestOutput> resultMono = graphQlService().execute(requestInput);
    Author author = GraphQlResponse.from(resultMono).toEntity("authorById", Author.class);
    assertThat(author.getId()).isEqualTo(101);
    assertThat(author.getFirstName()).isEqualTo("George");
    assertThat(author.getLastName()).isEqualTo("Orwell");
    assertThat(contextRef.get().<String>get("key")).isEqualTo("value");
}
Also used : RequestOutput(org.springframework.graphql.RequestOutput) GraphQLContext(graphql.GraphQLContext) Author(org.springframework.graphql.Author) AtomicReference(java.util.concurrent.atomic.AtomicReference) RequestInput(org.springframework.graphql.RequestInput) TestRequestInput(org.springframework.graphql.TestRequestInput) Test(org.junit.jupiter.api.Test)

Example 8 with Author

use of org.springframework.graphql.Author in project spring-graphql by spring-projects.

the class QuerydslDataFetcherTests method shouldFetchMultipleItemsWithListInput.

@Test
void shouldFetchMultipleItemsWithListInput() {
    Book book1 = new Book(42L, "Hitchhiker's Guide to the Galaxy", new Author(0L, "Douglas", "Adams"));
    Book book2 = new Book(53L, "Breaking Bad", new Author(0L, "", "Heisenberg"));
    mockRepository.saveAll(Arrays.asList(book1, book2));
    Mono<WebOutput> output = graphQlSetup(mockRepository).toWebGraphQlHandler().handleRequest(input("{ booksById(id: [42,53]) {name}}"));
    List<String> names = GraphQlResponse.from(output).toList("booksById", Book.class).stream().map(Book::getName).collect(Collectors.toList());
    assertThat(names).containsExactlyInAnyOrder(book1.getName(), book2.getName());
}
Also used : WebOutput(org.springframework.graphql.web.WebOutput) Author(org.springframework.graphql.Author) Test(org.junit.jupiter.api.Test)

Example 9 with Author

use of org.springframework.graphql.Author in project spring-graphql by spring-projects.

the class QuerydslDataFetcherTests method shouldFetchSingleItems.

@Test
void shouldFetchSingleItems() {
    Book book = new Book(42L, "Hitchhiker's Guide to the Galaxy", new Author(0L, "Douglas", "Adams"));
    mockRepository.save(book);
    Consumer<GraphQlSetup> tester = setup -> {
        Mono<WebOutput> output = setup.toWebGraphQlHandler().handleRequest(input("{ bookById(id: 42) {name}}"));
        Book actualBook = GraphQlResponse.from(output).toEntity("bookById", Book.class);
        assertThat(actualBook.getName()).isEqualTo(book.getName());
    };
    // explicit wiring
    tester.accept(graphQlSetup("bookById", QuerydslDataFetcher.builder(mockRepository).single()));
    // auto registration
    tester.accept(graphQlSetup(mockRepository));
}
Also used : Arrays(java.util.Arrays) GraphQlRepository(org.springframework.graphql.data.GraphQlRepository) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) BookSource(org.springframework.graphql.BookSource) GraphQlSetup(org.springframework.graphql.GraphQlSetup) WebOutput(org.springframework.graphql.web.WebOutput) CrudRepository(org.springframework.data.repository.CrudRepository) ReactiveQuerydslPredicateExecutor(org.springframework.data.querydsl.ReactiveQuerydslPredicateExecutor) Value(org.springframework.beans.factory.annotation.Value) Author(org.springframework.graphql.Author) ArgumentCaptor(org.mockito.ArgumentCaptor) Repository(org.springframework.data.repository.Repository) KeyValueRepositoryFactory(org.springframework.data.keyvalue.repository.support.KeyValueRepositoryFactory) DataFetcher(graphql.schema.DataFetcher) Nullable(org.springframework.lang.Nullable) URI(java.net.URI) GraphQlResponse(org.springframework.graphql.GraphQlResponse) QuerydslPredicateExecutor(org.springframework.data.querydsl.QuerydslPredicateExecutor) WebGraphQlHandler(org.springframework.graphql.web.WebGraphQlHandler) RuntimeWiringConfigurer(org.springframework.graphql.execution.RuntimeWiringConfigurer) QuerydslBinderCustomizer(org.springframework.data.querydsl.binding.QuerydslBinderCustomizer) HttpHeaders(org.springframework.http.HttpHeaders) Mono(reactor.core.publisher.Mono) MapKeyValueAdapter(org.springframework.data.map.MapKeyValueAdapter) Mockito.when(org.mockito.Mockito.when) Collectors(java.util.stream.Collectors) Mockito.verify(org.mockito.Mockito.verify) Consumer(java.util.function.Consumer) Test(org.junit.jupiter.api.Test) Flux(reactor.core.publisher.Flux) List(java.util.List) WebInput(org.springframework.graphql.web.WebInput) KeyValueTemplate(org.springframework.data.keyvalue.core.KeyValueTemplate) Optional(java.util.Optional) Predicate(com.querydsl.core.types.Predicate) Mockito.any(org.mockito.Mockito.any) Collections(java.util.Collections) QuerydslBindings(org.springframework.data.querydsl.binding.QuerydslBindings) Mockito.mock(org.mockito.Mockito.mock) GraphQlSetup(org.springframework.graphql.GraphQlSetup) Mono(reactor.core.publisher.Mono) Author(org.springframework.graphql.Author) Test(org.junit.jupiter.api.Test)

Example 10 with Author

use of org.springframework.graphql.Author in project spring-graphql by spring-projects.

the class QuerydslDataFetcherTests method shouldFetchMultipleItems.

@Test
void shouldFetchMultipleItems() {
    Book book1 = new Book(42L, "Hitchhiker's Guide to the Galaxy", new Author(0L, "Douglas", "Adams"));
    Book book2 = new Book(53L, "Breaking Bad", new Author(0L, "", "Heisenberg"));
    mockRepository.saveAll(Arrays.asList(book1, book2));
    Consumer<GraphQlSetup> tester = graphQlSetup -> {
        Mono<WebOutput> output = graphQlSetup.toWebGraphQlHandler().handleRequest(input("{ books {name}}"));
        List<String> names = GraphQlResponse.from(output).toList("books", Book.class).stream().map(Book::getName).collect(Collectors.toList());
        assertThat(names).containsExactlyInAnyOrder(book1.getName(), book2.getName());
    };
    // explicit wiring
    tester.accept(graphQlSetup("books", QuerydslDataFetcher.builder(mockRepository).many()));
    // auto registration
    tester.accept(graphQlSetup(mockRepository));
}
Also used : Arrays(java.util.Arrays) GraphQlRepository(org.springframework.graphql.data.GraphQlRepository) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) BookSource(org.springframework.graphql.BookSource) GraphQlSetup(org.springframework.graphql.GraphQlSetup) WebOutput(org.springframework.graphql.web.WebOutput) CrudRepository(org.springframework.data.repository.CrudRepository) ReactiveQuerydslPredicateExecutor(org.springframework.data.querydsl.ReactiveQuerydslPredicateExecutor) Value(org.springframework.beans.factory.annotation.Value) Author(org.springframework.graphql.Author) ArgumentCaptor(org.mockito.ArgumentCaptor) Repository(org.springframework.data.repository.Repository) KeyValueRepositoryFactory(org.springframework.data.keyvalue.repository.support.KeyValueRepositoryFactory) DataFetcher(graphql.schema.DataFetcher) Nullable(org.springframework.lang.Nullable) URI(java.net.URI) GraphQlResponse(org.springframework.graphql.GraphQlResponse) QuerydslPredicateExecutor(org.springframework.data.querydsl.QuerydslPredicateExecutor) WebGraphQlHandler(org.springframework.graphql.web.WebGraphQlHandler) RuntimeWiringConfigurer(org.springframework.graphql.execution.RuntimeWiringConfigurer) QuerydslBinderCustomizer(org.springframework.data.querydsl.binding.QuerydslBinderCustomizer) HttpHeaders(org.springframework.http.HttpHeaders) Mono(reactor.core.publisher.Mono) MapKeyValueAdapter(org.springframework.data.map.MapKeyValueAdapter) Mockito.when(org.mockito.Mockito.when) Collectors(java.util.stream.Collectors) Mockito.verify(org.mockito.Mockito.verify) Consumer(java.util.function.Consumer) Test(org.junit.jupiter.api.Test) Flux(reactor.core.publisher.Flux) List(java.util.List) WebInput(org.springframework.graphql.web.WebInput) KeyValueTemplate(org.springframework.data.keyvalue.core.KeyValueTemplate) Optional(java.util.Optional) Predicate(com.querydsl.core.types.Predicate) Mockito.any(org.mockito.Mockito.any) Collections(java.util.Collections) QuerydslBindings(org.springframework.data.querydsl.binding.QuerydslBindings) Mockito.mock(org.mockito.Mockito.mock) GraphQlSetup(org.springframework.graphql.GraphQlSetup) Mono(reactor.core.publisher.Mono) Author(org.springframework.graphql.Author) List(java.util.List) Test(org.junit.jupiter.api.Test)

Aggregations

Test (org.junit.jupiter.api.Test)14 Author (org.springframework.graphql.Author)14 WebOutput (org.springframework.graphql.web.WebOutput)10 WebGraphQlHandler (org.springframework.graphql.web.WebGraphQlHandler)9 List (java.util.List)7 Collectors (java.util.stream.Collectors)7 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)7 BookSource (org.springframework.graphql.BookSource)7 GraphQlResponse (org.springframework.graphql.GraphQlResponse)7 GraphQlSetup (org.springframework.graphql.GraphQlSetup)7 Flux (reactor.core.publisher.Flux)7 Mono (reactor.core.publisher.Mono)7 Predicate (com.querydsl.core.types.Predicate)6 DataFetcher (graphql.schema.DataFetcher)6 URI (java.net.URI)6 Arrays (java.util.Arrays)6 Collections (java.util.Collections)6 Optional (java.util.Optional)6 Consumer (java.util.function.Consumer)6 ArgumentCaptor (org.mockito.ArgumentCaptor)6