Skip to content

Commit

Permalink
enabling tests of common modules for java connectors (#1244)
Browse files Browse the repository at this point in the history
* enabling tests of common modules too

* removed duplicated file

* List splitter test fix (#1248)

---------

Co-authored-by: David Sloan <[email protected]>
  • Loading branch information
GoMati-MU and davidsloan committed May 29, 2024
1 parent 2dc3fbe commit cdd1a6c
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 30 deletions.
10 changes: 8 additions & 2 deletions .github/workflows/java-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand All @@ -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
Expand All @@ -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
Expand Down
3 changes: 2 additions & 1 deletion java-connectors/.gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.gradle
build/
target/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
Expand Down Expand Up @@ -45,4 +46,4 @@ bin/
### Lenses-specific ###
release/
gradle-modules.txt
**/src/main/gen/*
gradle-test-modules.txt
24 changes: 22 additions & 2 deletions java-connectors/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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'
Expand Down Expand Up @@ -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"]
Expand All @@ -184,3 +199,8 @@ task releaseModuleList() {
modulesBuilder.deleteCharAt(modulesBuilder.lastIndexOf(",")).append("]")
modulesFile.append(modulesBuilder)
}

task prepareModuleList() {
dependsOn testModuleList
dependsOn releaseModuleList
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -27,52 +28,51 @@

class ListSplitterTest {

private final List<Integer> list = IntStream.range(1, 11).boxed().collect(Collectors.toList());
private final List<Integer> list = IntStream.rangeClosed(1, 10).boxed().collect(Collectors.toList());

@Test
void testSplitListIntoEqualParts() {
List<List<Integer>> result = ListSplitter.splitList(list, 5);
assertEquals(5, result.size());
for (List<Integer> sublist : result) {
assertEquals(2, sublist.size());
}
assertThat(result)
.hasSize(5)
.allMatch(sublist -> sublist.size() == 2);
}

@Test
void testSplitListWithRemainder() {
List<List<Integer>> 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<List<Integer>> 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<List<Integer>> result = ListSplitter.splitList(list, 12);
assertEquals(12, result.size());
int nonEmptyLists = (int) result.stream().filter(sublist -> !sublist.isEmpty()).count();
assertEquals(10, nonEmptyLists);
for (List<Integer> sublist : result) {
assertTrue(sublist.size() <= 1);
}
assertThat(result)
.hasSize(10)
.doesNotContain(Collections.emptyList())
.allMatch(sublist -> sublist.size() == 1);
}

@Test
void testSplitEmptyList() {
List<Integer> emptyList = Collections.emptyList();
List<List<Integer>> result = ListSplitter.splitList(emptyList, 3);
assertEquals(3, result.size());
for (List<Integer> sublist : result) {
assertTrue(sublist.isEmpty());
}
assertThat(result).isEmpty();
}

@Test
Expand All @@ -84,9 +84,6 @@ void testSplitListInvalidParts() {
@Test
void testListSmallerThanMaxNShouldProvideMaxNResults() {
List<List<Integer>> result = ListSplitter.splitList(Collections.singletonList(1), 100);
assertEquals(1, result.size());
for (List<Integer> sublist : result) {
assertEquals(1, sublist.size());
}
assertThat(result).hasSize(1).allMatch(l -> l.size() == 1);
}
}

0 comments on commit cdd1a6c

Please sign in to comment.