public void TestEndArray() { var json = "\t ]x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.EndArray, token.Type); Assert.Equal("]", token.Lexeme); Assert.Equal('x', buffer.Read()); }
public void TestEndOfFile() { var json = "\t "; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.EndOfFile, token.Type); Assert.Equal("<eof>", token.Lexeme); Assert.Equal(-1, buffer.Read()); }
public void TestNameSeparator() { var json = "\t :x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Colon, token.Type); Assert.Equal(":", token.Lexeme); Assert.Equal('x', buffer.Read()); }
public void TestBeginObject() { var json = "\t {x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.BeginObject, token.Type); Assert.Equal("{", token.Lexeme); Assert.Equal('x', buffer.Read()); }
public void TestEndOfFile() { var json = "\t "; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.EndOfFile, token.Type); Assert.Equal("<eof>", token.Lexeme); Assert.Equal(-1, buffer.Read()); }
public void TestMinusTwelve() { var json = "\t -12,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Int32, token.Type); Assert.Equal("-12", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestRegularExpressionPatternAndOptions() { var json = "\t /pattern/imxs,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.RegularExpression, token.Type); Assert.Equal("/pattern/imxs", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestRegularExpressionEmpty() { var json = "\t //,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.RegularExpression, token.Type); Assert.Equal("//", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestValueSeparator() { var json = "\t ,x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Comma, token.Type); Assert.Equal(",", token.Lexeme); Assert.Equal('x', buffer.Read()); }
public void TestEndArray() { var json = "\t ]x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.EndArray, token.Type); Assert.Equal("]", token.Lexeme); Assert.Equal('x', buffer.Read()); }
public void TestMinusOnePointTwo() { var json = "\t -1.2,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Double, token.Type); Assert.Equal("-1.2", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestBeginObject() { var json = "\t {x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.BeginObject, token.Type); Assert.Equal("{", token.Lexeme); Assert.Equal('x', buffer.Read()); }
public void TestUnquotedString() { var json = "\t name123:1"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.UnquotedString, token.Type); Assert.Equal("name123", token.StringValue); Assert.Equal(':', buffer.Read()); }
public void TestUndefined() { var json = "\t undefined,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.UnquotedString, token.Type); Assert.Equal("undefined", token.StringValue); Assert.Equal(',', buffer.Read()); }
public void TestBeginArray() { var json = "\t [x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.AreEqual(JsonTokenType.BeginArray, token.Type); Assert.AreEqual("[", token.Lexeme); Assert.AreEqual('x', buffer.Read()); }
public void TestNameSeparator() { var json = "\t :x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.AreEqual(JsonTokenType.Colon, token.Type); Assert.AreEqual(":", token.Lexeme); Assert.AreEqual('x', buffer.Read()); }
public void TestEndObject() { var json = "\t }x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.AreEqual(JsonTokenType.EndObject, token.Type); Assert.AreEqual("}", token.Lexeme); Assert.AreEqual('x', buffer.Read()); }
public void TestOne() { var json = "\t 1,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.AreEqual(JsonTokenType.Int32, token.Type); Assert.AreEqual("1", token.Lexeme); Assert.AreEqual(',', buffer.Read()); }
public void TestNull() { var json = "\t null,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.AreEqual(JsonTokenType.UnquotedString, token.Type); Assert.AreEqual("null", token.StringValue); Assert.AreEqual(',', buffer.Read()); }
public void TestOneExponentMinuesTwelve() { var json = "\t 1e-12,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Double, token.Type); Assert.Equal("1e-12", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestEscapeSequences() { var json = "\t \"x\\\"\\\\\\/\\b\\f\\n\\r\\t\\u0030y\"x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.String, token.Type); Assert.Equal("x\"\\/\b\f\n\r\t0y", token.StringValue); Assert.Equal('x', buffer.Read()); }
public void TestEmptyString() { var json = "\t \"\"x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.AreEqual(JsonTokenType.String, token.Type); Assert.AreEqual("", token.StringValue); Assert.AreEqual('x', buffer.Read()); }
public void Test3CharacterString() { var json = "\t \"123\"x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.String, token.Type); Assert.Equal("123", token.StringValue); Assert.Equal('x', buffer.Read()); }
public void TestMinusZeroExponentMinusOne() { var json = "\t -0e-1,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Double, token.Type); Assert.Equal("-0e-1", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestZeroPointZero() { var json = "\t 0.0,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Double, token.Type); Assert.Equal("0.0", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void ReadLiteralNull(string content) { using (var stream = CreateTextReader(content)) { var buffer = new JsonBuffer(stream); Assert.NotNull(buffer); var token = buffer.Read(); Assert.Equal(JsonTokenType.Null, token.Type); } }
public void ReadLiteralThrowException(string content) { using (var stream = CreateTextReader(content)) { var buffer = new JsonBuffer(stream); Assert.NotNull(buffer); Assert.Throws <JsonDeserializerException>(() => { buffer.Read(); }); } }
public void ReadTokenThroughLockFileSample() { using (var stream = File.OpenRead(Path.Combine("TestSample", "project.lock.sample"))) { var reader = new StreamReader(stream); var buffer = new JsonBuffer(reader); Assert.NotNull(buffer); while (buffer.Read().Type != JsonTokenType.EOF) { ; } } }
public void ReadUnicode() { var content = "\"Unicode string \\u00A9\""; using (var stream = CreateTextReader(content)) { var buffer = new JsonBuffer(stream); Assert.NotNull(buffer); var token = buffer.Read(); Assert.Equal(JsonTokenType.String, token.Type); Assert.Equal(16, token.Value.Length); } }
public void ReadThroughArray(string content) { using (var stream = CreateTextReader(content)) { var buffer = new JsonBuffer(stream); Assert.NotNull(buffer); var tokens = new List <JsonToken>(); do { tokens.Add(buffer.Read()); }while (tokens[tokens.Count - 1].Type != JsonTokenType.EOF); Assert.Equal(JsonTokenType.LeftSquareBracket, tokens[0].Type); Assert.Equal(JsonTokenType.RightSquareBracket, tokens[tokens.Count - 2].Type); } }
public void TestMinusZeroExponentMinusTwelve() { var json = "\t -1e-12,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Double, token.Type); Assert.Equal("-1e-12", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void Test3CharacterString() { var json = "\t \"123\"x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.String, token.Type); Assert.Equal("123", token.StringValue); Assert.Equal('x', buffer.Read()); }
public void TestEscapeSequences() { var json = "\t \"x\\\"\\\\\\/\\b\\f\\n\\r\\t\\u0030y\"x"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.String, token.Type); Assert.Equal("x\"\\/\b\f\n\r\t0y", token.StringValue); Assert.Equal('x', buffer.Read()); }
public void TestUndefined() { var json = "\t undefined,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.UnquotedString, token.Type); Assert.Equal("undefined", token.StringValue); Assert.Equal(',', buffer.Read()); }
public void TestUnquotedString() { var json = "\t name123:1"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.UnquotedString, token.Type); Assert.Equal("name123", token.StringValue); Assert.Equal(':', buffer.Read()); }
public void TestMinusZero() { var json = "\t -0,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Int32, token.Type); Assert.Equal("-0", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestTwelve() { var json = "\t 12,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Int32, token.Type); Assert.Equal("12", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestZeroExponentOne() { var json = "\t 0e1,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Double, token.Type); Assert.Equal("0e1", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestRegularExpressionEmpty() { var json = "\t //,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.RegularExpression, token.Type); Assert.Equal("//", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestRegularExpressionPatternAndOptions() { var json = "\t /pattern/imxs,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.RegularExpression, token.Type); Assert.Equal("/pattern/imxs", token.Lexeme); Assert.Equal(',', buffer.Read()); }
public void TestMinusOnePointTwo() { var json = "\t -1.2,"; var buffer = new JsonBuffer(json); var token = JsonScanner.GetNextToken(buffer); Assert.Equal(JsonTokenType.Double, token.Type); Assert.Equal("-1.2", token.Lexeme); Assert.Equal(',', buffer.Read()); }
internal static IEnumerable <object> ReadDocumentsAs(Type documentType, string filePath, FileFormat format) { if (format == FileFormat.Auto) { format = filePath.EndsWith(".json", StringComparison.OrdinalIgnoreCase) ? FileFormat.Json : FileFormat.Bson; } var serializer = BsonSerializer.LookupSerializer(documentType); var options = DocumentSerializationOptions.Defaults; if (format == FileFormat.Json) { var jb = new JsonBuffer(File.ReadAllText(filePath)); bool array = false; for (; ;) { // skip white int c; for (; ;) { // end or white? if ((c = jb.Read()) <= 32) { // end? if (c < 0) { goto end; } // white continue; } // document if (c == '{') { jb.UnRead(c); break; } // array if (c == ',') { if (array) { continue; } } else if (c == ']') { if (array) { array = false; continue; } } else if (c == '[') { if (!array) { array = true; continue; } } throw new FormatException(string.Format(null, "Unexpected character '{0}' at position {1}.", (char)c, jb.Position - 1)); } using (var bsonReader = BsonReader.Create(jb)) yield return(serializer.Deserialize(bsonReader, documentType, options)); } end :; } else { using (var stream = File.OpenRead(filePath)) { long length = stream.Length; while (stream.Position < length) { using (var bsonReader = BsonReader.Create(stream)) yield return(serializer.Deserialize(bsonReader, documentType, options)); } } } }