1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.io.input;
19
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21 import static org.junit.jupiter.api.Assertions.assertNotNull;
22 import static org.junit.jupiter.api.Assertions.assertNull;
23 import static org.junit.jupiter.api.Assertions.assertTrue;
24
25 import java.io.ByteArrayInputStream;
26 import java.io.IOException;
27 import java.time.Duration;
28 import java.time.Instant;
29
30 import org.apache.commons.io.IOUtils;
31 import org.apache.commons.io.ThreadUtils;
32 import org.junit.jupiter.api.Test;
33
34
35
36
37 public class TimestampedObserverTest {
38
39 @Test
40 public void test() throws IOException, InterruptedException {
41 final Instant before = Instant.now();
42
43 ThreadUtils.sleep(Duration.ofMillis(20));
44 final TimestampedObserver timestampedObserver = new TimestampedObserver();
45 assertFalse(timestampedObserver.isClosed());
46
47 ThreadUtils.sleep(Duration.ofMillis(20));
48
49 assertNotNull(timestampedObserver.toString());
50 assertTrue(timestampedObserver.getOpenInstant().isAfter(before));
51 assertTrue(timestampedObserver.getOpenToNowDuration().toNanos() > 0);
52 assertNull(timestampedObserver.getCloseInstant());
53 assertFalse(timestampedObserver.isClosed());
54 final byte[] buffer = MessageDigestInputStreamTest.generateRandomByteStream(IOUtils.DEFAULT_BUFFER_SIZE);
55 try (ObservableInputStream ois = new ObservableInputStream(new ByteArrayInputStream(buffer), timestampedObserver)) {
56 assertTrue(timestampedObserver.getOpenInstant().isAfter(before));
57 assertTrue(timestampedObserver.getOpenToNowDuration().toNanos() > 0);
58 assertFalse(timestampedObserver.isClosed());
59 }
60 assertTrue(timestampedObserver.isClosed());
61 assertTrue(timestampedObserver.getOpenInstant().isAfter(before));
62 assertTrue(timestampedObserver.getOpenToNowDuration().toNanos() > 0);
63 assertTrue(timestampedObserver.getCloseInstant().isAfter(timestampedObserver.getOpenInstant()));
64 assertTrue(timestampedObserver.getOpenToCloseDuration().toNanos() > 0);
65 assertNotNull(timestampedObserver.toString());
66 }
67
68 @Test
69 public void testExample() throws IOException {
70 final TimestampedObserver timestampedObserver = new TimestampedObserver();
71 final byte[] buffer = MessageDigestInputStreamTest
72 .generateRandomByteStream(IOUtils.DEFAULT_BUFFER_SIZE);
73 try (ObservableInputStream ois = new ObservableInputStream(new ByteArrayInputStream(buffer),
74 timestampedObserver)) {
75
76 }
77
78
79 }
80
81 }