12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package com.provectus.kafka.ui;
- import com.provectus.kafka.ui.model.TopicFormData;
- import lombok.extern.log4j.Log4j2;
- import org.junit.jupiter.api.Test;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
- import org.springframework.http.HttpStatus;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.web.reactive.server.WebTestClient;
- import java.util.Map;
- import java.util.UUID;
- @ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class})
- @Log4j2
- @AutoConfigureWebTestClient(timeout = "60000")
- public class ReadOnlyModeTests extends AbstractBaseTest {
- @Autowired
- private WebTestClient webTestClient;
- @Test
- public void shouldCreateTopicForNonReadonlyCluster() {
- var topicName = UUID.randomUUID().toString();
- webTestClient.post()
- .uri("/api/clusters/{clusterName}/topics", LOCAL)
- .bodyValue(new TopicFormData()
- .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 TopicFormData()
- .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 TopicFormData()
- .name(topicName)
- .partitions(1)
- .replicationFactor(1)
- .configs(Map.of())
- )
- .exchange()
- .expectStatus()
- .isOk();
- webTestClient.patch()
- .uri("/api/clusters/{clusterName}/topics/{topicName}", LOCAL, topicName)
- .bodyValue(new TopicFormData()
- .name(topicName)
- .partitions(2)
- .replicationFactor(1)
- .configs(Map.of())
- )
- .exchange()
- .expectStatus()
- .isOk();
- }
- @Test
- public void shouldNotUpdateTopicForReadonlyCluster() {
- var topicName = UUID.randomUUID().toString();
- webTestClient.patch()
- .uri("/api/clusters/{clusterName}/topics/{topicName}", SECOND_LOCAL, topicName)
- .bodyValue(new TopicFormData()
- .name(topicName)
- .partitions(1)
- .replicationFactor(1)
- .configs(Map.of())
- )
- .exchange()
- .expectStatus()
- .isEqualTo(HttpStatus.METHOD_NOT_ALLOWED);
- }
- }
|