public void NameInequality() { NamedJsonBuffer nb1 = new NamedJsonBuffer("foo", JsonBuffer.From("bar")); NamedJsonBuffer nb2 = new NamedJsonBuffer("FOO", JsonBuffer.From("bar")); Assert.AreNotEqual(nb1, nb2); }
public void Equality() { var nb1 = new NamedJsonBuffer("foo", JsonBuffer.From("bar")); var nb2 = new NamedJsonBuffer("foo", JsonBuffer.From("bar")); Assert.AreEqual(nb1, nb2); }
public void Initialzation() { NamedJsonBuffer nb = new NamedJsonBuffer("foo", JsonBuffer.From("bar")); Assert.AreEqual("foo", nb.Name); Assert.AreEqual("bar", nb.Buffer.GetString()); }
public NamedJsonBuffer[] GetMembersArray() { var members = new NamedJsonBuffer[GetMemberCount()]; GetMembers(members); return(members); }
public void GetMembersIntoShortArray() { var members = new NamedJsonBuffer[2]; var count = JsonBuffer.From("{a:1,b:2,c:3}").GetMembers(members); Assert.AreEqual(~2, count); Assert.AreEqual("a", members[0].Name); Assert.AreEqual(1, (int)members[0].Buffer.GetNumber()); Assert.AreEqual("b", members[1].Name); Assert.AreEqual(2, (int)members[1].Buffer.GetNumber()); }
public void GetMembersIntoArray() { NamedJsonBuffer[] members = new NamedJsonBuffer[3]; int count = JsonBuffer.From("{a:1,b:2,c:3}").GetMembers(members); Assert.AreEqual(3, count); Assert.AreEqual("a", members[0].Name); Assert.AreEqual(1, (int)members[0].Buffer.GetNumber()); Assert.AreEqual("b", members[1].Name); Assert.AreEqual(2, (int)members[1].Buffer.GetNumber()); Assert.AreEqual("c", members[2].Name); Assert.AreEqual(3, (int)members[2].Buffer.GetNumber()); }
public void ToObject() { JsonBuffer obj = NamedJsonBuffer.ToObject( new NamedJsonBuffer("foo", JsonBuffer.From("bar")), new NamedJsonBuffer("qux", JsonBuffer.From("quux"))); Assert.AreEqual(6, obj.Length); Assert.AreEqual(JsonToken.Object(), obj[0]); Assert.AreEqual(JsonToken.Member("foo"), obj[1]); Assert.AreEqual(JsonToken.String("bar"), obj[2]); Assert.AreEqual(JsonToken.Member("qux"), obj[3]); Assert.AreEqual(JsonToken.String("quux"), obj[4]); Assert.AreEqual(JsonToken.EndObject(), obj[5]); }
public void GetMembersIntoLongArray() { var members = new NamedJsonBuffer[4]; var count = JsonBuffer.From("{a:1,b:2,c:3}").GetMembers(members); Assert.AreEqual(3, count); Assert.AreEqual("a", members[0].Name); Assert.AreEqual(1, (int)members[0].Buffer.GetNumber()); Assert.AreEqual("b", members[1].Name); Assert.AreEqual(2, (int)members[1].Buffer.GetNumber()); Assert.AreEqual("c", members[2].Name); Assert.AreEqual(3, (int)members[2].Buffer.GetNumber()); Assert.IsTrue(members[3].IsEmpty); }
public int GetMembers(NamedJsonBuffer[] members, int index, int count) { if (index < 0) { throw new ArgumentOutOfRangeException("index", index, null); } JsonBufferReader reader = CreateReader(); if (!reader.MoveToContent()) { throw new JsonException("Unexpected EOF."); } if (reader.TokenClass == JsonTokenClass.Null) { return(0); } reader.ReadToken(JsonTokenClass.Object); int readCount = 0; while (reader.TokenClass == JsonTokenClass.Member) { if (count-- == 0) { return(~readCount); } if (members != null) { members[index++] = new NamedJsonBuffer(reader.Text, reader.BufferValue()); } else { reader.Skip(); } readCount++; } return(readCount); }
private JsonBuffer TryPopBufferedMember(string name) { if (HasBufferedMembers) { NamedJsonBufferList members = _members; for (int i = 0; i < members.Count; i++) { NamedJsonBuffer member = (NamedJsonBuffer)members[i]; if (string.CompareOrdinal(member.Name, name) == 0) { members.RemoveAt(i); if (members.Count == 0) { _members = null; } return(member.Buffer); } } } return(JsonBuffer.Empty); }
public int GetMembers(NamedJsonBuffer[] members, int index, int count) { if (index < 0) throw new ArgumentOutOfRangeException("index", index, null); JsonBufferReader reader = CreateReader(); if (!reader.MoveToContent()) throw new JsonException("Unexpected EOF."); if (reader.TokenClass == JsonTokenClass.Null) return 0; reader.ReadToken(JsonTokenClass.Object); int readCount = 0; while (reader.TokenClass == JsonTokenClass.Member) { if (count-- == 0) return ~readCount; if (members != null) members[index++] = new NamedJsonBuffer(reader.Text, reader.BufferValue()); else reader.Skip(); readCount++; } return readCount; }
public int GetMembers(NamedJsonBuffer[] members) { return GetMembers(members, 0, members != null ? members.Length : int.MaxValue); }
protected override JsonToken ReadTokenImpl() { JsonReader baseReader = _reader; int index = _index; if (index < 0) { // // If the base reader was never started then do it now. // Check for zero depth is the same as BOF. // if (baseReader.Depth == 0) { baseReader.ReadToken(JsonTokenClass.Object); _innerDepth = baseReader.Depth; } _index = 0; return(JsonToken.Object()); } // // Buffered members, if any, get served first. // NamedJsonBufferList bufferedMembers = _bufferedMembers; if (bufferedMembers != null && index < bufferedMembers.Count) { // // Is there a value to serve? // JsonBuffer value = _memberValue; if (!value.IsEmpty) { if (value.IsStructured) // JSON Array or Object { // // Get a reader on the structured (array or // object) value if not already acquired. // JsonReader valueReader = _memberStructuredValueReader; if (valueReader == null) { valueReader = _memberStructuredValueReader = value.CreateReader(); } // // Serve tokens from the value reader until OEF. // if (valueReader.Read()) { return(valueReader.Token); } // // Proceed with next. // _memberValue = JsonBuffer.Empty; _memberStructuredValueReader = null; _index++; return(ReadTokenImpl()); } else // JSON Null, Boolean, Number or String { Debug.Assert(value.IsNull || value.IsScalar); // // Establish state to proceed with next and // serve token pertaining to scalar value. // _memberValue = JsonBuffer.Empty; _index++; return(value.IsNull ? JsonToken.Null() : value.CreateReader().Token); } } // // Serve buffered member name and establish state so // that the value will be served next. // NamedJsonBuffer member = (NamedJsonBuffer)bufferedMembers[index]; _memberValue = member.Buffer; return(JsonToken.Member(member.Name)); } // // Done with buffered members so now move on to remaining // members from the underlying reader. // if (baseReader == null) { return(JsonToken.EOF()); // Done with serving } // // If base reader is on the object end at the same depth as // on entry then serve the last end token. The reader is // released so that on next read, the above will signal EOF. // if (baseReader.Depth == _innerDepth && baseReader.TokenClass == JsonTokenClass.EndObject) { _reader = null; } // // Move through the base reader. // JsonToken token = baseReader.Token; baseReader.Read(); return(token); }
public void Equality() { NamedJsonBuffer nb1 = new NamedJsonBuffer("foo", JsonBuffer.From("bar")); NamedJsonBuffer nb2 = new NamedJsonBuffer("foo", JsonBuffer.From("bar")); Assert.AreEqual(nb1, nb2); }
public void Initialzation() { NamedJsonBuffer nb = new NamedJsonBuffer("foo", JsonBuffer.From("bar")); Assert.AreEqual("foo", nb.Name); Assert.AreEqual("bar", nb.Buffer.GetString()); }
public NamedJsonBuffer[] GetMembersArray() { NamedJsonBuffer[] members = new NamedJsonBuffer[GetMemberCount()]; GetMembers(members); return members; }
public void GetMembersIntoShortArray() { NamedJsonBuffer[] members = new NamedJsonBuffer[2]; int count = JsonBuffer.From("{a:1,b:2,c:3}").GetMembers(members); Assert.AreEqual(~2, count); Assert.AreEqual("a", members[0].Name); Assert.AreEqual(1, (int) members[0].Buffer.GetNumber()); Assert.AreEqual("b", members[1].Name); Assert.AreEqual(2, (int) members[1].Buffer.GetNumber()); }
public void GetMembersIntoLongArray() { NamedJsonBuffer[] members = new NamedJsonBuffer[4]; int count = JsonBuffer.From("{a:1,b:2,c:3}").GetMembers(members); Assert.AreEqual(3, count); Assert.AreEqual("a", members[0].Name); Assert.AreEqual(1, (int) members[0].Buffer.GetNumber()); Assert.AreEqual("b", members[1].Name); Assert.AreEqual(2, (int) members[1].Buffer.GetNumber()); Assert.AreEqual("c", members[2].Name); Assert.AreEqual(3, (int) members[2].Buffer.GetNumber()); Assert.IsTrue(members[3].IsEmpty); }
public bool Equals(NamedJsonBuffer other) { return(Name == other.Name && Buffer.Equals(other.Buffer)); }
public bool Equals(NamedJsonBuffer other) { return Name == other.Name && Buffer.Equals(other.Buffer); }