Skip to content

Commit 9a8228d

Browse files
sciencesakuraVanRoy
authored andcommitted
Improve areEqual to support JSR-310 types
1 parent 2645282 commit 9a8228d

File tree

2 files changed

+28
-11
lines changed

2 files changed

+28
-11
lines changed

src/main/java/org/assertj/db/util/Values.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
import java.sql.Time;
2222
import java.sql.Timestamp;
2323
import java.text.ParseException;
24+
import java.time.LocalDate;
25+
import java.time.LocalDateTime;
26+
import java.time.LocalTime;
2427
import java.util.UUID;
2528

2629
/**
@@ -86,6 +89,8 @@ else if (valueType == ValueType.DATE) {
8689
return areEqual(value, (String) expected);
8790
} else if (expected instanceof Date) {
8891
return areEqual(value, DateValue.from((Date) expected));
92+
} else if (expected instanceof LocalDate) {
93+
return areEqual(value, DateValue.from((LocalDate) expected));
8994
}
9095
}
9196
else if (valueType == ValueType.TIME) {
@@ -95,6 +100,8 @@ else if (valueType == ValueType.TIME) {
95100
return areEqual(value, (String) expected);
96101
} else if (expected instanceof Time) {
97102
return areEqual(value, TimeValue.from((Time) expected));
103+
} else if (expected instanceof LocalTime) {
104+
return areEqual(value, TimeValue.from((LocalTime) expected));
98105
}
99106
}
100107
else if (valueType == ValueType.DATE_TIME) {
@@ -106,6 +113,8 @@ else if (valueType == ValueType.DATE_TIME) {
106113
return areEqual(value, (String) expected);
107114
} else if (expected instanceof Timestamp) {
108115
return areEqual(value, DateTimeValue.from((Timestamp) expected));
116+
} else if (expected instanceof LocalDateTime) {
117+
return areEqual(value, DateTimeValue.from((LocalDateTime) expected));
109118
}
110119
}
111120
else {

src/test/java/org/assertj/db/util/Values_AreEqual_Value_And_Object_Test.java

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
import java.sql.Date;
2525
import java.sql.Time;
2626
import java.sql.Timestamp;
27+
import java.time.LocalDate;
28+
import java.time.LocalDateTime;
29+
import java.time.LocalTime;
2730
import java.util.UUID;
2831
import java.util.concurrent.atomic.AtomicLong;
2932

@@ -254,6 +257,8 @@ public void test_are_equal_for_dates() throws Exception {
254257
assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00")).isTrue();
255258
assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00:00")).isTrue();
256259
assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00:00.000000000")).isTrue();
260+
assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), Date.valueOf("2007-12-23"))).isTrue();
261+
assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), LocalDate.of(2007, 12, 23))).isTrue();
257262
}
258263

259264
/**
@@ -287,25 +292,28 @@ public void test_are_equal_for_times() throws Exception {
287292
assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) null)).isFalse();
288293
assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "09:01:06")).isTrue();
289294
assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "09:01:06.000000000")).isTrue();
295+
assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), Time.valueOf("09:01:06"))).isTrue();
296+
assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), LocalTime.of(9, 1, 6))).isTrue();
290297
}
291298

292299
/**
293300
* This method tests the {@code areEqual} method for {@code TimeValue}s.
294301
*/
295302
@Test
296303
public void test_are_equal_for_timestamps() throws Exception {
297-
assertThat(
298-
Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")),
299-
(Object) DateTimeValue.of(DateValue.of(2007, 12, 23), TimeValue.of(9, 1, 6, 3)))).isTrue();
300-
assertThat(
301-
Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")),
302-
(Object) DateTimeValue.of(DateValue.of(2007, 12, 23), TimeValue.of(9, 1, 5, 3)))).isFalse();
303-
assertThat(Values.areEqual(getValue(null, ""), (Object) DateTimeValue.of(DateValue.of(2007, 12, 23), TimeValue.of(9, 1, 6, 3))))
304-
.isFalse();
304+
assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")),
305+
(Object) DateTimeValue.of(DateValue.of(2007, 12, 23), TimeValue.of(9, 1, 6, 3)))).isTrue();
306+
assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")),
307+
(Object) DateTimeValue.of(DateValue.of(2007, 12, 23), TimeValue.of(9, 1, 5, 3)))).isFalse();
308+
assertThat(Values.areEqual(getValue(null, ""), (Object) DateTimeValue.of(DateValue.of(2007, 12, 23),
309+
TimeValue.of(9, 1, 6, 3)))).isFalse();
305310
assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) null)).isFalse();
306-
assertThat(
307-
Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")),
308-
(Object) "2007-12-23T09:01:06.000000003")).isTrue();
311+
assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")),
312+
(Object) "2007-12-23T09:01:06.000000003")).isTrue();
313+
assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")),
314+
Timestamp.valueOf("2007-12-23 09:01:06.000000003"))).isTrue();
315+
assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")),
316+
LocalDateTime.of(2007, 12, 23, 9, 1, 6, 3))).isTrue();
309317
}
310318

311319
/**

0 commit comments

Comments
 (0)