Blame view

src/test/java/com/ishchuk/antlr/JsonParserUnitTest.java 1.95 KB
ea3b85f2   eishchuk   Initial commit
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));
  
      }
  }