1
1
package com.baeldung.duration
2
2
3
3
import org.junit.jupiter.api.Test
4
+ import java.time.LocalDateTime
4
5
import kotlin.test.assertEquals
5
6
import kotlin.test.assertFalse
6
7
import kotlin.test.assertTrue
7
- import kotlin.time.Duration
8
- import kotlin.time.Duration.Companion.days
8
+ import kotlin.time.*
9
9
import kotlin.time.Duration.Companion.hours
10
- import kotlin.time.Duration.Companion.microseconds
11
10
import kotlin.time.Duration.Companion.milliseconds
12
11
import kotlin.time.Duration.Companion.minutes
13
- import kotlin.time.Duration.Companion.nanoseconds
14
12
import kotlin.time.Duration.Companion.seconds
15
- import kotlin.time.DurationUnit
16
- import kotlin.time.toDuration
17
- import kotlin.time.toJavaDuration
18
13
import java.time.Duration as JavaDuration
14
+ import kotlinx.coroutines.delay
15
+ import kotlinx.coroutines.runBlocking
16
+ import kotlin.time.Duration
17
+ import kotlin.time.ExperimentalTime
19
18
20
19
class DurationUnitTest {
21
20
@Test
@@ -102,4 +101,22 @@ class DurationUnitTest {
102
101
assertEquals(" 1:10" , asStr)
103
102
}
104
103
105
- }
104
+ @Test
105
+ fun `given a two datetime, calculate the duration between them` () {
106
+ val datetime1 = LocalDateTime .now()
107
+ val datetime2 = datetime1.minusDays(1 ).minusHours(1 )
108
+ val duration = java.time.Duration .between(datetime2, datetime1).toKotlinDuration()
109
+ val expectedDuration = 25 .hours
110
+ assertEquals(expectedDuration, duration)
111
+ }
112
+
113
+ @OptIn(ExperimentalTime ::class )
114
+ @Test
115
+ fun `use duration api to measure execution time` () {
116
+ val operationDuration = kotlin.time.measureTime {
117
+ Thread .sleep(510 )
118
+ }
119
+ assertTrue(operationDuration > 500 .milliseconds)
120
+ }
121
+
122
+ }
0 commit comments