-
-
Notifications
You must be signed in to change notification settings - Fork 383
/
IfBlockTest.java
64 lines (52 loc) · 2.66 KB
/
IfBlockTest.java
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
/*
* Handlebars.java: https://github.com/jknack/handlebars.java
* Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0
* Copyright (c) 2012 Edgar Espina
*/
package com.github.jknack.handlebars;
import static java.util.Arrays.asList;
import java.io.IOException;
import java.util.Collections;
import org.junit.jupiter.api.Test;
public class IfBlockTest extends AbstractTest {
@Test
public void truthy() throws IOException {
// string
shouldCompileTo("{{#if value}}true{{else}}false{{/if}}", $("value", "x"), "true");
shouldCompileTo("{{#value}}true{{^}}false{{/value}}", $("value", "x"), "true");
shouldCompileTo("{{^value}}false{{/value}}", $("value", "x"), "");
// object value
shouldCompileTo("{{#if value}}true{{else}}false{{/if}}", $("value", $), "true");
shouldCompileTo("{{#value}}true{{^}}false{{/value}}", $("value", $), "true");
shouldCompileTo("{{^value}}false{{/value}}", $("value", $), "");
// true
shouldCompileTo("{{#if value}}true{{else}}false{{/if}}", $("value", true), "true");
shouldCompileTo("{{#value}}true{{^}}false{{/value}}", $("value", true), "true");
shouldCompileTo("{{^value}}false{{/value}}", $("value", true), "");
// empty list
shouldCompileTo("{{#if value}}true{{else}}false{{/if}}", $("value", asList("0")), "true");
shouldCompileTo("{{#value}}true{{^}}false{{/value}}", $("value", asList("0")), "true");
shouldCompileTo("{{^value}}false{{/value}}", $("value", asList(0)), "");
}
@Test
public void falsy() throws IOException {
// empty string
shouldCompileTo("{{#if value}}true{{else}}false{{/if}}", $("value", ""), "false");
shouldCompileTo("{{#value}}true{{^}}false{{/value}}", $("value", ""), "false");
shouldCompileTo("{{^value}}false{{/value}}", $("value", ""), "false");
// null value
shouldCompileTo("{{#if value}}true{{else}}false{{/if}}", $("value", null), "false");
shouldCompileTo("{{#value}}true{{^}}false{{/value}}", $("value", null), "false");
shouldCompileTo("{{^value}}false{{/value}}", $("value", null), "false");
// false
shouldCompileTo("{{#if value}}true{{else}}false{{/if}}", $("value", false), "false");
shouldCompileTo("{{#value}}true{{^}}false{{/value}}", $("value", false), "false");
shouldCompileTo("{{^value}}false{{/value}}", $("value", false), "false");
// empty list
shouldCompileTo(
"{{#if value}}true{{else}}false{{/if}}", $("value", Collections.emptyList()), "false");
shouldCompileTo(
"{{#value}}true{{^}}false{{/value}}", $("value", Collections.emptyList()), "false");
shouldCompileTo("{{^value}}false{{/value}}", $("value", Collections.emptyList()), "false");
}
}