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 c9cb8c1212e Add test cases on ListenerAssistedDispatchEventBuilder
(#32901)
c9cb8c1212e is described below
commit c9cb8c1212e9694df0d2846a65744993f356c82d
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Sep 16 12:25:31 2024 +0800
Add test cases on ListenerAssistedDispatchEventBuilder (#32901)
* Add test cases on GlobalRuleDispatchEventBuilder
* Add test cases on ListenerAssistedDispatchEventBuilder
---
.../mode/persist/pojo/ListenerAssistedType.java | 3 +-
.../ListenerAssistedDispatchEventBuilder.java | 13 ++---
.../ListenerAssistedDispatchEventBuilderTest.java | 62 ++++++++++++++++++++++
3 files changed, 68 insertions(+), 10 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/pojo/ListenerAssistedType.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/pojo/ListenerAssistedType.java
index 6975ee9f508..c5f882c1ca9 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/pojo/ListenerAssistedType.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/pojo/ListenerAssistedType.java
@@ -21,7 +21,6 @@ package org.apache.shardingsphere.mode.persist.pojo;
* Listener assisted type.
*/
public enum ListenerAssistedType {
- CREATE_DATABASE,
- DROP_DATABASE
+ CREATE_DATABASE, DROP_DATABASE
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilder.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilder.java
index fa1e79ad9a1..c972dbbf719 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilder.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilder.java
@@ -25,6 +25,7 @@ import
org.apache.shardingsphere.mode.event.dispatch.assisted.CreateDatabaseList
import
org.apache.shardingsphere.mode.event.dispatch.assisted.DropDatabaseListenerAssistedEvent;
import org.apache.shardingsphere.mode.path.ListenerAssistedNodePath;
import org.apache.shardingsphere.mode.persist.pojo.ListenerAssisted;
+import org.apache.shardingsphere.mode.persist.pojo.ListenerAssistedType;
import java.util.Arrays;
import java.util.Collection;
@@ -51,13 +52,9 @@ public final class ListenerAssistedDispatchEventBuilder
implements DispatchEvent
if (!databaseName.isPresent()) {
return Optional.empty();
}
- switch (YamlEngine.unmarshal(event.getValue(),
ListenerAssisted.class).getListenerAssistedType()) {
- case CREATE_DATABASE:
- return Optional.of(new
CreateDatabaseListenerAssistedEvent(databaseName.get()));
- case DROP_DATABASE:
- return Optional.of(new
DropDatabaseListenerAssistedEvent(databaseName.get()));
- default:
- return Optional.empty();
- }
+ ListenerAssistedType listenerAssistedType =
YamlEngine.unmarshal(event.getValue(),
ListenerAssisted.class).getListenerAssistedType();
+ return Optional.of(ListenerAssistedType.CREATE_DATABASE ==
listenerAssistedType
+ ? new CreateDatabaseListenerAssistedEvent(databaseName.get())
+ : new DropDatabaseListenerAssistedEvent(databaseName.get()));
}
}
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilderTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilderTest.java
new file mode 100644
index 00000000000..d861f532992
--- /dev/null
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilderTest.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.mode.manager.cluster.event.builder;
+
+import org.apache.shardingsphere.mode.event.DataChangedEvent;
+import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
+import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
+import
org.apache.shardingsphere.mode.event.dispatch.assisted.CreateDatabaseListenerAssistedEvent;
+import
org.apache.shardingsphere.mode.event.dispatch.assisted.DropDatabaseListenerAssistedEvent;
+import org.junit.jupiter.api.Test;
+
+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 ListenerAssistedDispatchEventBuilderTest {
+
+ private final ListenerAssistedDispatchEventBuilder builder = new
ListenerAssistedDispatchEventBuilder();
+
+ @Test
+ void assertGetSubscribedKey() {
+ assertThat(builder.getSubscribedKey(), is("/listener_assisted"));
+ }
+
+ @Test
+ void assertBuildCreateDatabaseListenerAssistedEvent() {
+ Optional<DispatchEvent> actual = builder.build(new
DataChangedEvent("/listener_assisted/foo_db", "{databaseName: foo_db,
listenerAssistedType: CREATE_DATABASE}", Type.ADDED));
+ assertTrue(actual.isPresent());
+ assertThat(((CreateDatabaseListenerAssistedEvent)
actual.get()).getDatabaseName(), is("foo_db"));
+ }
+
+ @Test
+ void assertBuildDropDatabaseListenerAssistedEvent() {
+ Optional<DispatchEvent> actual = builder.build(new
DataChangedEvent("/listener_assisted/foo_db", "{databaseName: foo_db,
listenerAssistedType: DROP_DATABASE}", Type.ADDED));
+ assertTrue(actual.isPresent());
+ assertThat(((DropDatabaseListenerAssistedEvent)
actual.get()).getDatabaseName(), is("foo_db"));
+ }
+
+ @Test
+ void assertBuildWithoutDatabase() {
+ Optional<DispatchEvent> actual = builder.build(new
DataChangedEvent("/listener_assisted", "", Type.ADDED));
+ assertFalse(actual.isPresent());
+ }
+}