123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package com.provectus.kafka.ui;
- import com.provectus.kafka.ui.model.TopicCreationDTO;
- import com.provectus.kafka.ui.model.TopicUpdateDTO;
- import java.util.Map;
- import java.util.UUID;
- import org.junit.jupiter.api.Test;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.HttpStatus;
- import org.springframework.test.web.reactive.server.WebTestClient;
- public class ReadOnlyModeTests extends AbstractIntegrationTest {
- @Autowired
- private WebTestClient webTestClient;
- @Test
- public void shouldCreateTopicForNonReadonlyCluster() {
- var topicName = UUID.randomUUID().toString();
- webTestClient.post()
- .uri("/api/clusters/{clusterName}/topics", LOCAL)
- .bodyValue(new TopicCreationDTO()
- .name(topicName)
- .partitions(1)
- .replicationFactor(1)
- .configs(Map.of())
- )
- .exchange()
- .expectStatus()
- .isOk();
- }
- @Test
- public void shouldNotCreateTopicForReadonlyCluster() {
- var topicName = UUID.randomUUID().toString();
- webTestClient.post()
- .uri("/api/clusters/{clusterName}/topics", SECOND_LOCAL)
- .bodyValue(new TopicCreationDTO()
- .name(topicName)
- .partitions(1)
- .replicationFactor(1)
- .configs(Map.of())
- )
- .exchange()
- .expectStatus()
- .isEqualTo(HttpStatus.METHOD_NOT_ALLOWED);
- }
- @Test
- public void shouldUpdateTopicForNonReadonlyCluster() {
- var topicName = UUID.randomUUID().toString();
- webTestClient.post()
- .uri("/api/clusters/{clusterName}/topics", LOCAL)
- .bodyValue(new TopicCreationDTO()
- .name(topicName)
- .partitions(1)
- .replicationFactor(1)
- )
- .exchange()
- .expectStatus()
- .isOk();
- webTestClient.patch()
- .uri("/api/clusters/{clusterName}/topics/{topicName}", LOCAL, topicName)
- .bodyValue(new TopicUpdateDTO()
- .configs(Map.of("cleanup.policy", "compact"))
- )
- .exchange()
- .expectStatus()
- .isOk()
- .expectBody()
- .jsonPath("$.cleanUpPolicy").isEqualTo("COMPACT");
- }
- @Test
- public void shouldNotUpdateTopicForReadonlyCluster() {
- var topicName = UUID.randomUUID().toString();
- webTestClient.patch()
- .uri("/api/clusters/{clusterName}/topics/{topicName}", SECOND_LOCAL, topicName)
- .bodyValue(new TopicUpdateDTO()
- .configs(Map.of())
- )
- .exchange()
- .expectStatus()
- .isEqualTo(HttpStatus.METHOD_NOT_ALLOWED);
- }
- }
|