public void WriteBytes() { byte[] data = Encoding.UTF8.GetBytes("Hello world!"); MemoryStream ms = new MemoryStream(); CborDataWriter writer = new CborDataWriter(ms); writer.WriteStartArray(); writer.WriteValue("a"); writer.WriteValue("b"); writer.WriteValue(data); writer.WriteEndArray(); writer.Flush(); ms.Seek(0, SeekOrigin.Begin); string expected = "83-61-61-61-62-4C-48-65-6C-6C-6F-20-77-6F-72-6C-64-21"; string bson = BytesToHex(ms.ToArray()); Assert.AreEqual(expected, bson); CborDataReader reader = new CborDataReader(new MemoryStream(ms.ToArray())); reader.Read(); reader.Read(); reader.Read(); reader.Read(); Assert.AreEqual(JsonToken.Bytes, reader.TokenType); CollectionAssert.AreEquivalent(data, (byte[])reader.Value); }
public void WriteNestedArray() { MemoryStream ms = new MemoryStream(); CborDataWriter writer = new CborDataWriter(ms); writer.WriteStartObject(); writer.WritePropertyName("_id"); writer.WriteValue(HexToBytes("4A-78-93-79-17-22-00-00-00-00-61-CF")); writer.WritePropertyName("a"); writer.WriteStartArray(); for (int i = 1; i <= 8; i++) { double value = (i != 5) ? Convert.ToDouble(i) : 5.78960446186581E+77d; writer.WriteValue(value); } writer.WriteEndArray(); writer.WritePropertyName("b"); writer.WriteValue("test"); writer.WriteEndObject(); writer.Flush(); ms.Seek(0, SeekOrigin.Begin); string expected = "A3-63-5F-69-64-4C-4A-78-93-79-17-22-00-00-00-00-61-CF-61-61-88-FB-3F-F0-00-00-00-00-00-00-FB-40-00-00-00-00-00-00-00-FB-40-08-00-00-00-00-00-00-FB-40-10-00-00-00-00-00-00-FB-50-14-00-00-00-00-00-00-FB-40-18-00-00-00-00-00-00-FB-40-1C-00-00-00-00-00-00-FB-40-20-00-00-00-00-00-00-61-62-64-74-65-73-74"; string bson = BytesToHex(ms.ToArray()); Assert.AreEqual(expected, bson); }
public byte[] CborSerialiseObject(IOicResource input) { using (var stream = new MemoryStream()) { var writer = new CborDataWriter(stream); JsonSerializer.CreateDefault().Serialize(writer, input); writer.Flush(); return(stream.ToArray()); } }
public void AutoCompleteOnClose_False() { MemoryStream ms = new MemoryStream(); using (CborDataWriter writer = new CborDataWriter(ms)) { writer.AutoCompleteOnClose = false; writer.WriteStartObject(); writer.WritePropertyName("Blah"); writer.Flush(); } // nothing is written because a BSON document needs to be completed before it can be written Assert.AreEqual(string.Empty, (BitConverter.ToString(ms.ToArray()))); }
public void WriteArrayBsonFromSite() { MemoryStream ms = new MemoryStream(); CborDataWriter writer = new CborDataWriter(ms); writer.WriteStartArray(); writer.WriteValue("a"); writer.WriteValue("b"); writer.WriteValue("c"); writer.WriteEndArray(); writer.Flush(); ms.Seek(0, SeekOrigin.Begin); string expected = "83-61-61-61-62-61-63"; string bson = BytesToHex(ms.ToArray()); Assert.AreEqual(expected, bson); }