Skip to content

Commit aa67957

Browse files
softlgliaoguang
andauthored
bugfix: Fixed the issue where different ReadSheet objects could not get the correct value when comparing them. (#468)
* bugfix:修复不同ReadSheet对像在比较的时候无法正确获取到值 * bugfix:Add ReadSheet test case * bugfix:check mvn spotless --------- Co-authored-by: liaoguang <guang.liao@esrgear.com>
1 parent 5e0615a commit aa67957

File tree

2 files changed

+125
-0
lines changed

2 files changed

+125
-0
lines changed
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
package cn.idev.excel.test.temp.issue406;
2+
3+
import cn.idev.excel.read.metadata.ReadSheet;
4+
import org.junit.jupiter.api.Assertions;
5+
import org.junit.jupiter.api.Test;
6+
7+
class ReadSheetTest {
8+
9+
@Test
10+
void testAll() {
11+
testEquals_SameInstance();
12+
testEquals_Null();
13+
testEquals_DifferentClass();
14+
testEquals_EqualObjects();
15+
16+
testHashCode_Consistency();
17+
testHashCode_EqualityForEqualObjects();
18+
19+
// If @EqualsAndHashCode is not implemented, the following error will occur
20+
testEquals_DifferentSheetNo();
21+
testEquals_DifferentSheetName();
22+
testEquals_DifferentNumRows();
23+
testEquals_DifferentHiddenState();
24+
testEquals_DifferentVeryHiddenState();
25+
}
26+
27+
@Test
28+
void testEquals_SameInstance() {
29+
ReadSheet sheet = new ReadSheet(1, "Sheet1");
30+
Assertions.assertEquals(sheet, sheet);
31+
}
32+
33+
@Test
34+
void testEquals_Null() {
35+
ReadSheet sheet = new ReadSheet(1, "Sheet1");
36+
Assertions.assertNotEquals(null, sheet);
37+
}
38+
39+
@Test
40+
void testEquals_DifferentClass() {
41+
ReadSheet sheet = new ReadSheet(1, "Sheet1");
42+
Assertions.assertNotEquals("Not a ReadSheet object", sheet);
43+
}
44+
45+
@Test
46+
void testEquals_EqualObjects() {
47+
ReadSheet sheet1 = new ReadSheet(1, "Sheet1");
48+
sheet1.setNumRows(100);
49+
sheet1.setHidden(false);
50+
sheet1.setVeryHidden(true);
51+
52+
ReadSheet sheet2 = new ReadSheet(1, "Sheet1");
53+
sheet2.setNumRows(100);
54+
sheet2.setHidden(false);
55+
sheet2.setVeryHidden(true);
56+
57+
Assertions.assertEquals(sheet1, sheet2);
58+
}
59+
60+
@Test
61+
void testEquals_DifferentSheetNo() {
62+
ReadSheet sheet1 = new ReadSheet(1, "Sheet1");
63+
ReadSheet sheet2 = new ReadSheet(2, "Sheet1");
64+
Assertions.assertNotEquals(sheet1, sheet2);
65+
}
66+
67+
@Test
68+
void testEquals_DifferentSheetName() {
69+
ReadSheet sheet1 = new ReadSheet(1, "Sheet1");
70+
ReadSheet sheet2 = new ReadSheet(1, "Sheet2");
71+
Assertions.assertNotEquals(sheet1, sheet2);
72+
}
73+
74+
@Test
75+
void testEquals_DifferentNumRows() {
76+
ReadSheet sheet1 = new ReadSheet(1, "Sheet1");
77+
sheet1.setNumRows(100);
78+
ReadSheet sheet2 = new ReadSheet(1, "Sheet1");
79+
sheet2.setNumRows(200);
80+
Assertions.assertNotEquals(sheet1, sheet2);
81+
}
82+
83+
@Test
84+
void testEquals_DifferentHiddenState() {
85+
ReadSheet sheet1 = new ReadSheet(1, "Sheet1");
86+
sheet1.setHidden(true);
87+
ReadSheet sheet2 = new ReadSheet(1, "Sheet1");
88+
sheet2.setHidden(false);
89+
Assertions.assertNotEquals(sheet1, sheet2);
90+
}
91+
92+
@Test
93+
void testEquals_DifferentVeryHiddenState() {
94+
ReadSheet sheet1 = new ReadSheet(1, "Sheet1");
95+
sheet1.setVeryHidden(true);
96+
ReadSheet sheet2 = new ReadSheet(1, "Sheet1");
97+
sheet2.setVeryHidden(false);
98+
Assertions.assertNotEquals(sheet1, sheet2);
99+
}
100+
101+
@Test
102+
void testHashCode_Consistency() {
103+
ReadSheet sheet = new ReadSheet(1, "Sheet1");
104+
int initialHashCode = sheet.hashCode();
105+
Assertions.assertEquals(initialHashCode, sheet.hashCode());
106+
}
107+
108+
@Test
109+
void testHashCode_EqualityForEqualObjects() {
110+
ReadSheet sheet1 = new ReadSheet(1, "Sheet1");
111+
sheet1.setNumRows(100);
112+
sheet1.setHidden(false);
113+
sheet1.setVeryHidden(true);
114+
115+
ReadSheet sheet2 = new ReadSheet(1, "Sheet1");
116+
sheet2.setNumRows(100);
117+
sheet2.setHidden(false);
118+
sheet2.setVeryHidden(true);
119+
120+
Assertions.assertEquals(sheet1.hashCode(), sheet2.hashCode());
121+
}
122+
}

fastexcel/src/main/java/cn/idev/excel/read/metadata/ReadSheet.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package cn.idev.excel.read.metadata;
22

3+
import lombok.EqualsAndHashCode;
4+
35
/**
46
* Read sheet
57
*
68
*/
9+
@EqualsAndHashCode
710
public class ReadSheet extends ReadBasicParameter {
811
/**
912
* Starting from 0

0 commit comments

Comments
 (0)