public void ToStringRespectsArraySegmentBoundaries() { var payload = "pre payload post"; var bytes = Encoding.UTF8.GetBytes(payload); var segment = new ArraySegment <byte>(bytes, 4, 7); var data = BinaryData.FromMemory(segment); Assert.AreEqual("payload", data.ToString()); }
public async Task ToStreamRespectsArraySegmentBoundaries() { var payload = "pre payload post"; var bytes = Encoding.UTF8.GetBytes(payload); var segment = new ArraySegment <byte>(bytes, 4, 7); var data = BinaryData.FromMemory(segment); var stream = data.ToStream(); var sr = new StreamReader(stream); Assert.AreEqual("payload", await sr.ReadToEndAsync()); }
public void EqualsRespectsReferenceEquality() { var payload = Encoding.UTF8.GetBytes("some data"); var a = BinaryData.FromMemory(payload); var b = BinaryData.FromMemory(payload); Assert.AreEqual(a, b); var c = BinaryData.FromMemory(Encoding.UTF8.GetBytes("some data")); Assert.AreNotEqual(a, c); Assert.AreNotEqual(a, "string data"); }
public void CanCreateBinaryDataFromBytes() { byte[] payload = Encoding.UTF8.GetBytes("some data"); BinaryData data = BinaryData.FromMemory(payload); Assert.AreEqual(payload, data.Bytes.ToArray()); MemoryMarshal.TryGetArray <byte>(payload, out var array); Assert.AreSame(payload, array.Array); // using implicit conversion ReadOnlyMemory <byte> bytes = data; Assert.AreEqual(payload, bytes.ToArray()); }
public void ToFromBytes() { #region Snippet:BinaryDataToFromBytes var bytes = Encoding.UTF8.GetBytes("some data"); // when using the ReadOnlySpan constructor the underlying data is copied. var data = new BinaryData(new ReadOnlySpan <byte>(bytes)); // when using the FromMemory method, the data is wrapped data = BinaryData.FromMemory(bytes); // there is an implicit cast defined for ReadOnlyMemory<byte> ReadOnlyMemory <byte> rom = data; // there is also a Bytes property that holds the data rom = data.Bytes; #endregion }
public void GetHashCodeWorks() { var payload = Encoding.UTF8.GetBytes("some data"); var a = BinaryData.FromMemory(payload); var b = BinaryData.FromMemory(payload); var set = new HashSet <BinaryData> { a }; // hashcodes of a and b should match since instances use same memory. Assert.IsTrue(set.Contains(b)); var c = BinaryData.FromMemory(Encoding.UTF8.GetBytes("some data")); // c should have a different hash code Assert.IsFalse(set.Contains(c)); set.Add(c); Assert.IsTrue(set.Contains(c)); }
private static ServiceBusMessage CreateAmqpDataMessage(IEnumerable <byte[]> data) => new ServiceBusMessage(BinaryData.FromMemory(ConvertAndFlattenData(data) ?? ReadOnlyMemory <byte> .Empty));
/// <summary> /// Creates a new message from the specified payload. /// </summary> /// <param name="body">The payload of the message in bytes.</param> public ServiceBusMessage(ReadOnlyMemory <byte> body) { Body = BinaryData.FromMemory(body); Properties = new Dictionary <string, object>(); }
/// <summary> /// Creates a new message from the specified payload. /// </summary> /// <param name="body">The payload of the message in bytes.</param> public ServiceBusMessage(ReadOnlyMemory <byte> body) : this(BinaryData.FromMemory(body)) { }