Best Webtau code snippet using org.testingisdocumenting.webtau.graphql.GraphQL.GraphQL
Source:GraphQL.java
...17import static org.testingisdocumenting.webtau.Matchers.equal;18import static org.testingisdocumenting.webtau.http.Http.http;19import java.util.Map;20import org.testingisdocumenting.webtau.data.traceable.CheckLevel;21import org.testingisdocumenting.webtau.graphql.config.GraphQLHttpConfigurations;22import org.testingisdocumenting.webtau.graphql.listener.GraphQLListeners;23import org.testingisdocumenting.webtau.graphql.model.GraphQLRequest;24import org.testingisdocumenting.webtau.http.HttpHeader;25import org.testingisdocumenting.webtau.http.validation.HttpResponseValidator;26import org.testingisdocumenting.webtau.http.validation.HttpResponseValidatorIgnoringReturn;27import org.testingisdocumenting.webtau.http.validation.HttpResponseValidatorWithReturn;28public class GraphQL {29 public static final GraphQL graphql = new GraphQL();30 static final String GRAPHQL_URL = "/graphql";31 private static final HttpResponseValidatorWithReturn EMPTY_RESPONSE_VALIDATOR = (header, body) -> null;32 private static final int SUCCESS_CODE = 200;33 private static GraphQLSchema schema;34 private static GraphQLCoverage coverage;35 static GraphQLCoverage getCoverage() {36 return coverage;37 }38 public static GraphQLSchema getSchema() {39 return schema;40 }41 static void reset() {42 schema = new GraphQLSchema();43 coverage = new GraphQLCoverage(schema);44 }45 public void execute(String query) {46 execute(query, EMPTY_RESPONSE_VALIDATOR);47 }48 public void execute(String query, HttpResponseValidator validator) {49 execute(query, new HttpResponseValidatorIgnoringReturn(validator));50 }51 public <E> E execute(String query, HttpResponseValidatorWithReturn validator) {52 return execute(query, null, null, HttpHeader.EMPTY, validator);53 }54 public void execute(String query, HttpHeader header) {55 execute(query, header, EMPTY_RESPONSE_VALIDATOR);56 }57 public void execute(String query, HttpHeader header, HttpResponseValidator validator) {58 execute(query, null, null, header, new HttpResponseValidatorIgnoringReturn(validator));59 }60 public <E> E execute(String query, HttpHeader header, HttpResponseValidatorWithReturn validator) {61 return execute(query, null, null, header, validator);62 }63 public void execute(String query, String operationName) {64 execute(query, operationName, EMPTY_RESPONSE_VALIDATOR);65 }66 public void execute(String query, String operationName, HttpResponseValidator validator) {67 execute(query, null, operationName, HttpHeader.EMPTY, new HttpResponseValidatorIgnoringReturn(validator));68 }69 public <E> E execute(String query, String operationName, HttpResponseValidatorWithReturn validator) {70 return execute(query, null, operationName, HttpHeader.EMPTY, validator);71 }72 public void execute(String query, String operationName, HttpHeader header) {73 execute(query, operationName, header, EMPTY_RESPONSE_VALIDATOR);74 }75 public void execute(String query, String operationName, HttpHeader header, HttpResponseValidator validator) {76 execute(query, null, operationName, header, new HttpResponseValidatorIgnoringReturn(validator));77 }78 public <E> E execute(String query, String operationName, HttpHeader header, HttpResponseValidatorWithReturn validator) {79 return execute(query, null, operationName, header, validator);80 }81 public void execute(String query, Map<String, Object> variables) {82 execute(query, variables, EMPTY_RESPONSE_VALIDATOR);83 }84 public void execute(String query, Map<String, Object> variables, HttpResponseValidator validator) {85 execute(query, variables, null, HttpHeader.EMPTY, new HttpResponseValidatorIgnoringReturn(validator));86 }87 public <E> E execute(String query, Map<String, Object> variables, HttpResponseValidatorWithReturn validator) {88 return execute(query, variables, null, HttpHeader.EMPTY, validator);89 }90 public void execute(String query, Map<String, Object> variables, HttpHeader header) {91 execute(query, variables, header, EMPTY_RESPONSE_VALIDATOR);92 }93 public void execute(String query, Map<String, Object> variables, HttpHeader header, HttpResponseValidator validator) {94 execute(query, variables, null, header, new HttpResponseValidatorIgnoringReturn(validator));95 }96 public <E> E execute(String query, Map<String, Object> variables, HttpHeader header, HttpResponseValidatorWithReturn validator) {97 return execute(query, variables, null, header, validator);98 }99 public void execute(String query, Map<String, Object> variables, String operationName) {100 execute(query, variables, operationName, EMPTY_RESPONSE_VALIDATOR);101 }102 public void execute(String query, Map<String, Object> variables, String operationName, HttpResponseValidator validator) {103 execute(query, variables, operationName, HttpHeader.EMPTY, new HttpResponseValidatorIgnoringReturn(validator));104 }105 public <E> E execute(String query, Map<String, Object> variables, String operationName, HttpResponseValidatorWithReturn validator) {106 return execute(query, variables, operationName, HttpHeader.EMPTY, validator);107 }108 public void execute(String query, Map<String, Object> variables, String operationName, HttpHeader header) {109 execute(query, variables, operationName, header, EMPTY_RESPONSE_VALIDATOR);110 }111 public void execute(String query, Map<String, Object> variables, String operationName, HttpHeader header, HttpResponseValidator validator) {112 execute(query, variables, operationName, header, new HttpResponseValidatorIgnoringReturn(validator));113 }114 public <E> E execute(String query, Map<String, Object> variables, String operationName, HttpHeader header, HttpResponseValidatorWithReturn validator) {115 BeforeFirstGraphQLQueryListenerTrigger.trigger();116 GraphQLListeners.beforeGraphQLQuery(query, variables, operationName, header);117 GraphQLRequest graphQLRequest = new GraphQLRequest(query, variables, operationName);118 String url = GraphQLHttpConfigurations.requestUrl(GRAPHQL_URL, graphQLRequest);119 return http.post(url, header, graphQLRequest.toHttpRequestBody(), (headerDataNode, body) -> {120 Object validatorReturnValue = validator.validate(headerDataNode, body);121 if (headerDataNode.statusCode.getTraceableValue().getCheckLevel() == CheckLevel.None) {122 headerDataNode.statusCode.should(equal(SUCCESS_CODE));123 }124 return validatorReturnValue;125 });126 }127 private static class BeforeFirstGraphQLQueryListenerTrigger {128 static {129 GraphQLListeners.beforeFirstGraphQLQuery();130 }131 /**132 * no-op to force class loading133 */134 private static void trigger() {135 }136 }137}...
Source:GraphQLSchemaLoader.java
...20import graphql.language.FieldDefinition;21import graphql.language.ObjectTypeDefinition;22import graphql.schema.idl.SchemaParser;23import graphql.schema.idl.TypeDefinitionRegistry;24import org.testingisdocumenting.webtau.graphql.model.GraphQLRequest;25import org.testingisdocumenting.webtau.graphql.model.GraphQLResponse;26import org.testingisdocumenting.webtau.http.HttpHeader;27import org.testingisdocumenting.webtau.http.HttpResponse;28import org.testingisdocumenting.webtau.http.config.WebTauHttpConfigurations;29import org.testingisdocumenting.webtau.http.request.HttpRequestBody;30import java.util.Arrays;31import java.util.HashSet;32import java.util.List;33import java.util.Optional;34import java.util.Set;35import java.util.stream.Stream;36import static org.testingisdocumenting.webtau.graphql.GraphQL.GRAPHQL_URL;37import static org.testingisdocumenting.webtau.http.Http.http;38public class GraphQLSchemaLoader {39 public static Optional<Set<GraphQLQuery>> fetchSchemaDeclaredQueries() {40 HttpResponse httpResponse;41 try {42 httpResponse = sendIntrospectionQuery();43 } catch (Exception e) {44 return handleIntrospectionError("Error posting GraphQL introspection query", e);45 }46 if (httpResponse.getStatusCode() != 200) {47 return handleIntrospectionError("Error introspecting GraphQL, status code was " + httpResponse.getStatusCode());48 }49 return convertIntrospectionResponse(httpResponse);50 }51 private static HttpResponse sendIntrospectionQuery() {52 HttpRequestBody requestBody = new GraphQLRequest(IntrospectionQuery.INTROSPECTION_QUERY).toHttpRequestBody();53 String fullUrl = WebTauHttpConfigurations.fullUrl(GRAPHQL_URL);54 HttpHeader header = WebTauHttpConfigurations.fullHeader(fullUrl, GRAPHQL_URL, HttpHeader.EMPTY);55 return http.postToFullUrl(fullUrl, header, requestBody);56 }57 private static Optional<Set<GraphQLQuery>> convertIntrospectionResponse(HttpResponse httpResponse) {58 Optional<GraphQLResponse> graphQLResponse = GraphQLResponse.from(httpResponse);59 return graphQLResponse.map(response -> {60 if (response.getErrors() != null) {61 return handleIntrospectionError("Error introspecting GraphQL, errors found: " + response.getErrors());62 }63 if (response.getData() == null) {64 return handleIntrospectionError("Error introspecting GraphQL, expecting a 'data' field but it was not present");65 }66 IntrospectionResultToSchema resultToSchema = new IntrospectionResultToSchema();67 Document schemaDefinition = resultToSchema.createSchemaDefinition(response.getData());68 TypeDefinitionRegistry typeDefRegistry = new SchemaParser().buildRegistry(schemaDefinition);69 Set<GraphQLQuery> queries = new HashSet<>();70 Arrays.stream(GraphQLQueryType.values())71 .flatMap(type -> extractTypes(typeDefRegistry, type))72 .forEach(queries::add);73 return Optional.of(queries);74 }).orElseGet(() -> handleIntrospectionError("Error introspecting GraphQL, not a valid GraphQL response"));75 }76 private static Optional<Set<GraphQLQuery>> handleIntrospectionError(String msg) {77 return handleIntrospectionError(msg, null);78 }79 private static Optional<Set<GraphQLQuery>> handleIntrospectionError(String msg, Throwable cause) {80 if (GraphQLConfig.ignoreIntrospectionFailures()) {81 return Optional.empty();82 }83 if (cause == null) {84 throw new AssertionError(msg);85 } else {86 throw new AssertionError(msg, cause);87 }88 }89 private static Stream<GraphQLQuery> extractTypes(TypeDefinitionRegistry registry, GraphQLQueryType type) {90 String typeName = type.name().charAt(0) + type.name().substring(1).toLowerCase();91 return registry.getType(typeName)92 .filter(def -> def instanceof ObjectTypeDefinition)93 .map(def -> {94 ObjectTypeDefinition objectTypeDef = (ObjectTypeDefinition) def;95 List<FieldDefinition> fieldDefinitions = objectTypeDef.getFieldDefinitions();96 return fieldDefinitions.stream()97 .map(fieldDef -> new GraphQLQuery(fieldDef.getName(), type));98 })99 .orElseGet(Stream::empty);100 }101}...
Source:WebTauDsl.java
...27import org.testingisdocumenting.webtau.data.Data;28import org.testingisdocumenting.webtau.db.DatabaseFacade;29import org.testingisdocumenting.webtau.expectation.ValueMatcher;30import org.testingisdocumenting.webtau.fs.FileSystem;31import org.testingisdocumenting.webtau.graphql.GraphQL;32import org.testingisdocumenting.webtau.http.Http;33import org.testingisdocumenting.webtau.http.datanode.DataNode;34import org.testingisdocumenting.webtau.pdf.Pdf;35import org.testingisdocumenting.webtau.schema.expectation.SchemaMatcher;36import org.testingisdocumenting.webtau.server.WebTauServerFacade;37/*38Convenient class for static * import39 */40public class WebTauDsl extends WebTauCore {41 public static final FileSystem fs = FileSystem.fs;42 public static final Data data = Data.data;43 public static final Cache cache = Cache.cache;44 public static final Http http = Http.http;45 public static final Browser browser = Browser.browser;46 public static final Cli cli = Cli.cli;47 public static final DatabaseFacade db = DatabaseFacade.db;48 public static final GraphQL graphql = GraphQL.graphql;49 public static final WebTauServerFacade server = WebTauServerFacade.server;50 /**51 * visible matcher to check if UI element is visible52 * @see #hidden53 */54 public static final ValueMatcher visible = new VisibleValueMatcher();55 /**56 * hidden matcher to check if UI element is hidden57 * @see #visible58 */59 public static final ValueMatcher hidden = new HiddenValueMatcher();60 /**61 * enabled matcher to check if UI element is enabled62 * @see #disabled...
GraphQL
Using AI Code Generation
1import org.testingisdocumenting.webtau.graphql.GraphQL;2import org.testingisdocumenting.webtau.graphql.GraphQLQuery;3import org.testingisdocumenting.webtau.graphql.GraphQLResponse;4import org.testingisdocumenting.webtau.graphql.GraphQLVariable;5import org.testingisdocumenting.webtau.graphql.GraphQLVariables;6import java.util.List;7import java.util.Map;8import static org.testingisdocumenting.webtau.Ddjt.*;9public class GraphQLTest {10 public static void main(String[] args) {11 query.field("bookById", vars -> {12 vars.var("id", "book-1");13 }, book -> {14 book.field("id");15 book.field("name");16 book.field("author", author -> {17 author.field("id");18 author.field("name");19 });20 });21 });22 query.field("allBooks", books -> {23 books.field("id");24 books.field("name");25 books.field("author", author -> {26 author.field("id");27 author.field("name");28 });29 });30 });31 }32}33import org.testingisdocumenting.webtau.graphql.GraphQL;34import org.testingisdocumenting.webtau.graphql.GraphQLQuery;35import org.testingisdocumenting.webtau.graphql.GraphQLResponse;36import org.testingisdocumenting.webtau.graphql.GraphQLVariable;37import org.testingisdocumenting.webtau.graphql.GraphQLVariables;38import java.util.List;39import java.util.Map;40import static org.testingisdocumenting.webtau.Ddjt.*;41public class GraphQLTest {42 public static void main(String[] args) {43 query.field("bookById", vars -> {44 vars.var("id", "book-1");45 }, book -> {46 book.field("id");47 book.field("name");48 book.field("author", author -> {49 author.field("id");50 author.field("name");51 });52 });53 });54 query.field("allBooks", books -> {55 books.field("id
GraphQL
Using AI Code Generation
1import org.testingisdocumenting.webtau.graphql.GraphQL;2import org.testingisdocumenting.webtau.graphql.GraphQLResponse;3import java.util.Map;4import static org.testingisdocumenting.webtau.Ddjt.*;5public class 1 {6 public static void main(String[] args) {7 GraphQLResponse response = GraphQL.query("{ allBooks { title } }");8 response.print();9 at(response).print();10 Map<String, Object> data = response.data();11 at(data).print();12 List<Map<String, Object>> allBooks = at(data).getList("allBooks");13 at(allBooks).print();14 Map<String, Object> firstBook = at(allBooks).get(0);15 at(firstBook).print();16 String title = at(firstBook).get("title");17 at(title).print();18 }19}20import org.testingisdocumenting.webtau.graphql.GraphQL;21import org.testingisdocumenting.webtau.graphql.GraphQLResponse;22import java.util.Map;23import static org.testingisdocumenting.webtau.Ddjt.*;24public class 2 {25 public static void main(String[] args) {26 GraphQLResponse response = GraphQL.query("{ allBooks { title } }");27 response.print();28 at(response).print();29 Map<String, Object> data = response.data();30 at(data).print();31 List<Map<String, Object>> allBooks = at(data).getList("allBooks");32 at(allBooks).print();33 Map<String, Object> firstBook = at(allBooks).get(0);34 at(firstBook).print();35 String title = at(firstBook).get("title");36 at(title).print();37 }38}39import org.testingisdocumenting.webtau.graphql.GraphQL;40import org.testingisdocumenting.webtau.graphql.GraphQLResponse;41import java.util.Map;42import static org.testingisdocumenting.webtau.Ddjt.*;43public class 3 {44 public static void main(String[] args) {45 GraphQLResponse response = GraphQL.query("{ allBooks { title } }");46 response.print();47 at(response).print();48 Map<String, Object> data = response.data();
GraphQL
Using AI Code Generation
1import org.testingisdocumenting.webtau.graphql.GraphQL;2import org.testingisdocumenting.webtau.graphql.GraphQLResponse;3import org.testingisdocumenting.webtau.graphql.GraphQLVariable;4import java.util.Map;5import static org.testingisdocumenting.webtau.Ddjt.*;6import static org.testingisdocumenting.webtau.graphql.GraphQL.gql;7public class WebTauGraphQL {8 public static void main(String[] args) {9 GraphQLVariable query = gql("{hero{name}}");10 GraphQLResponse response = GraphQL.execute(query);11 Map<String, Object> hero = response.data().get("hero");12 verify(hero.get("name"), equalTo("R2-D2"));13 }14}
GraphQL
Using AI Code Generation
1import org.testingisdocumenting.webtau.graphql.GraphQL;2import org.testingisdocumenting.webtau.graphql.GraphQLResponse;3GraphQLResponse response = GraphQL.query("query { hello }");4import org.testingisdocumenting.webtau.graphql.GraphQL;5import org.testingisdocumenting.webtau.graphql.GraphQLResponse;6GraphQLResponse response = GraphQL.query("query { hello }");7import org.testingisdocumenting.webtau.graphql.GraphQL;8import org.testingisdocumenting.webtau.graphql.GraphQLResponse;9GraphQLResponse response = GraphQL.query("query { hello }");10import org.testingisdocumenting.webtau.graphql.GraphQL;11import org.testingisdocumenting.webtau.graphql.GraphQLResponse;12GraphQLResponse response = GraphQL.query("query { hello }");13import org.testingisdocumenting.webtau.graphql.GraphQL;14import org.testingisdocumenting.webtau.graphql.GraphQLResponse;15GraphQLResponse response = GraphQL.query("query { hello }");16import org.testingisdocumenting.webtau.graphql.GraphQL;17import org.testingisdocumenting.webtau.graphql.GraphQLResponse;18GraphQLResponse response = GraphQL.query("query { hello }");19import org.testingisdocumenting.webtau.graphql.GraphQL;20import org.testingisdocumenting.webtau.graphql.GraphQLResponse;21GraphQLResponse response = GraphQL.query("
GraphQL
Using AI Code Generation
1GraphQL.query("query { hello }")2GraphQL.mutation("mutation { createPerson(name: \"John\") { id } }")3GraphQL.query("query ($name: String!) { person(name: $name) { name } }", 4 new GraphQLVariables().var("name", "John"))5GraphQL.mutation("mutation ($name: String!) { createPerson(name: $name) { id } }", 6 new GraphQLVariables().var("name", "John"))7GraphQL.query("query ($name: String!) { person(name: $name) { name } }", 8 new GraphQLVariables().var("name", "John"),9 new GraphQLHeaders().header("myHeader", "myValue"))10GraphQL.mutation("mutation ($name: String!) { createPerson(name: $name) { id } }", 11 new GraphQLVariables().var("name", "John"),12 new GraphQLHeaders().header("myHeader", "myValue"))13GraphQL.query("query ($name: String!) { person(name: $name) { name } }", 14 new GraphQLVariables().var("name", "John"),15 new GraphQLHeaders().header("myHeader", "myValue"))16GraphQL.mutation("mutation ($name: String!) { createPerson(name: $name) { id } }", 17 new GraphQLVariables().var("name", "John"),
GraphQL
Using AI Code Generation
1package org.testingisdocumenting.webtau.examples.graphql;2import org.junit.Test;3import org.testingisdocumenting.webtau.graphql.GraphQL;4import static org.testingisdocumenting.webtau.Ddjt.*;5public class GraphQLTest {6 public void queryWithGraphQL() {7 GraphQL.query("{ allUsers { firstName lastName } }")8 .validate("allUsers", 9 each(10 should("have firstName", m -> m.get("firstName") != null),11 should("have lastName", m -> m.get("lastName") != null)12 ));13 }14}15validate(String path, Object expected)16validate(String path, Matcher expected)17validate(String path, Consumer expected)18validate(String path, Object expected)19validate(String path, Matcher expected)20validate(String path, Consumer expected)21each(Consumer expected)22each(Object expected)23each(Matcher expected)24each(Consumer expected)25each(Object expected)26each(Matcher expected)27each(Consumer expected)28each(Object expected)
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!