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
|
require 'multi_json'
require 'toml'
require 'minitest/autorun'
class TestParser < MiniTest::Test
def setup
filepath = File.join(File.dirname(__FILE__), 'spec.toml')
@doc = TOML::Parser.new(File.read(filepath)).parsed
end
def test_string
assert_equal "string\n\t\"string", @doc["strings"]["string"]
assert_equal "", @doc["strings"]["empty"]
end
def test_integer
assert_equal 42, @doc["ints"]["simple"]
end
def test_negative_integer
assert_equal -42, @doc["ints"]["negative"]
end
def test_float
assert_equal 3.14159, @doc["floats"]["pi"]
end
def test_negative_float
assert_equal -10.0, @doc["floats"]["negative"]
end
def test_datetime
assert_equal DateTime.iso8601("1979-05-27T07:32:00Z"), @doc["datetimes"]["simple"]
end
def test_booleans
assert_equal true, @doc["true"]
assert_equal false, @doc["false"]
end
def test_simple_array
assert_equal [1, 2, 3], @doc["arrays"]["simple"]
end
def test_nested_array
assert_equal [[1, 2], [3]], @doc["arrays"]["nested"]
end
def test_empty_array
assert_equal [], @doc["arrays"]["empty"]
end
def test_empty_multiline_array
assert_equal [], @doc["arrays"]["multiline_empty"]
end
def test_empty_multiline_array_with_comment
assert_equal [], @doc["arrays"]["multiline_empty_comment"]
end
def test_multiline_arrays
assert_equal ["lines", "are", "super", "cool", "lol", "amirite"], @doc["arrays"]["multi"]
end
def test_multiline_array
assert_equal @doc["arrays"]["multiline"], [1, 2, 3]
end
def test_multiline_array_with_trailing_comma
assert_equal @doc["arrays"]["multiline_trailing_comma"], [1, 2, 3]
end
def test_multiline_array_with_comments
assert_equal @doc["arrays"]["multiline_comments"], [1, 2, 3]
end
def test_simple_keygroup
assert_equal "test", @doc["e"]["f"]
end
def test_nested_keygroup
assert_equal "test", @doc["a"]["b"]["c"]["d"]
end
def test_inline_comment
assert_equal "a line", @doc["comments"]["on"]
end
end
|