diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 27aef1fb0b7..7e4c105fd01 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -20,3 +20,5 @@ fcdaa3d6735d2382a44d066a6ce051a2c5e6469f 3addaca346bcdfd555fca0340e40c7e5518c5185 165a4da6a015267909adf7e7d5f3edc16a56dda6 c4e2bf407aa0b7a3d34605134791013ba8a2d376 +9232c8f806b5eebeff35c09b1616b6598f3f5e73 +062fb57831db2e3e25afc1bd63cf8b09d46ffa67 diff --git a/commercetools/commercetools-graphql-api/build.gradle b/commercetools/commercetools-graphql-api/build.gradle index 5eb5acaec61..ce786a901f8 100644 --- a/commercetools/commercetools-graphql-api/build.gradle +++ b/commercetools/commercetools-graphql-api/build.gradle @@ -2,6 +2,7 @@ import com.commercetools.sdk.plugins.GraphQLPlugin plugins { id "com.netflix.dgs.codegen" version "8.1.0" + id 'java' } apply plugin:'com.netflix.dgs.codegen' @@ -13,6 +14,19 @@ java { } } +tasks.register('integrationTestJar', Jar) { + archiveClassifier = 'test-utils' + from sourceSets.integrationTest.output +} + +configurations { + integrationTestArtifacts +} + +artifacts { + integrationTestArtifacts integrationTestJar +} + dependencies { api project(':commercetools:commercetools-sdk-java-api') testImplementation project(':commercetools:commercetools-http-client') diff --git a/commercetools/internal-docs/build.gradle b/commercetools/internal-docs/build.gradle index df98815bb73..85d7ab8883e 100644 --- a/commercetools/internal-docs/build.gradle +++ b/commercetools/internal-docs/build.gradle @@ -1,4 +1,5 @@ dependencies { + testImplementation 'org.junit.jupiter:junit-jupiter:5.x.x' implementation project(":commercetools:commercetools-sdk-java-api") implementation project(":commercetools:commercetools-sdk-java-importapi") implementation project(":commercetools:commercetools-sdk-java-history") @@ -10,9 +11,8 @@ dependencies { implementation project(":commercetools:commercetools-graphql-api") implementation project(":commercetools:commercetools-monitoring-newrelic") implementation project(":commercetools:commercetools-monitoring-datadog") - - testImplementation ctsdkv1.client version ctsdkv1.version - implementation ctsdkv1.models version ctsdkv1.version + testImplementation project(path: ':commercetools:commercetools-graphql-api', configuration: 'integrationTestArtifacts') + testImplementation 'com.commercetools.sdk.jvm.core:commercetools-models:2.16.0' testImplementation project(":commercetools:commercetools-javanet-client") testImplementation commons.io version commons.io_version diff --git a/commercetools/internal-docs/src/test/java/example/ExamplesTest.java b/commercetools/internal-docs/src/test/java/example/ExamplesTest.java index 625c0e4804b..b523e79d95a 100644 --- a/commercetools/internal-docs/src/test/java/example/ExamplesTest.java +++ b/commercetools/internal-docs/src/test/java/example/ExamplesTest.java @@ -28,6 +28,7 @@ import com.commercetools.api.models.common.LocalizedStringBuilder; import com.commercetools.api.models.customer.*; import com.commercetools.api.models.customer_group.*; +import com.commercetools.api.models.graph_ql.GraphQLVariablesMap; import com.commercetools.api.models.product.AttributesAccessor; import com.commercetools.api.models.product.ProductProjection; import com.commercetools.api.models.product.ProductVariant; @@ -35,6 +36,11 @@ import com.commercetools.api.models.product_type.AttributeLocalizedEnumValue; import com.commercetools.api.models.project.Project; import com.commercetools.api.models.tax_category.TaxCategoryPagedQueryResponse; +import com.commercetools.graphql.CommercetoolsTestUtils; +import com.commercetools.graphql.api.GraphQL; +import com.commercetools.graphql.api.GraphQLData; +import com.commercetools.graphql.api.GraphQLRequestBuilder; +import com.commercetools.graphql.api.types.OrderQueryResult; import com.commercetools.http.apachehttp.CtApacheHttpClient; import com.commercetools.http.javanet.CtJavaNetHttpClient; import com.commercetools.http.netty.CtNettyHttpClient; @@ -379,6 +385,45 @@ public void queryAll() { .join(); } + public void graphQLAllOrders() { + final ProjectApiRoot projectRoot = CommercetoolsTestUtils.getProjectApiRoot(); + boolean limitNotReached = true; + int limit = 10, total_length = 0; + String lastId = null; + while (limitNotReached) { + GraphQLRequestBuilder orderBuilder = GraphQL.query(""" + query Orders($where: String, $limit: Int!) { + orders(where: $where, sort: "id asc", limit: $limit) { + results { + id + version + } + } + }""").dataMapper(GraphQLData::getOrders); + + var variables = GraphQLVariablesMap.builder().addValue("limit", limit); + if (lastId != null) { + String whereQuery = "id > \"%s\"".formatted(lastId); + variables.addValue("where", whereQuery); + } + orderBuilder.variables(variables.build()); + + var result = projectRoot.graphql().query(orderBuilder.build()).executeBlocking(); + var orders = result.getBody().getData().getResults(); + + orders.forEach(order -> { + Assertions.assertThat(order.getId()).isNotNull(); + Assertions.assertThat(order.getVersion()).isNotNull(); + }); + + var length = orders.size(); + total_length += length; + lastId = result.getBody().getData().getResults().get(length - 1).getId(); + + limitNotReached = length == limit; + } + } + public void middleware() { ProjectApiRoot apiRoot = ApiRootBuilder.of() .defaultClient(ClientCredentials.of()