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 5a0bca4f79e Add TableMetaDataPersistDisabledServiceTest (#37222)
5a0bca4f79e is described below
commit 5a0bca4f79eb5ee35238989f6a28dc2fc30c87c4
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Nov 29 21:46:34 2025 +0800
Add TableMetaDataPersistDisabledServiceTest (#37222)
---
.../TableMetaDataPersistDisabledService.java | 6 +-
.../TableMetaDataPersistDisabledServiceTest.java | 90 ++++++++++++++++++++++
2 files changed, 92 insertions(+), 4 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistDisabledService.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistDisabledService.java
index 2741a43d442..5c51704a9b5 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistDisabledService.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistDisabledService.java
@@ -54,8 +54,7 @@ public final class TableMetaDataPersistDisabledService
implements TableMetaDataP
@Override
public void persist(final String databaseName, final String schemaName,
final Collection<ShardingSphereTable> tables) {
for (ShardingSphereTable each : tables) {
- TableCoordinatorTypeNodePath tableCoordinatorTypeNodePath = new
TableCoordinatorTypeNodePath(Joiner.on(".").join(databaseName, schemaName,
each.getName()),
- CoordinatorType.CREATE.name());
+ TableCoordinatorTypeNodePath tableCoordinatorTypeNodePath = new
TableCoordinatorTypeNodePath(Joiner.on(".").join(databaseName, schemaName,
each.getName()), CoordinatorType.CREATE.name());
repository.persist(NodePathGenerator.toPath(tableCoordinatorTypeNodePath),
YamlEngine.marshal(swapper.swapToYamlConfiguration(each)));
repository.delete(NodePathGenerator.toPath(tableCoordinatorTypeNodePath.getTableCoordinatorPath()));
}
@@ -63,8 +62,7 @@ public final class TableMetaDataPersistDisabledService
implements TableMetaDataP
@Override
public void drop(final String databaseName, final String schemaName, final
String tableName) {
- TableCoordinatorTypeNodePath tableCoordinatorTypeNodePath = new
TableCoordinatorTypeNodePath(Joiner.on(".").join(databaseName, schemaName,
tableName),
- CoordinatorType.DROP.name());
+ TableCoordinatorTypeNodePath tableCoordinatorTypeNodePath = new
TableCoordinatorTypeNodePath(Joiner.on(".").join(databaseName, schemaName,
tableName), CoordinatorType.DROP.name());
repository.persist(NodePathGenerator.toPath(tableCoordinatorTypeNodePath),
tableName);
repository.delete(NodePathGenerator.toPath(tableCoordinatorTypeNodePath.getTableCoordinatorPath()));
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistDisabledServiceTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistDisabledServiceTest.java
new file mode 100644
index 00000000000..22cae1584bb
--- /dev/null
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistDisabledServiceTest.java
@@ -0,0 +1,90 @@
+/*
+ * 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.metadata.persist.metadata.service;
+
+import com.google.common.base.Joiner;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
+import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
+import org.apache.shardingsphere.infra.yaml.schema.swapper.YamlTableSwapper;
+import
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import
org.apache.shardingsphere.mode.node.path.type.global.state.coordinator.CoordinatorType;
+import
org.apache.shardingsphere.mode.node.path.type.global.state.coordinator.TableCoordinatorTypeNodePath;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.util.Collections;
+
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@ExtendWith(MockitoExtension.class)
+class TableMetaDataPersistDisabledServiceTest {
+
+ private TableMetaDataPersistDisabledService persistService;
+
+ @Mock
+ private PersistRepository repository;
+
+ @BeforeEach
+ void setUp() {
+ persistService = new TableMetaDataPersistDisabledService(repository);
+ }
+
+ @Test
+ void assertLoadTables() {
+ assertTrue(persistService.load("foo_db", "foo_schema").isEmpty());
+ }
+
+ @Test
+ void assertLoadTable() {
+ assertNull(persistService.load("foo_db", "foo_schema", "foo_tbl"));
+ }
+
+ @Test
+ void assertPersist() {
+ ShardingSphereTable table = new ShardingSphereTable("foo_tbl",
Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
+ String qualifiedTableName = Joiner.on(".").join("foo_db",
"foo_schema", "foo_tbl");
+ TableCoordinatorTypeNodePath tableCoordinatorTypeNodePath = new
TableCoordinatorTypeNodePath(qualifiedTableName, CoordinatorType.CREATE.name());
+ String expectedPersistPath =
NodePathGenerator.toPath(tableCoordinatorTypeNodePath);
+ String expectedDeletePath =
NodePathGenerator.toPath(tableCoordinatorTypeNodePath.getTableCoordinatorPath());
+ String expectedContent = YamlEngine.marshal(new
YamlTableSwapper().swapToYamlConfiguration(table));
+ persistService.persist("foo_db", "foo_schema",
Collections.singleton(table));
+ verify(repository).persist(expectedPersistPath, expectedContent);
+ verify(repository).delete(expectedDeletePath);
+ }
+
+ @Test
+ void assertDrop() {
+ ShardingSphereTable table = mock(ShardingSphereTable.class);
+ when(table.getName()).thenReturn("foo_tbl");
+ String qualifiedTableName = Joiner.on(".").join("foo_db",
"foo_schema", "foo_tbl");
+ TableCoordinatorTypeNodePath tableCoordinatorTypeNodePath = new
TableCoordinatorTypeNodePath(qualifiedTableName, CoordinatorType.DROP.name());
+ String expectedPersistPath =
NodePathGenerator.toPath(tableCoordinatorTypeNodePath);
+ String expectedDeletePath =
NodePathGenerator.toPath(tableCoordinatorTypeNodePath.getTableCoordinatorPath());
+ persistService.drop("foo_db", "foo_schema",
Collections.singleton(table));
+ verify(repository).persist(expectedPersistPath, "foo_tbl");
+ verify(repository).delete(expectedDeletePath);
+ }
+}