From 65917221006a26ac6aa3408f2bbc40ba93972bab Mon Sep 17 00:00:00 2001 From: Rajeshwar Rao Date: Tue, 24 Oct 2023 19:38:35 +0530 Subject: [PATCH] Added unit tests for ShardingSphereDataNode (#28840) * Added unit tests for ShardingSphereDataNode * Checkstyle fix, removed underscore from test names --- .../node/ShardingSphereDataNodeTest.java | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ShardingSphereDataNodeTest.java diff --git a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ShardingSphereDataNodeTest.java b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ShardingSphereDataNodeTest.java new file mode 100644 index 0000000000000..d371b077cd132 --- /dev/null +++ b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ShardingSphereDataNodeTest.java @@ -0,0 +1,133 @@ +/* + * 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.metadata.persist.node; + +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +class ShardingSphereDataNodeTest { + + @Test + void assertGetShardingSphereDataNodePath() { + assertThat(ShardingSphereDataNode.getShardingSphereDataNodePath(), is("/statistics")); + } + + @Test + void assertGetDatabaseNamePath() { + assertThat(ShardingSphereDataNode.getDatabaseNamePath("db_path"), is("/statistics/db_path")); + } + + @Test + void assertGetTablesPath() { + assertThat(ShardingSphereDataNode.getTablesPath("db_name", "db_schema"), is("/statistics/db_name/schemas/db_schema/tables")); + } + + @Test + void assertGetSchemaDataPath() { + assertThat(ShardingSphereDataNode.getSchemaDataPath("db_name", "db_schema"), is("/statistics/db_name/schemas/db_schema")); + } + + @Test + void assertGetSchemasPath() { + assertThat(ShardingSphereDataNode.getSchemasPath("db_name"), is("/statistics/db_name/schemas")); + } + + @Test + void assertGetTablePath() { + assertThat(ShardingSphereDataNode.getTablePath("db_name", "db_schema", "tbl_name"), is("/statistics/db_name/schemas/db_schema/tables/tbl_name")); + } + + @Test + void assertGetTableRowPath() { + assertThat(ShardingSphereDataNode.getTableRowPath("db_name", "db_schema", "tbl_name", "key"), is("/statistics/db_name/schemas/db_schema/tables/tbl_name/key")); + } + + @Test + void assertGetDatabaseNameHappyPath() { + assertThat(ShardingSphereDataNode.getDatabaseName("/statistics/db_name"), is(Optional.of("db_name"))); + } + + @Test + void assertGetDatabaseNameDbNameNotFoundScenario() { + assertThat(ShardingSphereDataNode.getDatabaseName("/statistics"), is(Optional.empty())); + } + + @Test + void assertGetSchemaNameHappyPath() { + assertThat(ShardingSphereDataNode.getSchemaName("/statistics/db_name/schemas/db_schema"), is(Optional.of("db_schema"))); + } + + @Test + void assertGetSchemaNameSchemaNameNotFoundScenario() { + assertThat(ShardingSphereDataNode.getSchemaName("/statistics/db_name"), is(Optional.empty())); + } + + @Test + void assertGetDatabaseNameByDatabasePathHappyPath() { + assertThat(ShardingSphereDataNode.getDatabaseNameByDatabasePath("/statistics/db_name"), is(Optional.of("db_name"))); + } + + @Test + void assertGetDatabaseNameByDatabasePathDbNameNotFoundScenario() { + assertThat(ShardingSphereDataNode.getDatabaseNameByDatabasePath("/statistics"), is(Optional.empty())); + } + + @Test + void assertGetSchemaNameBySchemaPathHappyPath() { + assertThat(ShardingSphereDataNode.getSchemaNameBySchemaPath("/statistics/db_name/schemas/db_schema"), is(Optional.of("db_schema"))); + } + + @Test + void assertGetSchemaNameBySchemaPathSchemaNameNotFoundScenario() { + assertThat(ShardingSphereDataNode.getSchemaNameBySchemaPath("/statistics/db_name"), is(Optional.empty())); + } + + @Test + void assertGetTableNameHappyPath() { + assertThat(ShardingSphereDataNode.getTableName("/statistics/db_name/schemas/db_schema/tables/tbl_name"), is(Optional.of("tbl_name"))); + } + + @Test + void assertGetTableNameTableNameNotFoundScenario() { + assertThat(ShardingSphereDataNode.getTableName("/statistics/db_name/schemas/db_schema"), is(Optional.empty())); + } + + @Test + void assertGetTableNameByRowPathHappyPath() { + assertThat(ShardingSphereDataNode.getTableNameByRowPath("/statistics/db_name/schemas/db_schema/tables/tbl_name"), is(Optional.of("tbl_name"))); + } + + @Test + void assertGetTableNameByRowPathTableNameNotFoundScenario() { + assertThat(ShardingSphereDataNode.getTableNameByRowPath("/statistics/db_name/schemas/db_schema"), is(Optional.empty())); + } + + @Test + void assertGetRowUniqueKeyHappyPath() { + assertThat(ShardingSphereDataNode.getRowUniqueKey("/statistics/db_name/schemas/db_schema/tables/tbl_name/key"), is(Optional.of("key"))); + } + + @Test + void assertGetRowUniqueKeyUniqueKeyNotFoundScenario() { + assertThat(ShardingSphereDataNode.getRowUniqueKey("/statistics/db_name/schemas/db_schema/tables/tbl_name"), is(Optional.empty())); + } +}