5
5
package kotlinx.datetime.test
6
6
7
7
import kotlinx.datetime.*
8
+ import org.junit.experimental.theories.suppliers.TestedOn
8
9
import kotlin.random.Random
9
10
import kotlin.test.*
10
11
import java.time.Instant as JTInstant
@@ -26,7 +27,7 @@ class ConvertersTest {
26
27
assertEquals(ktInstant, jtInstant.toKotlinInstant())
27
28
assertEquals(jtInstant, ktInstant.toJavaInstant())
28
29
29
- assertEquals(ktInstant, jtInstant.toString().toInstant( ))
30
+ assertEquals(ktInstant, jtInstant.toString().let ( Instant ::parse ))
30
31
assertEquals(jtInstant, ktInstant.toString().let (JTInstant ::parse))
31
32
}
32
33
@@ -37,10 +38,11 @@ class ConvertersTest {
37
38
}
38
39
}
39
40
41
+ @OptIn(ExperimentalStdlibApi ::class )
40
42
private fun randomDate (): LocalDate {
41
43
val year = Random .nextInt(- 20000 , 20000 )
42
44
val month = Month .entries.random()
43
- val day = (1 .. java.time.YearMonth .of(year, month).lengthOfMonth()).random()
45
+ val day = (1 .. java.time.YearMonth .of(year, month.toJavaMonth() ).lengthOfMonth()).random()
44
46
return LocalDate (year, month.number, day)
45
47
}
46
48
@@ -61,12 +63,14 @@ class ConvertersTest {
61
63
@Test
62
64
fun localDateTime () {
63
65
fun test (ktDateTime : LocalDateTime ) {
64
- val jtDateTime = with (ktDateTime) { JTLocalDateTime .of(year, month, dayOfMonth, hour, minute, second, nanosecond) }
66
+ val jtDateTime = with (ktDateTime) {
67
+ JTLocalDateTime .of(year, month.toJavaMonth(), dayOfMonth, hour, minute, second, nanosecond)
68
+ }
65
69
66
70
assertEquals(ktDateTime, jtDateTime.toKotlinLocalDateTime())
67
71
assertEquals(jtDateTime, ktDateTime.toJavaLocalDateTime())
68
72
69
- assertEquals(ktDateTime, jtDateTime.toString().toLocalDateTime( ))
73
+ assertEquals(ktDateTime, jtDateTime.toString().let ( LocalDateTime ::parse ))
70
74
assertEquals(jtDateTime, ktDateTime.toString().let (JTLocalDateTime ::parse))
71
75
}
72
76
@@ -83,7 +87,7 @@ class ConvertersTest {
83
87
assertEquals(ktTime, jtTime.toKotlinLocalTime())
84
88
assertEquals(jtTime, ktTime.toJavaLocalTime())
85
89
86
- assertEquals(ktTime, jtTime.toString().toLocalTime( ))
90
+ assertEquals(ktTime, jtTime.toString().let ( LocalTime ::parse ))
87
91
assertEquals(jtTime, ktTime.toString().let (JTLocalTime ::parse))
88
92
}
89
93
@@ -95,12 +99,12 @@ class ConvertersTest {
95
99
@Test
96
100
fun localDate () {
97
101
fun test (ktDate : LocalDate ) {
98
- val jtDate = with (ktDate) { JTLocalDate .of(year, month, dayOfMonth) }
102
+ val jtDate = with (ktDate) { JTLocalDate .of(year, month.toJavaMonth() , dayOfMonth) }
99
103
100
104
assertEquals(ktDate, jtDate.toKotlinLocalDate())
101
105
assertEquals(jtDate, ktDate.toJavaLocalDate())
102
106
103
- assertEquals(ktDate, jtDate.toString().toLocalDate( ))
107
+ assertEquals(ktDate, jtDate.toString().let ( LocalDate ::parse ))
104
108
assertEquals(jtDate, ktDate.toString().let (JTLocalDate ::parse))
105
109
}
106
110
@@ -187,4 +191,24 @@ class ConvertersTest {
187
191
test(" +08" )
188
192
test(" -103030" )
189
193
}
194
+
195
+ @Test
196
+ fun month () {
197
+ fun test (month : Month ) {
198
+ val jtMonth = month.toJavaMonth()
199
+ assertEquals(month, jtMonth.toKotlinMonth())
200
+ }
201
+ Month .entries.forEach(::test)
202
+ assertEquals(Month .JANUARY , java.time.Month .JANUARY .toKotlinMonth())
203
+ }
204
+
205
+ @Test
206
+ fun dayOfWeek () {
207
+ fun test (dayOfWeek : DayOfWeek ) {
208
+ val jtDayOfWeek = dayOfWeek.toJavaDayOfWeek()
209
+ assertEquals(dayOfWeek, jtDayOfWeek.toKotlinDayOfWeek())
210
+ }
211
+ DayOfWeek .entries.forEach(::test)
212
+ assertEquals(DayOfWeek .MONDAY , java.time.DayOfWeek .MONDAY .toKotlinDayOfWeek())
213
+ }
190
214
}
0 commit comments