Пример #1
0
        public void SerializationIsSymmetric()
        {
            var buffer = new ArrayBufferWriter <Byte>();
            var value  = RandomSubject;

            value.Serialize(buffer);
            QueueDeleteOk.Deserialize(buffer.WrittenMemory.Span, out var deserialized, out var _);

            Assert.Equal(expected: value.MessageCount, actual: deserialized.MessageCount);
        }
Пример #2
0
        public void DeserializationReturnsSurplusData()
        {
            var value  = RandomSubject;
            var extra  = Random.UInt();
            var buffer = new ArrayBufferWriter <Byte>();

            buffer.WriteSerializable(value)
            .WriteUInt32LE(extra);

            QueueDeleteOk.Deserialize(buffer.WrittenMemory.Span, out var _, out var surplus);

            Assert.Equal(expected: sizeof(UInt32), actual: surplus.Length);
            Assert.Equal(expected: extra, actual: BitConverter.ToUInt32(surplus));
        }
        public void UnwrapsQueueDeleteOkMethodFrame()
        {
            var message = new QueueDeleteOk(
                messageCount: Random.UInt()
                );

            _context.Send(_subject, (Inbound, RawFrame.Wrap(_channelNumber, message)));

            if (_messageReceivedSignal.Wait(timeout: TimeSpan.FromMilliseconds(100)))
            {
                var unwrappedMessage = _unwrappedMessage as QueueDeleteOk;

                Assert.Equal(expected: message.MessageCount, actual: unwrappedMessage.MessageCount);
            }
            else
            {
                // No `QueueDeleteOk` command was received within 100 millis...
                throw new TimeoutException("Timeout occurred before command was received");
            }
        }
Пример #4
0
        public void DeserializationFailsWithInsufficientData()
        {
            var result = QueueDeleteOk.Deserialize(new Byte[0], out var _, out var _);

            Assert.False(result);
        }