From cdd1a6caf5f7cc2ee93e2bd5371ab686c2448725 Mon Sep 17 00:00:00 2001 From: Mati Urban <157909548+GoMati-MU@users.noreply.github.com> Date: Wed, 29 May 2024 14:08:51 +0000 Subject: [PATCH] enabling tests of common modules for java connectors (#1244) * enabling tests of common modules too * removed duplicated file * List splitter test fix (#1248) --------- Co-authored-by: David Sloan <33483659+davidsloan@users.noreply.github.com> --- .github/workflows/java-build.yml | 10 +++- java-connectors/.gitignore | 3 +- java-connectors/build.gradle | 24 +++++++++- .../common/util/ListSplitterTest.java | 47 +++++++++---------- 4 files changed, 54 insertions(+), 30 deletions(-) diff --git a/.github/workflows/java-build.yml b/.github/workflows/java-build.yml index 0adb5be91..81a176bec 100644 --- a/.github/workflows/java-build.yml +++ b/.github/workflows/java-build.yml @@ -10,6 +10,9 @@ on: java_modules: description: "Stream reactor collection of java modules" value: ${{ jobs.initiate-java-modules.outputs.java_matrix }} + java_test_modules: + description: "Stream reactor collection of java modules for test" + value: ${{ jobs.initiate-java-modules.outputs.java_test_matrix }} jobs: @@ -18,6 +21,7 @@ jobs: runs-on: ubuntu-latest outputs: java_matrix: ${{ steps.java-mods.outputs.java-matrix }} + java_test_matrix: ${{ steps.java-mods.outputs.java-test-matrix }} steps: - uses: actions/checkout@v4 - name: Set up JDK 17 @@ -27,20 +31,22 @@ jobs: distribution: 'temurin' cache: 'gradle' - name: Generate modules lists - run: cd 'java-connectors' && ./gradlew releaseModuleList + run: cd 'java-connectors' && ./gradlew prepareModuleList env: JVM_OPTS: -Xmx512m - name: Read java modules lists id: java-mods run: | echo "java-matrix=$(cat ./java-connectors/gradle-modules.txt)" >> $GITHUB_OUTPUT + echo "java-test-matrix=$(cat ./java-connectors/gradle-test-modules.txt)" >> $GITHUB_OUTPUT + test: needs: - initiate-java-modules strategy: matrix: - module: ${{fromJSON(needs.initiate-java-modules.outputs.java_matrix)}} + module: ${{fromJSON(needs.initiate-java-modules.outputs.java_test_matrix)}} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/java-connectors/.gitignore b/java-connectors/.gitignore index 16453db46..2b169201d 100644 --- a/java-connectors/.gitignore +++ b/java-connectors/.gitignore @@ -1,5 +1,6 @@ .gradle build/ +target/ !gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ !**/src/test/**/build/ @@ -45,4 +46,4 @@ bin/ ### Lenses-specific ### release/ gradle-modules.txt -**/src/main/gen/* +gradle-test-modules.txt diff --git a/java-connectors/build.gradle b/java-connectors/build.gradle index 3e092e145..879c07c16 100644 --- a/java-connectors/build.gradle +++ b/java-connectors/build.gradle @@ -8,7 +8,7 @@ plugins { allprojects { group = "io.lenses.streamreactor" - version = "7.0.1-SNAPSHOT" + version = "7.2.1-SNAPSHOT" description = "stream-reactor" apply plugin: 'java' @@ -23,7 +23,7 @@ allprojects { ext { //DEPENDENCY VERSIONS - lombokVersion = '1.18.30' + lombokVersion = '1.18.32' kafkaVersion = '3.7.0' logbackVersion = '1.4.14' jUnitVersion = '5.9.1' @@ -169,6 +169,21 @@ task prepareRelease(dependsOn: [collectFatJar]) { dependsOn subprojects.collectFatJar } +task testModuleList() { + def nonTestModules = ["java-reactor"] + + def modulesFile = new File("gradle-test-modules.txt") + modulesFile.delete() + modulesFile.createNewFile() + + def modulesBuilder = new StringBuilder("[") + allprojects.name.stream() + .filter {moduleName -> !nonTestModules.contains(moduleName)} + .forEach {moduleName -> modulesBuilder.append("\"" + moduleName + "\",") } + modulesBuilder.deleteCharAt(modulesBuilder.lastIndexOf(",")).append("]") + modulesFile.append(modulesBuilder) +} + task releaseModuleList() { def nonReleaseModules = ["java-reactor", "kafka-connect-cloud-common", "kafka-connect-common", "kafka-connect-query-language"] @@ -184,3 +199,8 @@ task releaseModuleList() { modulesBuilder.deleteCharAt(modulesBuilder.lastIndexOf(",")).append("]") modulesFile.append(modulesBuilder) } + +task prepareModuleList() { + dependsOn testModuleList + dependsOn releaseModuleList +} diff --git a/java-connectors/kafka-connect-common/src/test/java/io/lenses/streamreactor/common/util/ListSplitterTest.java b/java-connectors/kafka-connect-common/src/test/java/io/lenses/streamreactor/common/util/ListSplitterTest.java index 4a9954909..16a2f1dc2 100644 --- a/java-connectors/kafka-connect-common/src/test/java/io/lenses/streamreactor/common/util/ListSplitterTest.java +++ b/java-connectors/kafka-connect-common/src/test/java/io/lenses/streamreactor/common/util/ListSplitterTest.java @@ -15,6 +15,7 @@ */ package io.lenses.streamreactor.common.util; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.*; import java.util.Collections; @@ -27,52 +28,51 @@ class ListSplitterTest { - private final List list = IntStream.range(1, 11).boxed().collect(Collectors.toList()); + private final List list = IntStream.rangeClosed(1, 10).boxed().collect(Collectors.toList()); @Test void testSplitListIntoEqualParts() { List> result = ListSplitter.splitList(list, 5); - assertEquals(5, result.size()); - for (List sublist : result) { - assertEquals(2, sublist.size()); - } + assertThat(result) + .hasSize(5) + .allMatch(sublist -> sublist.size() == 2); } @Test void testSplitListWithRemainder() { List> result = ListSplitter.splitList(list, 3); - assertEquals(3, result.size()); - assertEquals(4, result.get(0).size()); - assertEquals(3, result.get(1).size()); - assertEquals(3, result.get(2).size()); + assertThat(result) + .hasSize(3) + .containsAll(List.of( + List.of(1, 2, 3, 4), + List.of(5, 6, 7), + List.of(8, 9, 10) + ) + ); } @Test void testSplitListSinglePart() { List> result = ListSplitter.splitList(list, 1); - assertEquals(1, result.size()); - assertEquals(10, result.get(0).size()); + assertThat(result) + .hasSize(1) + .containsExactly(list); } @Test void testSplitListMorePartsThanElements() { List> result = ListSplitter.splitList(list, 12); - assertEquals(12, result.size()); - int nonEmptyLists = (int) result.stream().filter(sublist -> !sublist.isEmpty()).count(); - assertEquals(10, nonEmptyLists); - for (List sublist : result) { - assertTrue(sublist.size() <= 1); - } + assertThat(result) + .hasSize(10) + .doesNotContain(Collections.emptyList()) + .allMatch(sublist -> sublist.size() == 1); } @Test void testSplitEmptyList() { List emptyList = Collections.emptyList(); List> result = ListSplitter.splitList(emptyList, 3); - assertEquals(3, result.size()); - for (List sublist : result) { - assertTrue(sublist.isEmpty()); - } + assertThat(result).isEmpty(); } @Test @@ -84,9 +84,6 @@ void testSplitListInvalidParts() { @Test void testListSmallerThanMaxNShouldProvideMaxNResults() { List> result = ListSplitter.splitList(Collections.singletonList(1), 100); - assertEquals(1, result.size()); - for (List sublist : result) { - assertEquals(1, sublist.size()); - } + assertThat(result).hasSize(1).allMatch(l -> l.size() == 1); } }