You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by tu...@apache.org on 2022/04/08 15:19:14 UTC
[shardingsphere] branch master updated: Refactor TablesContextTest (#16684)
This is an automated email from the ASF dual-hosted git repository.
tuichenchuxin 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 c04ebaf2c5a Refactor TablesContextTest (#16684)
c04ebaf2c5a is described below
commit c04ebaf2c5a4bfd9fa34695c9e56f1a4bd21a2ff
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Apr 8 23:18:58 2022 +0800
Refactor TablesContextTest (#16684)
---
.../binder/segment/table/TablesContextTest.java | 40 +++++++++-------------
1 file changed, 17 insertions(+), 23 deletions(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java
index d2ea647540f..a71472198c6 100644
--- a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java
@@ -35,6 +35,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertFalse;
@@ -109,74 +110,72 @@ public final class TablesContextTest {
SimpleTableSegment tableSegment1 = createTableSegment("TABLE_1", "TBL_1");
SimpleTableSegment tableSegment2 = createTableSegment("TABLE_2", "TBL_2");
TableMetaData tableMetaData = new TableMetaData("TABLE_1",
- Arrays.asList(new ColumnMetaData("COL", 0, false, false, true)), Collections.emptyList(), Collections.emptyList());
- ShardingSphereSchema schema = new ShardingSphereSchema(Arrays.asList(tableMetaData).stream().collect(Collectors.toMap(TableMetaData::getName, v -> v)));
+ Collections.singletonList(new ColumnMetaData("COL", 0, false, false, true)), Collections.emptyList(), Collections.emptyList());
+ ShardingSphereSchema schema = new ShardingSphereSchema(Stream.of(tableMetaData).collect(Collectors.toMap(TableMetaData::getName, value -> value)));
ColumnSegment columnSegment = createColumnSegment(null, "COL");
Map<String, String> actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2),
DatabaseTypeRegistry.getDefaultDatabaseType()).findTableNamesByColumnSegment(Collections.singletonList(columnSegment), schema);
assertFalse(actual.isEmpty());
assertThat(actual.get("col"), is("TABLE_1"));
}
-
+
@Test
public void assertFindTableNameWhenColumnProjectionWhenSingleTable() {
SimpleTableSegment tableSegment = createTableSegment("table_1", "tbl_1");
- ColumnProjection columnProjection = createColumnProjection(null, "col", "cl");
+ ColumnProjection columnProjection = new ColumnProjection(null, "col", "cl");
Map<String, String> actual = new TablesContext(Collections.singletonList(tableSegment), DatabaseTypeRegistry.getDefaultDatabaseType())
.findTableNamesByColumnProjection(Collections.singletonList(columnProjection), mock(ShardingSphereSchema.class));
assertFalse(actual.isEmpty());
assertThat(actual.get("col"), is("table_1"));
}
-
+
@Test
public void assertFindTableNameWhenColumnProjectionOwnerPresent() {
SimpleTableSegment tableSegment1 = createTableSegment("table_1", "tbl_1");
SimpleTableSegment tableSegment2 = createTableSegment("table_2", "tbl_2");
- ColumnProjection columnProjection = createColumnProjection("table_1", "col", "cl");
+ ColumnProjection columnProjection = new ColumnProjection("table_1", "col", "cl");
Map<String, String> actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2), DatabaseTypeRegistry.getDefaultDatabaseType())
.findTableNamesByColumnProjection(Collections.singletonList(columnProjection), mock(ShardingSphereSchema.class));
assertFalse(actual.isEmpty());
assertThat(actual.get("table_1.col"), is("table_1"));
}
-
+
@Test
public void assertFindTableNameWhenColumnProjectionOwnerAbsent() {
SimpleTableSegment tableSegment1 = createTableSegment("table_1", "tbl_1");
SimpleTableSegment tableSegment2 = createTableSegment("table_2", "tbl_2");
- ColumnProjection columnProjection = createColumnProjection(null, "col", "cl");
+ ColumnProjection columnProjection = new ColumnProjection(null, "col", "cl");
Map<String, String> actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2), DatabaseTypeRegistry.getDefaultDatabaseType())
.findTableNamesByColumnProjection(Collections.singletonList(columnProjection), mock(ShardingSphereSchema.class));
assertTrue(actual.isEmpty());
}
-
+
@Test
public void assertFindTableNameWhenColumnProjectionOwnerAbsentAndSchemaMetaDataContainsColumn() {
SimpleTableSegment tableSegment1 = createTableSegment("table_1", "tbl_1");
SimpleTableSegment tableSegment2 = createTableSegment("table_2", "tbl_2");
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
when(schema.getAllColumnNames("table_1")).thenReturn(Collections.singletonList("col"));
- ColumnProjection columnProjection = createColumnProjection(null, "col", "cl");
+ ColumnProjection columnProjection = new ColumnProjection(null, "col", "cl");
Map<String, String> actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2), DatabaseTypeRegistry.getDefaultDatabaseType())
.findTableNamesByColumnProjection(Collections.singletonList(columnProjection), schema);
assertFalse(actual.isEmpty());
assertThat(actual.get("col"), is("table_1"));
}
-
+
@Test
public void assertFindTableNameWhenColumnProjectionOwnerAbsentAndSchemaMetaDataContainsColumnInUpperCase() {
SimpleTableSegment tableSegment1 = createTableSegment("TABLE_1", "TBL_1");
SimpleTableSegment tableSegment2 = createTableSegment("TABLE_2", "TBL_2");
- TableMetaData tableMetaData = new TableMetaData("TABLE_1",
- Arrays.asList(new ColumnMetaData("COL", 0, false, false, true)),
- Collections.emptyList(), Collections.emptyList());
- ShardingSphereSchema schema = new ShardingSphereSchema(Arrays.asList(tableMetaData).stream().collect(Collectors.toMap(TableMetaData::getName, v -> v)));
- ColumnProjection columnProjection = createColumnProjection(null, "COL", "CL");
+ TableMetaData tableMetaData = new TableMetaData("TABLE_1", Collections.singletonList(new ColumnMetaData("COL", 0, false, false, true)), Collections.emptyList(), Collections.emptyList());
+ ShardingSphereSchema schema = new ShardingSphereSchema(Stream.of(tableMetaData).collect(Collectors.toMap(TableMetaData::getName, value -> value)));
+ ColumnProjection columnProjection = new ColumnProjection(null, "COL", "CL");
Map<String, String> actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2), DatabaseTypeRegistry.getDefaultDatabaseType())
.findTableNamesByColumnProjection(Collections.singletonList(columnProjection), schema);
assertFalse(actual.isEmpty());
assertThat(actual.get("col"), is("TABLE_1"));
}
-
+
private SimpleTableSegment createTableSegment(final String tableName, final String alias) {
SimpleTableSegment result = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue(tableName)));
AliasSegment aliasSegment = new AliasSegment(0, 0, new IdentifierValue(alias));
@@ -191,11 +190,6 @@ public final class TablesContextTest {
}
return result;
}
-
- private ColumnProjection createColumnProjection(final String owner, final String name, final String alias) {
- ColumnProjection result = new ColumnProjection(owner, name, alias);
- return result;
- }
@Test
public void assertGetSchemaNameWithSameSchemaAndSameTable() {
@@ -236,7 +230,7 @@ public final class TablesContextTest {
tableSegment2.setOwner(new OwnerSegment(0, 0, new IdentifierValue("sharding_db_2")));
new TablesContext(Arrays.asList(tableSegment1, tableSegment2), DatabaseTypeRegistry.getDefaultDatabaseType()).getDatabaseName();
}
-
+
@Test
public void assertGetSchemaName() {
SimpleTableSegment tableSegment1 = createTableSegment("table_1", "tbl_1");