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());
+ }
}