1package toml
2
3import "testing"
4
5func TestTokenStringer(t *testing.T) {
6	var tests = []struct {
7		tt     tokenType
8		expect string
9	}{
10		{tokenError, "Error"},
11		{tokenEOF, "EOF"},
12		{tokenComment, "Comment"},
13		{tokenKey, "Key"},
14		{tokenString, "String"},
15		{tokenInteger, "Integer"},
16		{tokenTrue, "True"},
17		{tokenFalse, "False"},
18		{tokenFloat, "Float"},
19		{tokenEqual, "="},
20		{tokenLeftBracket, "["},
21		{tokenRightBracket, "]"},
22		{tokenLeftCurlyBrace, "{"},
23		{tokenRightCurlyBrace, "}"},
24		{tokenLeftParen, "("},
25		{tokenRightParen, ")"},
26		{tokenDoubleLeftBracket, "]]"},
27		{tokenDoubleRightBracket, "[["},
28		{tokenDate, "LocalDate"},
29		{tokenLocalDate, "LocalDate"},
30		{tokenKeyGroup, "KeyGroup"},
31		{tokenKeyGroupArray, "KeyGroupArray"},
32		{tokenComma, ","},
33		{tokenColon, ":"},
34		{tokenDollar, "$"},
35		{tokenStar, "*"},
36		{tokenQuestion, "?"},
37		{tokenDot, "."},
38		{tokenDotDot, ".."},
39		{tokenEOL, "EOL"},
40		{tokenEOL + 1, "Unknown"},
41	}
42
43	for i, test := range tests {
44		got := test.tt.String()
45		if got != test.expect {
46			t.Errorf("[%d] invalid string of token type; got %q, expected %q", i, got, test.expect)
47		}
48	}
49}
50
51func TestTokenString(t *testing.T) {
52	var tests = []struct {
53		tok    token
54		expect string
55	}{
56		{token{Position{1, 1}, tokenEOF, ""}, "EOF"},
57		{token{Position{1, 1}, tokenError, "Δt"}, "Δt"},
58		{token{Position{1, 1}, tokenString, "bar"}, `"bar"`},
59		{token{Position{1, 1}, tokenString, "123456789012345"}, `"123456789012345"`},
60	}
61
62	for i, test := range tests {
63		got := test.tok.String()
64		if got != test.expect {
65			t.Errorf("[%d] invalid of string token; got %q, expected %q", i, got, test.expect)
66		}
67	}
68}
69