public void ParseError5() { var src = @"['age', 120 d"; var parser = new JP(new JL(new StringSource(src)), throwErrors: true); parser.Parse(); }
public void ParseError7() { var src = @"{ true: 120}"; var parser = new JP(new JL(new StringSource(src)), throwErrors: true); parser.Parse(); }
public void ParseError8() { var src = @"{ a: 120, b: 140, a: 12}"; var parser = new JP(new JL(new StringSource(src)), throwErrors: true); parser.Parse(); }
public void RootLiteral_String() { var src = @"'abc'"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.AreObjectsEqual("abc", parser.ResultContext.ResultObject); }
public void RootLiteral_PositiveHexInt() { var src = @"+0xf"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.AreObjectsEqual(15, parser.ResultContext.ResultObject); }
public void RootLiteral_PositiveScientificDouble() { var src = @"+12e2"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.AreObjectsEqual(12e2d, parser.ResultContext.ResultObject); }
public void RootLiteral_NegativeDecimalInt() { var src = @"-16"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.AreObjectsEqual(-16, parser.ResultContext.ResultObject); }
public void RootLiteral_Int() { var src = @"12"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.AreObjectsEqual(12, parser.ResultContext.ResultObject); }
public void ParseError1() { var src = @"{age 120}"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.AreEqual(1, parser.Messages.Count); Aver.AreEqual((int)JSONMsgCode.eColonOperatorExpected, parser.Messages[0].Code); }
public void RootLiteral_Null() { var src = @"null"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.IsNull(parser.ResultContext.ResultObject); }
public void RootEmptyArray() { var src = @"[]"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.IsTrue(parser.ResultContext.ResultObject is JSONDataArray); var arr = (JSONDataArray)parser.ResultContext.ResultObject; Aver.AreEqual(0, arr.Count); }
public void RootEmptyObject() { var src = @"{}"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.IsTrue(parser.ResultContext.ResultObject is JSONDataMap); var obj = (JSONDataMap)parser.ResultContext.ResultObject; Aver.AreEqual(0, obj.Count); }
public void RootArray() { var src = @"[1,2,3]"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.IsTrue(parser.ResultContext.ResultObject is JSONDataArray); var arr = (JSONDataArray)parser.ResultContext.ResultObject; Aver.AreEqual(3, arr.Count); Aver.AreObjectsEqual(1, arr[0]); Aver.AreObjectsEqual(2, arr[1]); Aver.AreObjectsEqual(3, arr[2]); }
public void RootObject() { var src = @"{a: 1, b: true, c: null}"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.IsTrue(parser.ResultContext.ResultObject is JSONDataMap); var obj = (JSONDataMap)parser.ResultContext.ResultObject; Aver.AreEqual(3, obj.Count); Aver.AreObjectsEqual(1, obj["a"]); Aver.AreObjectsEqual(true, obj["b"]); Aver.IsNull(obj["c"]); }
public void RootObjectWithSubObjects() { var src = @"{age: 120, numbers: {positive: true, bad: 12.7}, name: ""Vasya""}"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.IsTrue(parser.ResultContext.ResultObject is JSONDataMap); var obj = (JSONDataMap)parser.ResultContext.ResultObject; Aver.AreEqual(3, obj.Count); Aver.AreObjectsEqual(120, obj["age"]); Aver.AreObjectsEqual("Vasya", obj["name"]); Aver.AreObjectsEqual(true, ((JSONDataMap)obj["numbers"])["positive"]); Aver.AreObjectsEqual(12.7, ((JSONDataMap)obj["numbers"])["bad"]); }
public void RootObjectWithArray() { var src = @"{age: 12, numbers: [4,5,6,7,8,9], name: ""Vasya""}"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.IsTrue(parser.ResultContext.ResultObject is JSONDataMap); var obj = (JSONDataMap)parser.ResultContext.ResultObject; Aver.AreEqual(3, obj.Count); Aver.AreObjectsEqual(12, obj["age"]); Aver.AreObjectsEqual("Vasya", obj["name"]); Aver.AreObjectsEqual(6, ((JSONDataArray)obj["numbers"]).Count); Aver.AreObjectsEqual(7, ((JSONDataArray)obj["numbers"])[3]); }
public void RootComplexArray() { var src = @"[ {FirstName: ""Oleg"", //comments dont hurt 'LastName': ""Ogurtsov"", ""Middle Name"": 'V.', ""Crazy\nName"": 'Shamanov', LuckyNumbers: [4,5,6,7,8,9], /* comments do not break stuff */ |* in this JSON superset *| History: [ #HOT_TOPIC {Date: '05/14/1905', What: 'Tsushima'}, #MODERN_TOPIC {Date: '09/01/1939', What: 'WW2 Started', Who: ['Germany','USSR', 'USA', 'Japan', 'Italy', 'Others']} ] , Note: $'This note text can span many lines and this \r\n is not escape' }, 123 ]"; var parser = new JP(new JL(new StringSource(src))); parser.Parse(); Aver.IsTrue(parser.ResultContext.ResultObject is JSONDataArray); var arr = (JSONDataArray)parser.ResultContext.ResultObject; Aver.AreEqual(2, arr.Count); Aver.AreObjectsEqual(123, arr[1]); var obj = (JSONDataMap)arr[0]; Aver.AreEqual(7, obj.Count); Aver.AreObjectsEqual("Oleg", obj["FirstName"]); Aver.AreObjectsEqual("Ogurtsov", obj["LastName"]); Aver.AreObjectsEqual("V.", obj["Middle Name"]); Aver.AreObjectsEqual("Shamanov", obj["Crazy\nName"]); var lucky = obj["LuckyNumbers"] as JSONDataArray; Aver.IsNotNull(lucky); Aver.AreEqual(6, lucky.Count); Aver.AreObjectsEqual(4, lucky[0]); Aver.AreObjectsEqual(9, lucky[5]); var history = obj["History"] as JSONDataArray; Aver.IsNotNull(history); Aver.AreEqual(2, history.Count); var ww2 = history[1] as JSONDataMap; Aver.IsNotNull(ww2); Aver.AreEqual(3, ww2.Count); var who = ww2["Who"] as JSONDataArray; Aver.IsNotNull(who); Aver.AreEqual(6, who.Count); Aver.AreObjectsEqual("USA", who[2]); }