public void Valid_Blittable() { using (var context = JsonOperationContext.ShortTermSingleUse()) { var allTokens = new AllTokensTypes { Bool = true, Float = 123.4567F, Int = 45679123, IntArray = new[] { 1, 2, 3 }, Null = null, Object = new Empty(), String = "qwertyuio" }; var obj = JObject.FromObject(allTokens); var objString = obj.ToString(Formatting.None); var stream = new MemoryStream(); var streamWriter = new StreamWriter(stream); streamWriter.Write(objString); streamWriter.Flush(); stream.Position = 0; var reader = context.Sync.ReadForDisk(stream, "docs/1 "); reader.BlittableValidation(); } }
public unsafe void Valid_object_read_from_non_zero_offset() { using (var context = JsonOperationContext.ShortTermSingleUse()) { var jsonParserState = new JsonParserState(); using (var parser = new UnmanagedJsonParser(context, jsonParserState, "changes/1")) { byte[] buffer = new byte[4096]; var bufferOffset = 128; //non-zero offset var allTokens = new AllTokensTypes { Bool = true, Float = 123.4567F, Int = 45679123, IntArray = new[] { 1, 2, 3 }, Null = null, Object = new Empty(), String = "qwertyuio" }; var obj = JObject.FromObject(allTokens); var objString = obj.ToString(Formatting.None); var data = Encoding.UTF8.GetBytes(objString); data.CopyTo(buffer, bufferOffset); fixed(byte *pBuffer = buffer) { using (var builder = new BlittableJsonDocumentBuilder(context, BlittableJsonDocumentBuilder.UsageMode.None, "order/1", parser, jsonParserState)) { parser.SetBuffer(pBuffer + bufferOffset, data.Length); builder.ReadObjectDocument(); Assert.True(builder.Read()); builder.FinalizeDocument(); using (var reader = builder.CreateReader()) { var value = reader.ToString(); Assert.NotNull(value); } } } } } }