This repository was archived by the owner on Mar 3, 2026. It is now read-only.
forked from jooby-project/jooby
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDeferredTest.java
More file actions
104 lines (92 loc) · 2.65 KB
/
DeferredTest.java
File metadata and controls
104 lines (92 loc) · 2.65 KB
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package org.jooby;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.concurrent.CountDownLatch;
import org.jooby.test.MockUnit;
import org.junit.Test;
public class DeferredTest {
@Test
public void newWithNoInit() throws Exception {
new Deferred().handler(null, (r, ex) -> {
});
}
@Test
public void newWithInit0() throws Exception {
CountDownLatch latch = new CountDownLatch(1);
new Deferred(deferred -> {
assertNotNull(deferred);
latch.countDown();
}).handler(null, (r, ex) -> {
});
latch.await();
}
@Test
public void newWithInit() throws Exception {
new MockUnit(Request.class)
.run(unit -> {
CountDownLatch latch = new CountDownLatch(1);
new Deferred((req, deferred) -> {
assertNotNull(deferred);
assertEquals(unit.get(Request.class), req);
latch.countDown();
}).handler(unit.get(Request.class), (r, ex) -> {
});
latch.await();
});
}
@Test
public void resolve() throws Exception {
Object value = new Object();
CountDownLatch latch = new CountDownLatch(1);
Deferred deferred = new Deferred();
deferred.handler(null, (result, ex) -> {
assertFalse(result instanceof Deferred);
assertEquals(value, result.ifGet().get());
assertNull(ex);
latch.countDown();
});
deferred.resolve(value);
latch.await();
}
@Test
public void setResolve() throws Exception {
Object value = new Object();
CountDownLatch latch = new CountDownLatch(1);
Deferred deferred = new Deferred();
deferred.handler(null, (result, ex) -> {
assertFalse(result instanceof Deferred);
assertEquals(value, result.ifGet().get());
latch.countDown();
});
deferred.set(value);
latch.await();
}
@Test
public void reject() throws Exception {
Exception cause = new Exception();
CountDownLatch latch = new CountDownLatch(1);
Deferred deferred = new Deferred();
deferred.handler(null, (result, ex) -> {
assertEquals(cause, ex);
assertNull(result);
latch.countDown();
});
deferred.reject(cause);
latch.await();
}
@Test
public void setReject() throws Exception {
Exception cause = new Exception();
CountDownLatch latch = new CountDownLatch(1);
Deferred deferred = new Deferred();
deferred.handler(null, (result, ex) -> {
assertEquals(cause, ex);
assertNull(result);
latch.countDown();
});
deferred.set(cause);
latch.await();
}
}