aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/mammoth/tests/styles/parsing/TokenParserTests.java
blob: d02bafe4db1142c014d9f61482b14b1fcfadb508 (plain)
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
package org.zwobble.mammoth.tests.styles.parsing;

import org.junit.jupiter.api.Test;
import org.zwobble.mammoth.internal.styles.parsing.Token;
import org.zwobble.mammoth.internal.styles.parsing.TokenIterator;
import org.zwobble.mammoth.internal.styles.parsing.TokenParser;
import org.zwobble.mammoth.internal.styles.parsing.TokenType;

import java.util.Optional;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.zwobble.mammoth.internal.util.Lists.list;

public class TokenParserTests {
    @Test
    public void escapeSequencesInIdentifiersAreDecoded() {
        Optional<String> value = TokenParser.parseClassName(new TokenIterator<>(list(
            new Token<>(0, TokenType.SYMBOL, "."),
            new Token<>(1, TokenType.IDENTIFIER, "\\:")
        ), new Token<>(2, TokenType.EOF, "")));
        assertEquals(Optional.of(":"), value);
    }

    @Test
    public void escapeSequencesInStringAreDecoded() {
        String value = TokenParser.parseString(new TokenIterator<>(list(
            new Token<>(0, TokenType.STRING, "'\\n'")
        ), new Token<>(1, TokenType.EOF, "")));
        assertEquals("\n", value);
    }
}