internal MultipartLogEntry(MultipartSection section) : base(section.Body, true) { HeadersReader <StringValues> headers = GetHeaders(section).TryGetValue; Term = ParseHeader(RequestVoteMessage.RecordTermHeader, headers, Int64Parser); Timestamp = ParseHeader(HeaderNames.LastModified, headers, Rfc1123Parser);
private CustomMessage(HeadersReader <StringValues> headers, Stream body, ContentType contentType, long?length) : base(headers) { Mode = ParseHeader(DeliveryModeHeader, headers, DeliveryModeParser); RespectLeadership = ParseHeader(RespectLeadershipHeader, headers, BooleanParser); Message = new InboundMessageContent(body, ParseHeader(MessageNameHeader, headers), contentType, length); }
private AppendEntriesMessage(HeadersReader <StringValues> headers) : base(headers) { PrevLogIndex = ParseHeader(PrecedingRecordIndexHeader, headers, Int64Parser); PrevLogTerm = ParseHeader(PrecedingRecordTermHeader, headers, Int64Parser); CommitIndex = ParseHeader(CommitIndexHeader, headers, Int64Parser); }
public async Task ManyHeadersAsync() { var config = Configuration.For <_ManyHeaders>(Options.Default.NewBuilder().WithRowEnding(RowEndings.CarriageReturnLineFeed).Build()); var csv = string.Join( ",", new[] { nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader1), nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader2), nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader3), nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader4), nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader5), nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader6), nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader7), nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader8), nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader9), nameof(_ManyHeaders.LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongHeader10) } ); await RunAsyncReaderVariants <_ManyHeaders>( Options.Default, async (config, makeReader) => { var c = (ConcreteBoundConfiguration <_ManyHeaders>)config; using (var str = makeReader(csv)) { using var charLookup = ReaderStateMachine.MakeCharacterLookup(c.MemoryPool, c.EscapedValueStartAndStop, c.ValueSeparator, c.EscapeValueEscapeChar, c.CommentChar); using var reader = new HeadersReader <_ManyHeaders>(c, charLookup, str, new BufferWithPushback(MemoryPool <char> .Shared, 500)); var res = await reader.ReadAsync(default);
private InstallSnapshotMessage(HeadersReader <StringValues> headers, out long snapshotTerm, out DateTimeOffset timestamp) : base(headers) { Index = ParseHeader(SnapshotIndexHeader, headers, Int64Parser); snapshotTerm = ParseHeader(SnapshotTermHeader, headers, Int64Parser); timestamp = ParseHeader(HeaderNames.LastModified, headers, DateTimeParser); }
public void Parse_CorrectToken(string input, string tokenText, TokenType type, int tagLevel) { var resToken = new HeadersReader().Read(input, 0); resToken.Tag.Should().Be(type); resToken.Text.Should().Be(tokenText); resToken.TagLevel.Should().Be(tagLevel); }
internal ReceivedLogEntry(MultipartSection section) : base(section.Body, true) { HeadersReader <StringValues> headers = section.Headers.TryGetValue; Term = ParseHeader(RequestVoteMessage.RecordTermHeader, headers, Int64Parser); Timestamp = ParseHeader(HeaderNames.LastModified, headers, DateTimeParser); }
private protected HttpMessage(HeadersReader <StringValues> headers) { var address = ParseHeader(NodeIpHeader, headers, IpAddressParser); var port = ParseHeader(NodePortHeader, headers, Int32Parser); Sender = new IPEndPoint(address, port); MessageType = GetMessageType(headers); Id = ParseHeader(RequestIdHeader, headers); }
private static IEnumerable <ReadOnlyMemory <char> > ToEnumerable <T>(HeadersReader <T> .HeaderEnumerator e) { using (e) { while (e.MoveNext()) { yield return(e.Current); } } }
public void Should_Do_Multiple_reads_Firstread_PART_Does_NOT_Contain_Separator() { //Given const string data = "12345678abc\r\n\r\nandrei"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); byte[] headers = reader.ReadHeaders(); //Then Assert.Equal("12345678abc\r\n\r\n", Encoding.UTF8.GetString(headers)); }
public void Test_ReadHeaders_ReadValue_Smaller_Than_StreamData_MultipleHeaders() { //Given const string data = "12\r\n1234\r\n12345\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Three); byte[] headers = reader.ReadHeaders(); //Then Assert.Null(headers); }
public void Test_ReadHeaders_For_Simple_Case() { //Given const string data = "12345\r\n\r\n678"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, data.Length); byte[] headers = reader.ReadHeaders(); //Then Assert.Equal("12345\r\n\r\n", Encoding.UTF8.GetString(headers)); }
public void Test_ContentLength_Header_Should_Return_Negative_InvalidValue() { //Given const string data = "12\r\nContent-Length: -10\r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); reader.ReadHeaders(); //Then Assert.Equal(-1, reader.ContentLength); }
public void Test_ContentLength_Header_Should_Work_for_UpperCases() { //Given const string data = "12\r\nContent-Length: 10\r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); reader.ReadHeaders(); //Then Assert.Equal(10, reader.ContentLength); }
public void Test_ContentLength_Header_Should_Return_Zero() { //Given const string data = "12\r\ncontent-length: 0\r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); reader.ReadHeaders(); //Then Assert.Equal(0, reader.ContentLength); }
public void Test_Chunked_Header_Should_Return_TRUE_CapitalLetters() { //Given const string data = "12\r\n Transfer - Encoding: chunked\r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); reader.ReadHeaders(); //Then Assert.True(reader.Chunked); }
public void Test_ReadHeaders_Should_Return_Null_When_Separator_Is_Not_Found() { //Given const string data = "1234andrei"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Two); byte[] headers = reader.ReadHeaders(); //Then Assert.Null(headers); }
public void Test_Chunked_Header_Should_Return_False_SimpleCase() { //Given const string data = "12\r\n Transfer\r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); reader.ReadHeaders(); //Then Assert.False(reader.Chunked); }
public void Test_ReadProcess_ReadSize_Overtakes_StreamData_OneHeader_WasFound() { //Given const string data = "12\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Four); byte[] headers = reader.ReadHeaders(); //Then Assert.Null(headers); }
public void Test_ReadHeaders_NULL_After_Reading_MoreBytes_than_StreamData() { //Given const string data = "1234andrei"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); byte[] headers = reader.ReadHeaders(); //Then Assert.Null(headers); }
public void Test_ReadHeaders_Headers_are_Stored_Completely_after_Multiple_Reads() { //Given const string data = "12\r\n34\r\n5678\r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, data.Length); byte[] headers = reader.ReadHeaders(); //Then Assert.Equal(data, Encoding.UTF8.GetString(headers)); }
public void Test_ReadHeaders_EndLine_Is_AtTheEnd() { //Given const string data = "12345678\r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, data.Length); byte[] headers = reader.ReadHeaders(); //Then Assert.Equal("12345678\r\n\r\n", Encoding.UTF8.GetString(headers)); }
public void Should_Correctly_ReadHeaders_EdgeCase_With_MULTIPLE_Reads() { //Given const string data = "12\r\n123\r\n1234\r\n\r\nandrei"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Two); byte[] headers = reader.ReadHeaders(); //Then Assert.Equal("12\r\n123\r\n1234\r\n\r\n", Encoding.UTF8.GetString(headers)); }
public void Test_Chunked_Header_Only_First_HeaderPart_is_contained() { //Given const string data = "12\r\n Transfer - Encoding: \r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); reader.ReadHeaders(); //Then Assert.False(reader.Chunked); }
public void Test_GetRemainder_ReadValue_Smaller_Than_StreamData_MultipleHeaders() { //Given const string data = "12\r\n1234\r\n12345\r\n\r\nab"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Three); reader.ReadHeaders(); byte[] remainder = reader.Remainder; //Then Assert.Equal("ab", Encoding.UTF8.GetString(remainder)); }
public void Test_GetRemainder_Should_Return_Null_When_Separator_Is_Not_Found() { //Given const string data = "1234andrei"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); reader.ReadHeaders(); byte[] remainder = reader.Remainder; //Then Assert.Null(remainder); }
public void Test_GetRemainder_ReadSize_OverTakes_Total_StreamData() { //Given const string data = "1234\r\n\r\nandrei"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, 7); reader.ReadHeaders(); byte[] remainder = reader.Remainder; //Then Assert.Equal("andrei", Encoding.UTF8.GetString(remainder)); }
public void Test_GetRemainder_Should_Return_NULL_After_Multiple_Reads() { //Given const string data = "1234nandrei\r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); reader.ReadHeaders(); byte[] remainder = reader.Remainder; //Then Assert.Null(remainder); }
public void Test_GetRemainder_ReadSize_Overtakes_StreamData_more_Complex_Case() { //Given const string data = "12\r\n34\r\n\r\naa"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Eight); reader.ReadHeaders(); byte[] remainder = reader.Remainder; //Then Assert.Equal("aa", Encoding.UTF8.GetString(remainder)); }
public void Test_GetRemainder_Should_Return_NULL_For_EdgeCase() { //Given const string data = "1234\r\nandrei\r\n\r\n"; var stream = new StubNetworkStream(data); //When var reader = new HeadersReader(stream, Two); reader.ReadHeaders(); byte[] remainder = reader.Remainder; //Then Assert.Null(remainder); }