Mercurial > hg > Members > kono > jpf-core
view src/tests/gov/nasa/jpf/util/json/JSONParserTest.java @ 0:61d41facf527
initial v8 import (history reset)
author | Peter Mehlitz <Peter.C.Mehlitz@nasa.gov> |
---|---|
date | Fri, 23 Jan 2015 10:14:01 -0800 |
parents | |
children |
line wrap: on
line source
/* * Copyright (C) 2014, United States Government, as represented by the * Administrator of the National Aeronautics and Space Administration. * All rights reserved. * * The Java Pathfinder core (jpf-core) platform is licensed under the * Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package gov.nasa.jpf.util.json; import gov.nasa.jpf.util.test.TestJPF; import org.junit.Test; /** * * @author Ivan Mushketik */ public class JSONParserTest extends TestJPF { @Test public void testOneLevelJSON() { String json = "{" + "\"key1\" : \"str\"," + "\"key2\" : 123" + "}"; JSONObject o = parseJSON(json); Value key1 = o.getValue("key1"); assert key1.getString().equals("str"); Value key2 = o.getValue("key2"); assert key2.getDouble() == 123; } @Test public void testEmptyObject() { String json = "{}"; JSONObject o = parseJSON(json); assert o.getValue("noValue") == null; } @Test public void testArrayParse() { String json = "{" + "\"key\" : [" + "{ \"key1\" : 123 }," + "{ \"key2\" : \"str\" } ]" + "}"; JSONObject o = parseJSON(json); Value objects[] = o.getValue("key").getArray(); assert objects[0].getObject().getValue("key1").getDouble() == 123; assert objects[1].getObject().getValue("key2").getString().equals("str") == true; } @Test public void testEmptyArray() { String json = "{ \"emptyArr\" : [] }"; JSONObject o = parseJSON(json); assert o.getValue("noArray") == null; } @Test public void testIdentifacatorsParsing() { String json = "{ " + "\"Null\" : null," + "\"True\" : true," + "\"False\": false" + "}"; JSONObject o = parseJSON(json); assert o.getValue("Null").getString() == null; assert o.getValue("True").getBoolean() == true; assert o.getValue("False").getBoolean() == false; } @Test public void testCGCallParsing() { String json = "{" + "\"id\" : CGName(1, \"str\", true, false, null)" + "}"; JSONObject o = parseJSON(json); CGCall cgCall = o.getCGCall("id"); assert cgCall.getName().equals("CGName") == true; Value params[] = cgCall.getValues(); assertEquals(1d, params[0].getDouble(), 0.0001); assert params[1].getString().equals("str") == true; assert params[2].getBoolean() == true; assert params[3].getBoolean() == false; assert params[4].getDouble() == null; } private JSONObject parseJSON(String json) { JSONLexer lexer = new JSONLexer(json); JSONParser parser = new JSONParser(lexer); JSONObject o = parser.parse(); return o; } }