JsonParserUnitTest.java
1.95 KB
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
package com.ishchuk.antlr;
import com.ishchuk.antlr.json.JsonListener;
import com.ishchuk.antlr4.JSONgramLexer;
import com.ishchuk.antlr4.JSONgramParser;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.tree.ParseTreeWalker;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
public class JsonParserUnitTest {
@Test
public void whenJsonObjectWithString_thenStringIsDetected() throws Exception {
// String line = "{\"menu\": \"light134-()%4praer---'$\"}";
String line = "{\n" + "\"line\": \"contentLine\"," +
"\"table\":[{\"lineInTable\":\"contentLineIntTable\"},{}]," +
" \"menu\": {\n" +
" \"id\": \"file\",\n" +
" \"value\": \"File\",\n" +
" \"popup\": {\n" +
" \"menuitem\": [\n" +
" { \"value\": \"New\", \"onclick\": \"CreateNewDoc()\" },\n" +
" { \"value\": \"Open\", \"onclick\": \"OpenDoc()\" },\n" +
" { \"value\": \"Close\", \"onclick\": \"CloseDoc()\" }\n" +
" ]\n" +
" }\n" +
" }\n" +
"}";
JSONgramLexer serverJSONgramLexer = new JSONgramLexer(CharStreams.fromString(line));
CommonTokenStream tokens = new CommonTokenStream( serverJSONgramLexer );
JSONgramParser JSONgramParser = new JSONgramParser(tokens);
ParseTreeWalker walker = new ParseTreeWalker();
JsonListener jsonWalker = new JsonListener();
walker.walk(jsonWalker, JSONgramParser.json());
System.out.println(jsonWalker.getJsonFile().getList().size());
jsonWalker.getJsonFile().getList().forEach(System.out::println);
assertThat(jsonWalker.getJsonFile(), is(line));
}
}