1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.core5.util;
29
30 import java.text.ParseException;
31
32 import org.junit.jupiter.api.Assertions;
33 import org.junit.jupiter.api.Test;
34
35
36
37
38 public class TestDeadline {
39
40 @Test
41 public void testFormat() throws ParseException {
42 final Deadline deadline = Deadline.fromUnixMilliseconds(1000);
43 final Deadline deadline2 = Deadline.parse(deadline.toString());
44 Assertions.assertEquals(1000, deadline2.getValue());
45 }
46
47 @Test
48 public void testIsBefore() {
49 final long nowPlusOneMin = System.currentTimeMillis() + 60000;
50 final Deadline deadline = Deadline.fromUnixMilliseconds(nowPlusOneMin);
51 Assertions.assertTrue(deadline.isBefore(nowPlusOneMin + 1));
52 }
53
54 @Test
55 public void testIsExpired() {
56 Assertions.assertTrue(Deadline.fromUnixMilliseconds(0).isExpired());
57 Assertions.assertTrue(Deadline.fromUnixMilliseconds(1).isExpired());
58 Assertions.assertFalse(Deadline.MAX_VALUE.isExpired());
59 Assertions.assertTrue(Deadline.MIN_VALUE.isExpired());
60 }
61
62 @Test
63 public void testIsMax() {
64 Assertions.assertFalse(Deadline.fromUnixMilliseconds(0).isMax());
65 Assertions.assertFalse(Deadline.fromUnixMilliseconds(1000).isMax());
66 Assertions.assertFalse(Deadline.MIN_VALUE.isMax());
67 Assertions.assertTrue(Deadline.MAX_VALUE.isMax());
68 }
69
70 @Test
71 public void testIsMin() {
72 Assertions.assertTrue(Deadline.fromUnixMilliseconds(0).isMin());
73 Assertions.assertFalse(Deadline.fromUnixMilliseconds(1000).isMin());
74 Assertions.assertFalse(Deadline.MAX_VALUE.isMin());
75 Assertions.assertTrue(Deadline.MIN_VALUE.isMin());
76 }
77
78 @Test
79 public void testIsNotExpired() {
80 Assertions.assertFalse(Deadline.fromUnixMilliseconds(0).isNotExpired());
81 Assertions.assertFalse(Deadline.fromUnixMilliseconds(1).isNotExpired());
82 Assertions.assertTrue(Deadline.MAX_VALUE.isNotExpired());
83 Assertions.assertFalse(Deadline.MIN_VALUE.isNotExpired());
84 }
85
86 @Test
87 public void testMin() {
88 Assertions.assertEquals(Deadline.MIN_VALUE, Deadline.MIN_VALUE.min(Deadline.MAX_VALUE));
89 Assertions.assertEquals(Deadline.MIN_VALUE, Deadline.MAX_VALUE.min(Deadline.MIN_VALUE));
90
91 final Deadline deadline0 = Deadline.fromUnixMilliseconds(0);
92 Assertions.assertEquals(Deadline.MIN_VALUE, deadline0.min(Deadline.MIN_VALUE));
93 Assertions.assertEquals(deadline0, deadline0.min(Deadline.MAX_VALUE));
94
95 final Deadline deadline1 = Deadline.fromUnixMilliseconds(0);
96 Assertions.assertEquals(Deadline.MIN_VALUE, deadline1.min(Deadline.MIN_VALUE));
97 Assertions.assertEquals(deadline0, deadline1.min(Deadline.MAX_VALUE));
98 }
99
100 @Test
101 public void testParse() throws ParseException {
102 final Deadline deadline = Deadline.parse("1969-12-31T17:00:01.000-0700");
103 Assertions.assertEquals(1000, deadline.getValue());
104 }
105
106 @Test
107 public void testRemaining() {
108 final int oneHourInMillis = 60_000 * 60;
109 final long nowPlusOneHour = System.currentTimeMillis() + oneHourInMillis;
110 final Deadline deadline = Deadline.fromUnixMilliseconds(nowPlusOneHour);
111 Assertions.assertEquals(nowPlusOneHour, deadline.getValue());
112 Assertions.assertTrue(deadline.remaining() > 0);
113 Assertions.assertTrue(deadline.remaining() <= oneHourInMillis);
114 }
115
116 @Test
117 public void testRemainingTimeValue() {
118 final int oneHourInMillis = 60_000 * 60;
119 final long nowPlusOneHour = System.currentTimeMillis() + oneHourInMillis;
120 final Deadline deadline = Deadline.fromUnixMilliseconds(nowPlusOneHour);
121 Assertions.assertEquals(nowPlusOneHour, deadline.getValue());
122 Assertions.assertTrue(deadline.remainingTimeValue().toNanoseconds() > 0);
123 Assertions.assertTrue(deadline.remainingTimeValue().toMicroseconds() > 0);
124 Assertions.assertTrue(deadline.remainingTimeValue().toMilliseconds() > 0);
125 }
126
127 @Test
128 public void testValue() {
129 final long nowPlusOneMin = System.currentTimeMillis() + 60000;
130 final Deadline deadline = Deadline.fromUnixMilliseconds(nowPlusOneMin);
131 Assertions.assertEquals(nowPlusOneMin, deadline.getValue());
132 }
133 }