This is an automated email from the ASF dual-hosted git repository.

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 8ffbfdcbff8 Refactor ComputeNodeOnlineDispatchEventBuilderTest (#32897)
8ffbfdcbff8 is described below

commit 8ffbfdcbff8d8156a360eaa50eee33ad08fb1315
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Sep 15 23:44:03 2024 +0800

    Refactor ComputeNodeOnlineDispatchEventBuilderTest (#32897)
---
 .../ComputeNodeOnlineDispatchEventBuilder.java     | 23 +++++++++++-----------
 .../ClusterStateDispatchEventBuilderTest.java      |  5 +++++
 .../ComputeNodeOnlineDispatchEventBuilderTest.java | 20 +++++++++++++++++--
 3 files changed, 35 insertions(+), 13 deletions(-)

diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilder.java
index ecbbf6759ff..6ffe881c9f1 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilder.java
@@ -49,7 +49,7 @@ public final class ComputeNodeOnlineDispatchEventBuilder 
implements DispatchEven
     
     @Override
     public Collection<Type> getSubscribedTypes() {
-        return Arrays.asList(Type.ADDED, Type.UPDATED, Type.DELETED);
+        return Arrays.asList(Type.ADDED, Type.DELETED);
     }
     
     @Override
@@ -59,16 +59,17 @@ public final class ComputeNodeOnlineDispatchEventBuilder 
implements DispatchEven
     
     private Optional<DispatchEvent> createInstanceEvent(final DataChangedEvent 
event) {
         Matcher matcher = getInstanceOnlinePathMatcher(event.getKey());
-        if (matcher.find()) {
-            ComputeNodeData computeNodeData = new 
YamlComputeNodeDataSwapper().swapToObject(YamlEngine.unmarshal(event.getValue(),
 YamlComputeNodeData.class));
-            InstanceMetaData instanceMetaData = 
InstanceMetaDataFactory.create(matcher.group(2),
-                    InstanceType.valueOf(matcher.group(1).toUpperCase()), 
computeNodeData.getAttribute(), computeNodeData.getVersion());
-            if (Type.ADDED == event.getType()) {
-                return Optional.of(new InstanceOnlineEvent(instanceMetaData));
-            }
-            if (Type.DELETED == event.getType()) {
-                return Optional.of(new InstanceOfflineEvent(instanceMetaData));
-            }
+        if (!matcher.find()) {
+            return Optional.empty();
+        }
+        ComputeNodeData computeNodeData = new 
YamlComputeNodeDataSwapper().swapToObject(YamlEngine.unmarshal(event.getValue(),
 YamlComputeNodeData.class));
+        InstanceMetaData instanceMetaData = InstanceMetaDataFactory.create(
+                matcher.group(2), 
InstanceType.valueOf(matcher.group(1).toUpperCase()), 
computeNodeData.getAttribute(), computeNodeData.getVersion());
+        if (Type.ADDED == event.getType()) {
+            return Optional.of(new InstanceOnlineEvent(instanceMetaData));
+        }
+        if (Type.DELETED == event.getType()) {
+            return Optional.of(new InstanceOfflineEvent(instanceMetaData));
         }
         return Optional.empty();
     }
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ClusterStateDispatchEventBuilderTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ClusterStateDispatchEventBuilderTest.java
index 57bb9cb6d46..f0eccbcb9ad 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ClusterStateDispatchEventBuilderTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ClusterStateDispatchEventBuilderTest.java
@@ -35,6 +35,11 @@ class ClusterStateDispatchEventBuilderTest {
     
     private final ClusterStateDispatchEventBuilder builder = new 
ClusterStateDispatchEventBuilder();
     
+    @Test
+    void assertGetSubscribedKey() {
+        assertThat(builder.getSubscribedKey(), 
is("/nodes/compute_nodes/status"));
+    }
+    
     @Test
     void assertBuildEventWhenDelete() {
         assertFalse(builder.build(new 
DataChangedEvent("/nodes/compute_nodes/status", ClusterState.READ_ONLY.name(), 
Type.DELETED)).isPresent());
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilderTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilderTest.java
index 82a6831413f..c693e5feb54 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilderTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilderTest.java
@@ -29,6 +29,7 @@ import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 class ComputeNodeOnlineDispatchEventBuilderTest {
@@ -36,7 +37,17 @@ class ComputeNodeOnlineDispatchEventBuilderTest {
     private final ComputeNodeOnlineDispatchEventBuilder builder = new 
ComputeNodeOnlineDispatchEventBuilder();
     
     @Test
-    void assertComputeNodeOnline() {
+    void assertGetSubscribedKey() {
+        assertThat(builder.getSubscribedKey(), 
is("/nodes/compute_nodes/online"));
+    }
+    
+    @Test
+    void assertBuildWithInvalidInstanceOnlinePath() {
+        assertFalse(builder.build(new 
DataChangedEvent("/nodes/compute_nodes/online/foo", "{attribute: 
127.0.0.1@3307,version: 1}", Type.ADDED)).isPresent());
+    }
+    
+    @Test
+    void assertBuildComputeNodeOnlineEvent() {
         Optional<DispatchEvent> actual = builder.build(new 
DataChangedEvent("/nodes/compute_nodes/online/proxy/foo_instance_id", 
"{attribute: 127.0.0.1@3307,version: 1}", Type.ADDED));
         assertTrue(actual.isPresent());
         InstanceOnlineEvent event = (InstanceOnlineEvent) actual.get();
@@ -48,7 +59,7 @@ class ComputeNodeOnlineDispatchEventBuilderTest {
     }
     
     @Test
-    void assertComputeNodeOffline() {
+    void assertBuildWithComputeNodeOfflineEvent() {
         Optional<DispatchEvent> actual = builder.build(new 
DataChangedEvent("/nodes/compute_nodes/online/proxy/foo_instance_id", 
"{attribute: 127.0.0.1@3307,version: 1}", Type.DELETED));
         assertTrue(actual.isPresent());
         InstanceOfflineEvent event = (InstanceOfflineEvent) actual.get();
@@ -58,4 +69,9 @@ class ComputeNodeOnlineDispatchEventBuilderTest {
         assertThat(event.getInstanceMetaData().getVersion(), is("1"));
         assertThat(event.getInstanceMetaData().getAttributes(), 
is("127.0.0.1@3307"));
     }
+    
+    @Test
+    void assertBuildWithInvalidOperationType() {
+        assertFalse(builder.build(new 
DataChangedEvent("/nodes/compute_nodes/online/proxy/foo_instance_id", 
"{attribute: 127.0.0.1@3307,version: 1}", Type.UPDATED)).isPresent());
+    }
 }

Reply via email to