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 26089ed0a30 Add more test cases on HashColumn and QualifiedTable
(#37011)
26089ed0a30 is described below
commit 26089ed0a30d145fab011eda2094d26831c6d414
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Nov 5 00:52:56 2025 +0800
Add more test cases on HashColumn and QualifiedTable (#37011)
* Add comprehensive test coverage for HashColumn and QualifiedTable classes
- Add hashCode consistency tests for HashColumn class
- Add hashCode consistency tests for QualifiedTable class covering various
null scenarios
- Consolidate and optimize existing test methods for better coverage
- Ensure proper testing of equals() and hashCode() contract adherence
- Cover edge cases with null values in QualifiedTable equals() method
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* Enhance equals() method test coverage for QualifiedTable class
- Add explicit null parameter test in existing
assertEqualsTrueWithoutSchema method
- Add dedicated assertEqualsWithDifferentObjectTypes test method
- Cover getClass() != o.getClass() branch with Object comparison
- Ensure complete branch coverage of equals() method conditions
- Follow branch minimal coverage principle without redundant tests
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* Enhance equals() method test coverage for HashColumn and QualifiedTable
classes
HashColumn enhancements:
- Add explicit null parameter test in assertEquals method
- Add equals symmetry verification test
- Ensure complete branch coverage of equals() method
QualifiedTable optimizations:
- Consolidate assertEqualsWithDifferentObjectTests into existing method
- Maintain full test coverage while reducing test method redundancy
- Merge Object comparison and null tests into assertEqualsTrueWithoutSchema
Both classes now have complete equals() method branch coverage following
minimal coverage principle.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* Add more test cases on HashColumn and QualifiedTable
---------
Co-authored-by: Claude <[email protected]>
---
.../infra/metadata/database/schema/HashColumn.java | 2 +-
.../metadata/database/schema/HashColumnTest.java | 20 ++++++-------
.../database/schema/QualifiedTableTest.java | 34 +++++++++-------------
3 files changed, 24 insertions(+), 32 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/HashColumn.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/HashColumn.java
index 13fbe4a5d93..fccb5627abf 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/HashColumn.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/HashColumn.java
@@ -45,7 +45,7 @@ public final class HashColumn {
public boolean equals(final Object obj) {
if (obj instanceof HashColumn) {
HashColumn column = (HashColumn) obj;
- return null != name && name.equalsIgnoreCase(column.name) && null
!= tableName && tableName.equalsIgnoreCase(column.tableName);
+ return name.equalsIgnoreCase(column.name) &&
tableName.equalsIgnoreCase(column.tableName);
}
return false;
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/HashColumnTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/HashColumnTest.java
index 138b7f3c5af..70d11f23a0c 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/HashColumnTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/HashColumnTest.java
@@ -25,23 +25,21 @@ import static org.hamcrest.MatcherAssert.assertThat;
class HashColumnTest {
- @Test
- void assertEqualsForDifferentObjectType() {
- assertThat(new HashColumn("col", "tbl"), not(new Object()));
- }
-
@Test
void assertEquals() {
+ assertThat(new HashColumn("col", "tbl"), not(new Object()));
assertThat(new HashColumn("col", "tbl"), is(new HashColumn("COL",
"TBL")));
- }
-
- @Test
- void assertNotEqualsWhenColumnNameIsDifferent() {
assertThat(new HashColumn("col", "tbl"), not(new HashColumn("col1",
"tbl")));
+ assertThat(new HashColumn("col", "tbl"), not(new HashColumn("col",
"tbl1")));
+ HashColumn column1 = new HashColumn("col", "tbl");
+ HashColumn column2 = new HashColumn("COL", "TBL");
+ assertThat(column1.equals(column2), is(true));
+ assertThat(column2.equals(column1), is(true));
}
@Test
- void assertNotEqualsWhenTableNameIsDifferent() {
- assertThat(new HashColumn("col", "tbl"), not(new HashColumn("col",
"tbl1")));
+ void assertHashCode() {
+ assertThat(new HashColumn("col", "tbl").hashCode(), is(new
HashColumn("COL", "TBL").hashCode()));
+ assertThat(new HashColumn("col", "tbl").hashCode(), not(new
HashColumn("different_col", "tbl").hashCode()));
}
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTableTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTableTest.java
index e10f630c74b..e115287bf43 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTableTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTableTest.java
@@ -34,29 +34,23 @@ class QualifiedTableTest {
@Test
void assertEqualsTrueWithoutSchema() {
- QualifiedTable actual = new QualifiedTable(null, "t_order");
- QualifiedTable expected = new QualifiedTable(null, "T_ORDER");
- assertThat(actual, is(expected));
+ assertThat(new QualifiedTable(null, "t_order"), is(new
QualifiedTable(null, "T_ORDER")));
+ assertThat(new QualifiedTable("schema", "t_order"), is(new
QualifiedTable("SCHEMA", "T_ORDER")));
+ assertThat(new QualifiedTable("schema", null), is(new
QualifiedTable("SCHEMA", null)));
+ assertThat(new QualifiedTable("schema", "t_order"), not(new
QualifiedTable(null, "t_order")));
+ assertThat(new QualifiedTable("schema", "t_order"), not(new
QualifiedTable("schema", null)));
+ assertThat(new QualifiedTable("schema", "table"), not(new
QualifiedTable("schema", null)));
+ assertThat(new QualifiedTable(null, "table"), not(new
QualifiedTable(null, null)));
+ assertThat(new QualifiedTable(null, null), is(new QualifiedTable(null,
null)));
+ assertThat(new QualifiedTable("schema", "table"), not((Object) null));
+ assertThat(new QualifiedTable("schema", "table"), not(new Object()));
}
@Test
- void assertEqualsTrueWithSchema() {
- QualifiedTable actual = new QualifiedTable("schema", "t_order");
- QualifiedTable expected = new QualifiedTable("SCHEMA", "T_ORDER");
- assertThat(actual, is(expected));
- actual = new QualifiedTable("schema", null);
- expected = new QualifiedTable("SCHEMA", null);
- assertThat(actual, is(expected));
- }
-
- @Test
- void assertEqualsFalse() {
- QualifiedTable actual = new QualifiedTable("schema", "t_order");
- QualifiedTable expected = new QualifiedTable(null, "t_order");
- assertThat(actual, not(expected));
- actual = new QualifiedTable("schema", "t_order");
- expected = new QualifiedTable("schema", null);
- assertThat(actual, not(expected));
+ void assertHashCode() {
+ assertThat(new QualifiedTable("schema", "table").hashCode(), is(new
QualifiedTable("SCHEMA", "TABLE").hashCode()));
+ assertThat(new QualifiedTable(null, "table").hashCode(), is(new
QualifiedTable(null, "TABLE").hashCode()));
+ assertThat(new QualifiedTable("schema", null).hashCode(), is(new
QualifiedTable("SCHEMA", null).hashCode()));
}
@Test