Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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());
        }
Esempio n. 5
0
        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
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
 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>();
 }
Esempio n. 9
0
 /// <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))
 {
 }