1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml.resolver;
17
18 import junit.framework.TestCase;
19
20 public class RagelMachineTest extends TestCase {
21 private RagelMachine machine = new RagelMachine();
22
23 public void testScan() {
24 assertNull(machine.scan("abc"));
25 }
26
27 public void testNullPointerException() {
28 try {
29 machine.scan(null);
30 fail("null must not be accepted.");
31 } catch (NullPointerException e) {
32 assertEquals("Scalar must be provided.", e.getMessage());
33 }
34 }
35
36 public void testScanBoolean() {
37 assertEquals("tag:yaml.org,2002:bool", machine.scan("true"));
38 assertEquals("tag:yaml.org,2002:bool", machine.scan("True"));
39 assertEquals("tag:yaml.org,2002:bool", machine.scan("TRUE"));
40 assertEquals("tag:yaml.org,2002:bool", machine.scan("false"));
41 assertEquals("tag:yaml.org,2002:bool", machine.scan("False"));
42 assertEquals("tag:yaml.org,2002:bool", machine.scan("FALSE"));
43 assertEquals("tag:yaml.org,2002:bool", machine.scan("on"));
44 assertEquals("tag:yaml.org,2002:bool", machine.scan("ON"));
45 assertEquals("tag:yaml.org,2002:bool", machine.scan("On"));
46 assertEquals("tag:yaml.org,2002:bool", machine.scan("off"));
47 assertEquals("tag:yaml.org,2002:bool", machine.scan("Off"));
48 assertEquals("tag:yaml.org,2002:bool", machine.scan("OFF"));
49 assertEquals("tag:yaml.org,2002:bool", machine.scan("on"));
50 assertEquals("tag:yaml.org,2002:bool", machine.scan("ON"));
51 assertEquals("tag:yaml.org,2002:bool", machine.scan("On"));
52 assertEquals("tag:yaml.org,2002:bool", machine.scan("off"));
53 assertEquals("tag:yaml.org,2002:bool", machine.scan("Off"));
54 assertEquals("tag:yaml.org,2002:bool", machine.scan("OFF"));
55 }
56
57 public void testScanNull() {
58 assertEquals("tag:yaml.org,2002:null", machine.scan("null"));
59 assertEquals("tag:yaml.org,2002:null", machine.scan("Null"));
60 assertEquals("tag:yaml.org,2002:null", machine.scan("NULL"));
61 assertEquals("tag:yaml.org,2002:null", machine.scan("~"));
62 assertEquals("tag:yaml.org,2002:null", machine.scan(" "));
63 assertEquals("tag:yaml.org,2002:null", machine.scan(""));
64 }
65
66 public void testScanMerge() {
67 assertEquals("tag:yaml.org,2002:merge", machine.scan("<<"));
68 }
69
70 public void testScanValue() {
71 assertEquals("tag:yaml.org,2002:value", machine.scan("="));
72 }
73
74 public void testScanInt() {
75 assertEquals("tag:yaml.org,2002:int", machine.scan("0"));
76 assertEquals("tag:yaml.org,2002:int", machine.scan("1"));
77 assertEquals("tag:yaml.org,2002:int", machine.scan("-0"));
78 assertEquals("tag:yaml.org,2002:int", machine.scan("-9"));
79 assertEquals("tag:yaml.org,2002:int", machine.scan("0b0011"));
80 assertEquals("tag:yaml.org,2002:int", machine.scan("0x12ef"));
81 assertEquals("tag:yaml.org,2002:int", machine.scan("0123"));
82 assertEquals("tag:yaml.org,2002:int", machine.scan("1_000"));
83 assertEquals("tag:yaml.org,2002:int", machine.scan("1_000_000"));
84 assertEquals("tag:yaml.org,2002:int", machine.scan("+0"));
85 assertEquals("tag:yaml.org,2002:int", machine.scan("+10"));
86 assertEquals("tag:yaml.org,2002:int", machine.scan("1__000"));
87 assertEquals("tag:yaml.org,2002:int", machine.scan("24:12:34"));
88 assertEquals("tag:yaml.org,2002:int", machine.scan("240:12:34"));
89 }
90
91 public void testScanFloat() {
92 assertEquals("tag:yaml.org,2002:float", machine.scan("1.0"));
93 assertEquals("tag:yaml.org,2002:float", machine.scan("-0.0"));
94 assertEquals("tag:yaml.org,2002:float", machine.scan("+2.2310"));
95 assertEquals("tag:yaml.org,2002:float", machine.scan("1.0e+12"));
96 assertEquals("tag:yaml.org,2002:float", machine.scan("1.345e-3"));
97 assertEquals("tag:yaml.org,2002:float", machine.scan("190:20:30.15"));
98 assertEquals("tag:yaml.org,2002:float", machine.scan("-.inf"));
99 assertEquals("tag:yaml.org,2002:float", machine.scan("+.INF"));
100 assertEquals("tag:yaml.org,2002:float", machine.scan(".Inf"));
101 assertEquals("tag:yaml.org,2002:float", machine.scan(".nan"));
102 assertEquals("tag:yaml.org,2002:float", machine.scan(".NaN"));
103 assertEquals("tag:yaml.org,2002:float", machine.scan(".NAN"));
104 assertEquals("tag:yaml.org,2002:float", machine.scan("1_000.5"));
105 assertEquals("tag:yaml.org,2002:float", machine.scan("1.023_456"));
106 assertEquals("tag:yaml.org,2002:float", machine.scan("-1_123.45"));
107 assertEquals("tag:yaml.org,2002:float", machine.scan(".5"));
108 assertEquals("tag:yaml.org,2002:float", machine.scan("1.E+1"));
109 assertNull(machine.scan("0x1,1"), machine.scan("0x1,1"));
110 }
111
112 public void testScanTimestamp() {
113 assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2009-02-28"));
114 assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2001-12-15T02:59:43.1Z"));
115 assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2001-12-14t21:59:43.10-05:00"));
116 assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2001-12-14 21:59:43.10 -5"));
117 assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2001-12-15 2:59:43.10"));
118 }
119 }