Skip to content

Commit 55608cb

Browse files
committed
Update EqualsBuilderReflectJreImplementationTest for Temporal
1 parent 9d6a4be commit 55608cb

File tree

1 file changed

+66
-9
lines changed

1 file changed

+66
-9
lines changed

src/test/java/org/apache/commons/lang3/builder/EqualsBuilderReflectJreImplementationTest.java

Lines changed: 66 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222

2323
import java.time.Duration;
2424
import java.time.Instant;
25+
import java.time.temporal.Temporal;
2526
import java.time.temporal.TemporalAccessor;
2627
import java.time.temporal.TemporalField;
28+
import java.time.temporal.TemporalUnit;
2729
import java.util.Arrays;
2830

2931
import org.apache.commons.lang3.AbstractLangTest;
@@ -73,18 +75,71 @@ public String toString() {
7375

7476
static class MyClass {
7577

76-
private final MyTemporalAccessor time;
77-
private final MyCharSequence string;
78+
private final MyCharSequence charSequence;
79+
private final MyTemporal temporal;
80+
private final MyTemporalAccessor temporalAccessor;
7881

79-
MyClass(final MyTemporalAccessor time, final MyCharSequence string) {
80-
this.time = time;
82+
MyClass(final MyTemporal temporal, final MyTemporalAccessor temporalAccessor, final MyCharSequence charSequence) {
83+
this.charSequence = charSequence;
84+
this.temporal = temporal;
85+
this.temporalAccessor = temporalAccessor;
86+
}
87+
88+
@Override
89+
public String toString() {
90+
return String.format("%s[%s - %s - %s]", getClass().getSimpleName(), charSequence, temporal, temporalAccessor);
91+
}
92+
}
93+
94+
static class MyTemporal implements Temporal {
95+
96+
private final String string;
97+
private final long value;
98+
private final Instant instant;
99+
private final Duration duration;
100+
101+
MyTemporal(final String string) {
81102
this.string = string;
103+
this.value = Long.parseLong(string);
104+
this.instant = Instant.ofEpochMilli(value);
105+
this.duration = Duration.between(instant, instant.plusMillis(value));
106+
}
107+
108+
@Override
109+
public long getLong(final TemporalField field) {
110+
return 0;
111+
}
112+
113+
@Override
114+
public boolean isSupported(final TemporalField field) {
115+
return false;
116+
}
117+
118+
@Override
119+
public boolean isSupported(final TemporalUnit unit) {
120+
return false;
121+
}
122+
123+
@Override
124+
public Temporal plus(final long amountToAdd, final TemporalUnit unit) {
125+
return null;
82126
}
83127

84128
@Override
85129
public String toString() {
86-
return String.format("%s[%s - %s]", getClass().getSimpleName(), string, time);
130+
return String.format("%s[%s - %s - %s]", getClass().getSimpleName(), string, instant, duration);
131+
}
132+
133+
@Override
134+
public long until(final Temporal endExclusive, final TemporalUnit unit) {
135+
return 0;
87136
}
137+
138+
@Override
139+
public Temporal with(final TemporalField field, final long newValue) {
140+
return null;
141+
}
142+
88143
}
89144

90145
static class MyTemporalAccessor implements TemporalAccessor {
@@ -120,11 +175,13 @@ public String toString() {
120175

121176
@Test
122177
public void testRecursive() {
123-
final MyClass o1 = new MyClass(new MyTemporalAccessor("1"), new MyCharSequence("2"));
178+
final MyClass o1 = new MyClass(new MyTemporal("1"), new MyTemporalAccessor("2"), new MyCharSequence("3"));
124179
// This gives you different instances of MyTemporalAccessor for 1 (and 2) that should be equals by reflection.
125-
final MyClass o1Bis = new MyClass(new MyTemporalAccessor("1"), new MyCharSequence("2"));
126-
final MyClass o2 = new MyClass(new MyTemporalAccessor("3"), new MyCharSequence("4"));
127-
final MyClass o2Bis = new MyClass(new MyTemporalAccessor("3"), new MyCharSequence("4"));
180+
final MyClass o1Bis = new MyClass(new MyTemporal("1"), new MyTemporalAccessor("2"), new MyCharSequence("3"));
181+
final MyClass o2 = new MyClass(new MyTemporal("4"), new MyTemporalAccessor("5"), new MyCharSequence("6"));
182+
final MyClass o2Bis = new MyClass(new MyTemporal("4"), new MyTemporalAccessor("5"), new MyCharSequence("6"));
183+
// MyTemporal
184+
assertTrue(new EqualsBuilder().setTestRecursive(true).append(new MyTemporal("1"), new MyTemporal("1")).isEquals());
128185
// MyTemporalAccessor
129186
assertTrue(new EqualsBuilder().setTestRecursive(true).append(new MyTemporalAccessor("1"), new MyTemporalAccessor("1")).isEquals());
130187
// MyCharSequence

0 commit comments

Comments
 (0)