1/**
2 * Copyright (c) 2008, http://www.snakeyaml.org
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.yaml.snakeyaml.tokens;
17
18import junit.framework.TestCase;
19
20import org.yaml.snakeyaml.error.Mark;
21import org.yaml.snakeyaml.error.YAMLException;
22import org.yaml.snakeyaml.tokens.Token.ID;
23
24public class TagTokenTest extends TestCase {
25
26    public void testGetArguments() {
27        Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
28        TagToken token = new TagToken(new TagTuple("!foo", "!bar"), mark, mark);
29        assertEquals("value=[!foo, !bar]", token.getArguments());
30    }
31
32    public void testNoMarks() {
33        Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
34        try {
35            new TagToken(new TagTuple("!foo", "!bar"), null, mark);
36            fail("Token without start mark should not be accepted.");
37        } catch (YAMLException e) {
38            assertEquals("Token requires marks.", e.getMessage());
39        }
40        try {
41            new TagToken(new TagTuple("!foo", "!bar"), mark, null);
42            fail("Token without end mark should not be accepted.");
43        } catch (YAMLException e) {
44            assertEquals("Token requires marks.", e.getMessage());
45        }
46    }
47
48    public void testNoTag() {
49        try {
50            Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
51            new TagToken(new TagTuple("!foo", null), mark, mark);
52            fail("Marks must be provided.");
53        } catch (NullPointerException e) {
54            assertEquals("Suffix must be provided.", e.getMessage());
55        }
56    }
57
58    public void testGetTokenId() {
59        Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
60        TagToken token = new TagToken(new TagTuple("!foo", "!bar"), mark, mark);
61        assertEquals(ID.Tag, token.getTokenId());
62    }
63}
64