public void TestStringParser(string expected, params string[] buffers) { using var reader = new JsonStringReader(); var totalConsumed = 0; foreach (var buffer in buffers) { var b = JsonUtilities.UTF8.GetBytes(buffer); var result = reader.TryParse(b.AsMemory(), out var actual, out var consumed, out _, out _); totalConsumed += consumed; switch (result.Type) { case ValueParseResultType.Failure when expected != null: Assert.Fail("Failed to parse when failure was not expected."); return; case ValueParseResultType.Failure when expected == null: return; case ValueParseResultType.Success: Assert.AreEqual(expected, actual); return; case ValueParseResultType.EOF: Assert.AreEqual(b.Length, consumed); break; } } Assert.Inconclusive(); }
public void TestUnicodeCharacterFormat() { StringReader sr = new StringReader("\"\\u00\""); JsonStringReader reader = new JsonStringReader(sr); reader.Read(); }
public void TestUnicodeCharacterEscaped() { JsonStringReader reader = new JsonStringReader(new StringReader("\"\\uFAFA\"")); JsonString val = (JsonString)reader.Read(); // Assure unicode is escaped Assert.AreEqual(val.Value, "\uFAFA"); }
public static async Task <bool> LoadAsync(string filePath, bool canAcceptBom) { var bags = !canAcceptBom ? await JsonStringReader.LoadNoBomAsync <DataBag[]>(filePath) : await JsonStringReader.LoadRegardlessBomAsync <DataBag[]>(filePath); return(bags.SequenceEqual(GetSampleBags(3), new DataBagEqualityComparer())); }
public static bool Load(string filePath, bool canAcceptBom) { var bags = !canAcceptBom ? JsonStringReader.LoadNoBom <DataBag[]>(filePath) : JsonStringReader.LoadRegardlessBom <DataBag[]>(filePath); return(bags.SequenceEqual(GetSampleBags(3), new DataBagEqualityComparer())); }
public static async Task SaveAsync(string filePath, bool canEmitBom, int selector) { if (!canEmitBom) { await JsonStringReader.SaveNoBomAsync(filePath, GetSampleBags(3)); } else { await JsonStringReader.SaveSelectableBomAsync(filePath, GetSampleBags(3), selector); } }
public void TestUtf8StringParser(string expected, string input, params int[] slicePoints) { var allBuffer = JsonUtilities.UTF8.GetBytes(input); var allBuffers = allBuffer.AsSpan(); using var reader = new JsonStringReader(); var totalConsumed = 0; var lpos = 0; foreach (var slicePoint in slicePoints.Concat(new[] { allBuffer.Length })) { var b = allBuffers[lpos..slicePoint];