diff --git a/api/src/test/java/io/kafbat/ui/KafkaConsumerGroupTests.java b/api/src/test/java/io/kafbat/ui/KafkaConsumerGroupTests.java index b7bd2dcb3..5f97317f2 100644 --- a/api/src/test/java/io/kafbat/ui/KafkaConsumerGroupTests.java +++ b/api/src/test/java/io/kafbat/ui/KafkaConsumerGroupTests.java @@ -10,7 +10,6 @@ import java.util.List; import java.util.Properties; import java.util.UUID; -import java.util.stream.Collectors; import java.util.stream.Stream; import lombok.extern.slf4j.Slf4j; import lombok.val; @@ -32,7 +31,6 @@ public class KafkaConsumerGroupTests extends AbstractIntegrationTest { @Test void shouldNotFoundWhenNoSuchConsumerGroupId() { String groupId = "groupA"; - String expError = "The group id does not exist"; webTestClient .delete() .uri("/api/clusters/{clusterName}/consumer-groups/{groupId}", LOCAL, groupId) @@ -47,12 +45,13 @@ void shouldOkWhenConsumerGroupIsNotActive() { //Create a consumer and subscribe to the topic String groupId = UUID.randomUUID().toString(); - val consumer = createTestConsumerWithGroupId(groupId); - consumer.subscribe(List.of(topicName)); - consumer.poll(Duration.ofMillis(100)); + try (val consumer = createTestConsumerWithGroupId(groupId)) { + consumer.subscribe(List.of(topicName)); + consumer.poll(Duration.ofMillis(100)); - //Unsubscribe from all topics to be able to delete this consumer - consumer.unsubscribe(); + //Unsubscribe from all topics to be able to delete this consumer + consumer.unsubscribe(); + } //Delete the consumer when it's INACTIVE and check webTestClient @@ -69,24 +68,24 @@ void shouldBeBadRequestWhenConsumerGroupIsActive() { //Create a consumer and subscribe to the topic String groupId = UUID.randomUUID().toString(); - val consumer = createTestConsumerWithGroupId(groupId); - consumer.subscribe(List.of(topicName)); - consumer.poll(Duration.ofMillis(100)); + try (val consumer = createTestConsumerWithGroupId(groupId)) { + consumer.subscribe(List.of(topicName)); + consumer.poll(Duration.ofMillis(100)); - //Try to delete the consumer when it's ACTIVE - String expError = "The group is not empty"; - webTestClient - .delete() - .uri("/api/clusters/{clusterName}/consumer-groups/{groupId}", LOCAL, groupId) - .exchange() - .expectStatus() - .isBadRequest(); + //Try to delete the consumer when it's ACTIVE + webTestClient + .delete() + .uri("/api/clusters/{clusterName}/consumer-groups/{groupId}", LOCAL, groupId) + .exchange() + .expectStatus() + .isBadRequest(); + } } @Test void shouldReturnConsumerGroupsWithPagination() throws Exception { - try (var groups1 = startConsumerGroups(3, "cgPageTest1"); - var groups2 = startConsumerGroups(2, "cgPageTest2")) { + try (var ignored = startConsumerGroups(3, "cgPageTest1"); + var ignored1 = startConsumerGroups(2, "cgPageTest2")) { webTestClient .get() .uri("/api/clusters/{clusterName}/consumer-groups/paged?perPage=3&search=cgPageTest", LOCAL) @@ -114,19 +113,19 @@ void shouldReturnConsumerGroupsWithPagination() throws Exception { }); webTestClient - .get() - .uri("/api/clusters/{clusterName}/consumer-groups/paged?perPage=10&&search" - + "=cgPageTest&orderBy=NAME&sortOrder=DESC", LOCAL) - .exchange() - .expectStatus() - .isOk() - .expectBody(ConsumerGroupsPageResponseDTO.class) - .value(page -> { - assertThat(page.getPageCount()).isEqualTo(1); - assertThat(page.getConsumerGroups().size()).isEqualTo(5); - assertThat(page.getConsumerGroups()) - .isSortedAccordingTo(Comparator.comparing(ConsumerGroupDTO::getGroupId).reversed()); - }); + .get() + .uri("/api/clusters/{clusterName}/consumer-groups/paged?perPage=10&&search" + + "=cgPageTest&orderBy=NAME&sortOrder=DESC", LOCAL) + .exchange() + .expectStatus() + .isOk() + .expectBody(ConsumerGroupsPageResponseDTO.class) + .value(page -> { + assertThat(page.getPageCount()).isEqualTo(1); + assertThat(page.getConsumerGroups().size()).isEqualTo(5); + assertThat(page.getConsumerGroups()) + .isSortedAccordingTo(Comparator.comparing(ConsumerGroupDTO::getGroupId).reversed()); + }); webTestClient .get() @@ -156,7 +155,7 @@ private Closeable startConsumerGroups(int count, String consumerGroupPrefix) { return consumer; }) .limit(count) - .collect(Collectors.toList()); + .toList(); return () -> { consumers.forEach(KafkaConsumer::close); deleteTopic(topicName); diff --git a/api/src/test/java/io/kafbat/ui/service/acl/AclCsvTest.java b/api/src/test/java/io/kafbat/ui/service/acl/AclCsvTest.java index c6b725283..a9648f11c 100644 --- a/api/src/test/java/io/kafbat/ui/service/acl/AclCsvTest.java +++ b/api/src/test/java/io/kafbat/ui/service/acl/AclCsvTest.java @@ -6,6 +6,7 @@ import io.kafbat.ui.exception.ValidationException; import java.util.Collection; import java.util.List; +import java.util.stream.Stream; import org.apache.kafka.common.acl.AccessControlEntry; import org.apache.kafka.common.acl.AclBinding; import org.apache.kafka.common.acl.AclOperation; @@ -15,6 +16,8 @@ import org.apache.kafka.common.resource.ResourceType; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; class AclCsvTest { @@ -29,22 +32,26 @@ class AclCsvTest { ); @ParameterizedTest - @ValueSource(strings = { - "Principal,ResourceType, PatternType, ResourceName,Operation,PermissionType,Host\n" - + "User:test1,TOPIC,LITERAL,*,READ,ALLOW,*\n" - + "User:test2,GROUP,PREFIXED,group1,DESCRIBE,DENY,localhost", - - //without header - "User:test1,TOPIC,LITERAL,*,READ,ALLOW,*\n" - + "\n" - + "User:test2,GROUP,PREFIXED,group1,DESCRIBE,DENY,localhost" - + "\n" - }) + @MethodSource void parsesValidInputCsv(String csvString) { Collection parsed = AclCsv.parseCsv(csvString); assertThat(parsed).containsExactlyInAnyOrderElementsOf(TEST_BINDINGS); } + private static Stream parsesValidInputCsv() { + return Stream.of( + Arguments.of( + "Principal,ResourceType, PatternType, ResourceName,Operation,PermissionType,Host" + System.lineSeparator() + + "User:test1,TOPIC,LITERAL,*,READ,ALLOW,*" + System.lineSeparator() + + "User:test2,GROUP,PREFIXED,group1,DESCRIBE,DENY,localhost"), + Arguments.of( + //without header + "User:test1,TOPIC,LITERAL,*,READ,ALLOW,*" + System.lineSeparator() + + System.lineSeparator() + + "User:test2,GROUP,PREFIXED,group1,DESCRIBE,DENY,localhost" + + System.lineSeparator())); + } + @ParameterizedTest @ValueSource(strings = { // columns > 7 diff --git a/api/src/test/java/io/kafbat/ui/service/acl/AclsServiceTest.java b/api/src/test/java/io/kafbat/ui/service/acl/AclsServiceTest.java index 5f43f51cd..189e7c060 100644 --- a/api/src/test/java/io/kafbat/ui/service/acl/AclsServiceTest.java +++ b/api/src/test/java/io/kafbat/ui/service/acl/AclsServiceTest.java @@ -68,8 +68,8 @@ void testSyncAclWithAclCsv() { aclsService.syncAclWithAclCsv( CLUSTER, - "Principal,ResourceType, PatternType, ResourceName,Operation,PermissionType,Host\n" - + "User:test1,TOPIC,LITERAL,*,READ,ALLOW,*\n" + "Principal,ResourceType, PatternType, ResourceName,Operation,PermissionType,Host" + System.lineSeparator() + + "User:test1,TOPIC,LITERAL,*,READ,ALLOW,*" + System.lineSeparator() + "User:test3,GROUP,PREFIXED,groupNew,DESCRIBE,DENY,localhost" ).block();