forked from jooby-project/jooby
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJsResponseTest.java
More file actions
75 lines (61 loc) · 2.28 KB
/
JsResponseTest.java
File metadata and controls
75 lines (61 loc) · 2.28 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
package org.jooby.js;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
import java.util.Collections;
import java.util.Optional;
import org.jooby.Response;
import org.jooby.Result;
import org.jooby.internal.js.JsResponse;
import org.jooby.test.MockUnit;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import com.google.common.collect.ImmutableMap;
import jdk.nashorn.api.scripting.ScriptObjectMirror;
@RunWith(PowerMockRunner.class)
@PrepareForTest({JsResponse.class, ScriptObjectMirror.class, ImmutableMap.class })
public class JsResponseTest {
@Test
public void sendjsObject() throws Exception {
ImmutableMap<String, Object> value = ImmutableMap.of();
new MockUnit(Response.class, ScriptObjectMirror.class)
.expect(unit -> {
Response rsp = unit.get(Response.class);
expect(rsp.status()).andReturn(Optional.empty());
expect(rsp.type()).andReturn(Optional.empty());
rsp.send(isA(Result.class));
})
.expect(unit -> {
ScriptObjectMirror mirror = unit.get(ScriptObjectMirror.class);
expect(mirror.isArray()).andReturn(false);
unit.mockStatic(ImmutableMap.class);
expect(ImmutableMap.copyOf(mirror)).andReturn(value);
})
.run(unit -> {
new JsResponse(unit.get(Response.class))
.sendjs(unit.get(ScriptObjectMirror.class));
;
});
}
@Test
public void sendjsArray() throws Exception {
new MockUnit(Response.class, ScriptObjectMirror.class)
.expect(unit -> {
Response rsp = unit.get(Response.class);
expect(rsp.status()).andReturn(Optional.empty());
expect(rsp.type()).andReturn(Optional.empty());
rsp.send(isA(Result.class));
})
.expect(unit -> {
ScriptObjectMirror mirror = unit.get(ScriptObjectMirror.class);
expect(mirror.isArray()).andReturn(true);
expect(mirror.entrySet()).andReturn(Collections.emptySet());
})
.run(unit -> {
new JsResponse(unit.get(Response.class))
.sendjs(unit.get(ScriptObjectMirror.class));
;
});
}
}