public async Task GetSequence_ChunkForExistingSequence_SequenceReturned() { var envelope1 = new RawInboundEnvelope( new byte[] { 0x01, 0x02, 0x03 }, new MessageHeaderCollection { { DefaultMessageHeaders.MessageId, "123" }, { DefaultMessageHeaders.ChunkIndex, "0" }, { DefaultMessageHeaders.ChunksCount, "4" } }, new TestConsumerEndpoint("test"), "test", new TestOffset()); var envelope2 = new RawInboundEnvelope( new byte[] { 0x04, 0x05, 0x06 }, new MessageHeaderCollection { { DefaultMessageHeaders.MessageId, "123" }, { DefaultMessageHeaders.ChunkIndex, "1" }, { DefaultMessageHeaders.ChunksCount, "4" } }, new TestConsumerEndpoint("test"), "test", new TestOffset()); var reader = new ChunkSequenceReader(); var context1 = ConsumerPipelineContextHelper.CreateSubstitute( envelope1, sequenceStore: _defaultSequenceStore); var sequence1 = await reader.GetSequenceAsync(context1); sequence1.Should().NotBeNull(); sequence1.Should().BeOfType <ChunkSequence>(); sequence1 !.TotalLength.Should().Be(4); sequence1.IsNew.Should().BeTrue(); var context2 = ConsumerPipelineContextHelper.CreateSubstitute( envelope2, sequenceStore: _defaultSequenceStore); var sequence2 = await reader.GetSequenceAsync(context2); sequence2.Should().NotBeNull(); sequence2.Should().BeSameAs(sequence1); sequence2 !.IsNew.Should().BeFalse(); }
public async Task GetSequence_FirstChunk_SequenceReturned() { var envelope = new RawInboundEnvelope( new byte[] { 0x01, 0x02, 0x03 }, new MessageHeaderCollection { { DefaultMessageHeaders.MessageId, "123" }, { DefaultMessageHeaders.ChunkIndex, "0" }, { DefaultMessageHeaders.ChunksCount, "4" } }, new TestConsumerEndpoint("test"), "test", new TestOffset()); var context = ConsumerPipelineContextHelper.CreateSubstitute( envelope, sequenceStore: _defaultSequenceStore); var sequence = await new ChunkSequenceReader().GetSequenceAsync(context); sequence.Should().NotBeNull(); sequence !.TotalLength.Should().Be(4); sequence.IsNew.Should().BeTrue(); }