| /** |
| * Copyright (c) 2008-2011, http://www.snakeyaml.org |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.yaml.snakeyaml.resolver; |
| |
| import junit.framework.TestCase; |
| |
| public class RagelMachineTest extends TestCase { |
| private RagelMachine machine = new RagelMachine(); |
| |
| public void testScan() { |
| assertNull(machine.scan("abc")); |
| } |
| |
| public void testNullPointerException() { |
| try { |
| machine.scan(null); |
| fail("null must not be accepted."); |
| } catch (NullPointerException e) { |
| assertEquals("Scalar must be provided.", e.getMessage()); |
| } |
| } |
| |
| public void testScanBoolean() { |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("true")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("True")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("TRUE")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("false")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("False")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("FALSE")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("on")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("ON")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("On")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("off")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("Off")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("OFF")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("on")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("ON")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("On")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("off")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("Off")); |
| assertEquals("tag:yaml.org,2002:bool", machine.scan("OFF")); |
| } |
| |
| public void testScanNull() { |
| assertEquals("tag:yaml.org,2002:null", machine.scan("null")); |
| assertEquals("tag:yaml.org,2002:null", machine.scan("Null")); |
| assertEquals("tag:yaml.org,2002:null", machine.scan("NULL")); |
| assertEquals("tag:yaml.org,2002:null", machine.scan("~")); |
| assertEquals("tag:yaml.org,2002:null", machine.scan(" ")); |
| assertEquals("tag:yaml.org,2002:null", machine.scan("")); |
| } |
| |
| public void testScanMerge() { |
| assertEquals("tag:yaml.org,2002:merge", machine.scan("<<")); |
| } |
| |
| public void testScanValue() { |
| assertEquals("tag:yaml.org,2002:value", machine.scan("=")); |
| } |
| |
| public void testScanInt() { |
| assertEquals("tag:yaml.org,2002:int", machine.scan("0")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("1")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("-0")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("-9")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("0b0011")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("0x12ef")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("0123")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("1_000")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("1_000_000")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("+0")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("+10")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("1__000")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("24:12:34")); |
| assertEquals("tag:yaml.org,2002:int", machine.scan("240:12:34")); |
| } |
| |
| public void testScanFloat() { |
| assertEquals("tag:yaml.org,2002:float", machine.scan("1.0")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("-0.0")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("+2.2310")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("1.0e+12")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("1.345e-3")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("190:20:30.15")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("-.inf")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("+.INF")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan(".Inf")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan(".nan")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan(".NaN")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan(".NAN")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("1_000.5")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("1.023_456")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("-1_123.45")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan(".5")); |
| assertEquals("tag:yaml.org,2002:float", machine.scan("1.E+1")); |
| assertNull(machine.scan("0x1,1"), machine.scan("0x1,1")); |
| } |
| |
| public void testScanTimestamp() { |
| assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2009-02-28")); |
| assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2001-12-15T02:59:43.1Z")); |
| assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2001-12-14t21:59:43.10-05:00")); |
| assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2001-12-14 21:59:43.10 -5")); |
| assertEquals("tag:yaml.org,2002:timestamp", machine.scan("2001-12-15 2:59:43.10")); |
| } |
| } |