public static void PrimitivesMultiSegment(string jsonString, Type type, object expected) { byte[] utf8 = Encoding.UTF8.GetBytes(jsonString); ReadOnlySequence <byte> sequence = JsonTestHelper.CreateSegments(utf8); var reader = new Utf8JsonReader(sequence, isFinalBlock: true, state: default); Assert.Equal(JsonTokenType.None, reader.TokenType); object obj = JsonSerializer.Deserialize(ref reader, type); Assert.True(reader.HasValueSequence); Assert.Equal(utf8.Length, reader.BytesConsumed); Assert.Equal(expected, obj); Assert.False(reader.Read()); }
public static void ReadObjectMultiSegment(bool isFinalBlock) { byte[] utf8 = Encoding.UTF8.GetBytes("[1, 2, {\"Foo\":[1, 2, 3]}]"); ReadOnlySequence <byte> sequence = JsonTestHelper.CreateSegments(utf8); var reader = new Utf8JsonReader(sequence, isFinalBlock, state: default); reader.Read(); reader.Read(); reader.Read(); reader.Read(); Assert.Equal(JsonTokenType.StartObject, reader.TokenType); SimpleTypeWithArray instance = JsonSerializer.Deserialize <SimpleTypeWithArray>(ref reader); Assert.Equal(JsonTokenType.EndObject, reader.TokenType); Assert.Equal(new int[] { 1, 2, 3 }, instance.Foo); Assert.Equal(utf8.Length - 1, reader.BytesConsumed); Assert.True(reader.Read()); Assert.Equal(JsonTokenType.EndArray, reader.TokenType); Assert.False(reader.Read()); }