Browse Source

Adding new tests
Rebase from master, resolving conflicts
Adding new fields to builder
Removing unused import

Diego Ching 3 years ago
parent
commit
b74a643c93

+ 0 - 1
kafka-ui-api/src/main/java/com/provectus/kafka/ui/mapper/ClusterMapper.java

@@ -35,7 +35,6 @@ import java.math.BigDecimal;
 import java.nio.file.Path;
 import java.nio.file.Path;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Properties;
 import java.util.Properties;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 import org.apache.kafka.clients.admin.ConfigEntry;
 import org.apache.kafka.clients.admin.ConfigEntry;

+ 5 - 1
kafka-ui-api/src/main/java/com/provectus/kafka/ui/util/ClusterUtil.java

@@ -195,7 +195,11 @@ public class ClusterUtil {
   public static InternalTopicConfig mapToInternalTopicConfig(ConfigEntry configEntry) {
   public static InternalTopicConfig mapToInternalTopicConfig(ConfigEntry configEntry) {
     InternalTopicConfig.InternalTopicConfigBuilder builder = InternalTopicConfig.builder()
     InternalTopicConfig.InternalTopicConfigBuilder builder = InternalTopicConfig.builder()
         .name(configEntry.name())
         .name(configEntry.name())
-        .value(configEntry.value());
+        .value(configEntry.value())
+        .source(configEntry.source())
+        .isReadOnly(configEntry.isReadOnly())
+        .isSensitive(configEntry.isSensitive())
+        .synonyms(configEntry.synonyms());
     if (configEntry.name().equals(MESSAGE_FORMAT_VERSION_CONFIG)) {
     if (configEntry.name().equals(MESSAGE_FORMAT_VERSION_CONFIG)) {
       builder.defaultValue(configEntry.value());
       builder.defaultValue(configEntry.value());
     } else {
     } else {

+ 20 - 6
kafka-ui-api/src/test/java/com/provectus/kafka/ui/KafkaConsumerTests.java

@@ -1,13 +1,14 @@
 package com.provectus.kafka.ui;
 package com.provectus.kafka.ui;
 
 
+import com.provectus.kafka.ui.api.model.TopicConfig;
 import com.provectus.kafka.ui.model.BrokerConfig;
 import com.provectus.kafka.ui.model.BrokerConfig;
 import com.provectus.kafka.ui.model.PartitionsIncrease;
 import com.provectus.kafka.ui.model.PartitionsIncrease;
 import com.provectus.kafka.ui.model.PartitionsIncreaseResponse;
 import com.provectus.kafka.ui.model.PartitionsIncreaseResponse;
 import com.provectus.kafka.ui.model.TopicCreation;
 import com.provectus.kafka.ui.model.TopicCreation;
 import com.provectus.kafka.ui.model.TopicDetails;
 import com.provectus.kafka.ui.model.TopicDetails;
 import com.provectus.kafka.ui.model.TopicMessage;
 import com.provectus.kafka.ui.model.TopicMessage;
-import com.provectus.kafka.ui.api.model.TopicConfig;
 import com.provectus.kafka.ui.producer.KafkaTestProducer;
 import com.provectus.kafka.ui.producer.KafkaTestProducer;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.UUID;
 import java.util.UUID;
 import java.util.stream.Stream;
 import java.util.stream.Stream;
@@ -127,6 +128,12 @@ public class KafkaConsumerTests extends AbstractBaseTest {
         .exchange()
         .exchange()
         .expectStatus()
         .expectStatus()
         .isNotFound();
         .isNotFound();
+
+    webTestClient.get()
+        .uri("/api/clusters/{clusterName}/topics/{topicName}/config", LOCAL, topicName)
+        .exchange()
+        .expectStatus()
+        .isNotFound();
   }
   }
 
 
   @Test
   @Test
@@ -154,8 +161,6 @@ public class KafkaConsumerTests extends AbstractBaseTest {
 
 
   @Test
   @Test
   public void shouldReturn404ForNonExistingBroker() {
   public void shouldReturn404ForNonExistingBroker() {
-    var topicName = UUID.randomUUID().toString();
-
     webTestClient.get()
     webTestClient.get()
         .uri("/api/clusters/{clusterName}/brokers/{id}/configs",
         .uri("/api/clusters/{clusterName}/brokers/{id}/configs",
             LOCAL,
             LOCAL,
@@ -166,7 +171,7 @@ public class KafkaConsumerTests extends AbstractBaseTest {
   }
   }
 
 
   @Test
   @Test
-  public void shouldRetrieveConfig() {
+  public void shouldRetrieveTopicConfig() {
     var topicName = UUID.randomUUID().toString();
     var topicName = UUID.randomUUID().toString();
 
 
     webTestClient.post()
     webTestClient.post()
@@ -181,11 +186,20 @@ public class KafkaConsumerTests extends AbstractBaseTest {
             .expectStatus()
             .expectStatus()
             .isOk();
             .isOk();
 
 
-    WebTestClient.ListBodySpec result = webTestClient.get()
+    List<TopicConfig> configs = webTestClient.get()
             .uri("/api/clusters/{clusterName}/topics/{topicName}/config", LOCAL, topicName)
             .uri("/api/clusters/{clusterName}/topics/{topicName}/config", LOCAL, topicName)
             .exchange()
             .exchange()
             .expectStatus()
             .expectStatus()
             .isOk()
             .isOk()
-            .expectBodyList(TopicConfig.class);
+            .expectBodyList(TopicConfig.class)
+            .returnResult()
+            .getResponseBody();
+
+    assert configs != null;
+    assert !configs.isEmpty();
+    Assertions.assertNotEquals(null, configs.get(0).getName());
+    Assertions.assertNotEquals(null, configs.get(0).getIsReadOnly());
+    Assertions.assertNotEquals(null, configs.get(0).getIsSensitive());
+    Assertions.assertNotEquals(null, configs.get(0).getSource());
   }
   }
 }
 }

+ 5 - 22
kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml

@@ -1718,7 +1718,7 @@ components:
         defaultValue:
         defaultValue:
           type: string
           type: string
         source:
         source:
-          $ref: "#/components/schemas/Source"
+          $ref: "#/components/schemas/ConfigSource"
         isSensitive:
         isSensitive:
           type: boolean
           type: boolean
         isReadOnly:
         isReadOnly:
@@ -1729,27 +1729,10 @@ components:
             $ref: "#/components/schemas/ConfigSynonym"
             $ref: "#/components/schemas/ConfigSynonym"
       required:
       required:
         - name
         - name
-
-    ConfigSynonym:
-      type: object
-      properties:
-        name:
-          type: string
-        value:
-          type: string
-        source:
-          $ref: "#/components/schemas/Source"
-
-    Source:
-      type: string
-      enum:
-        - DYNAMIC_TOPIC_CONFIG
-        - DYNAMIC_BROKER_LOGGER_CONFIG
-        - DYNAMIC_BROKER_CONFIG
-        - DYNAMIC_DEFAULT_BROKER_CONFIG
-        - STATIC_BROKER_CONFIG
-        - DEFAULT_CONFIG
-        - UNKNOWN
+        - value
+        - source
+        - isSensitive
+        - isReadOnly
 
 
     TopicCreation:
     TopicCreation:
       type: object
       type: object