public void ChunkIfNeeded_LargeMessage_Chunked()
        {
            var message = new BinaryMessage
            {
                MessageId = Guid.NewGuid(),
                Content   = GetByteArray(1400)
            };
            var headers = new MessageHeaderCollection
            {
                { MessageHeader.MessageIdKey, "1234" }
            };

            var serializedMessage = _serializer.Serialize(message, headers);
            var rawBrokerMessage  =
                new RawBrokerMessage(message, headers,
                                     new TestProducerEndpoint("test")
            {
                Chunk = new ChunkSettings
                {
                    Size = 500
                }
            })
            {
                RawContent = serializedMessage
            };

            var chunks = ChunkProducer.ChunkIfNeeded(rawBrokerMessage);

            chunks.Should().HaveCount(4);
            chunks.Should().Match(c => c.All(m => m.RawContent.Length < 1000));
        }
        public void ChunkIfNeeded_SmallMessage_ReturnedWithoutChanges()
        {
            var message = new BinaryMessage
            {
                MessageId = Guid.NewGuid(),
                Content   = GetByteArray(100)
            };
            var headers           = new MessageHeaderCollection();
            var serializedMessage = _serializer.Serialize(message, headers);
            var rawBrokerMessage  =
                new RawBrokerMessage(message, headers,
                                     new TestProducerEndpoint("test")
            {
                Chunk = new ChunkSettings
                {
                    Size = 500
                }
            })
            {
                RawContent = serializedMessage
            };

            var chunks = ChunkProducer.ChunkIfNeeded(rawBrokerMessage);

            chunks.Should().HaveCount(1);
            chunks.First().Should().BeEquivalentTo(rawBrokerMessage);
        }
Exemplo n.º 3
0
        private IEnumerable <RawBrokerMessage> GetRawMessages(object content, IEnumerable <MessageHeader> headers)
        {
            var headersCollection = new MessageHeaderCollection(headers);

            _messageKeyProvider.EnsureKeyIsInitialized(content, headersCollection);
            var rawMessage = new RawBrokerMessage(content, headersCollection, Endpoint);

            return(ChunkProducer.ChunkIfNeeded(rawMessage));
        }
Exemplo n.º 4
0
        private IEnumerable <(object message, byte[] serializedMessage)> GetMessageContentChunks(object message)
        {
            _messageKeyProvider.EnsureKeyIsInitialized(message);

            return(ChunkProducer.ChunkIfNeeded(
                       _messageKeyProvider.GetKey(message, false),
                       message,
                       (Endpoint as IProducerEndpoint)?.Chunk,
                       Endpoint.Serializer));
        }
Exemplo n.º 5
0
        public void ChunkIfNeeded_SmallMessage_ReturnedWithoutChanges()
        {
            var message = new BinaryMessage
            {
                MessageId = Guid.NewGuid(),
                Content   = GetByteArray(100)
            };
            var serializedMessage = _serializer.Serialize(message);

            var chunks = ChunkProducer.ChunkIfNeeded(message.MessageId.ToString(), message, new ChunkSettings
            {
                Size = 500
            }, _serializer);

            chunks.Should().HaveCount(1);
            chunks.First().Should().BeEquivalentTo((message, serializedMessage));
        }
Exemplo n.º 6
0
        public void ChunkIfNeeded_LargeMessage_Chunked()
        {
            var message = new BinaryMessage
            {
                MessageId = Guid.NewGuid(),
                Content   = GetByteArray(1400)
            };
            var serializedMessage = _serializer.Serialize(message);

            var chunks = ChunkProducer.ChunkIfNeeded(message.MessageId.ToString(), message, new ChunkSettings
            {
                Size = 500
            }, _serializer);

            chunks.Should().HaveCount(5);
            chunks.Should().Match(c => c.All(t => t.Item1 is MessageChunk));
            chunks.Should().Match(c => c.All(t => t.Item2.Length < 1000));
        }