@@ -6,6 +6,31 @@ namespace CHttpServer.Tests.Http3;
66
77public class QPackEncoderTests
88{
9+ [ Fact ]
10+ public async Task EncodeStatusCode200 ( )
11+ {
12+ var stream = new MemoryStream ( ) ;
13+ var writer = new Http3FramingStreamWriter ( stream , 1 ) ;
14+ var sut = new QPackDecoder ( ) ;
15+ sut . Encode ( 200 , new Http3ResponseHeaderCollection ( ) , writer ) ;
16+ await writer . FlushAsync ( TestContext . Current . CancellationToken ) ;
17+
18+ byte [ ] expected = [ 1 , 3 , 0 , 0 , 25 | 0b1100_0000 ] ;
19+ Assert . True ( expected . SequenceEqual ( stream . ToArray ( ) ) ) ;
20+ }
21+
22+ [ Fact ]
23+ public async Task EncodeStatusCode103 ( )
24+ {
25+ var stream = new MemoryStream ( ) ;
26+ var writer = new Http3FramingStreamWriter ( stream , 2 ) ;
27+ var sut = new QPackDecoder ( ) ;
28+ sut . Encode ( 103 , new Http3ResponseHeaderCollection ( ) , writer ) ;
29+ await writer . FlushAsync ( TestContext . Current . CancellationToken ) ;
30+ byte [ ] expected = [ 2 , 3 , 0 , 0 , 24 | 0b1100_0000 ] ;
31+ Assert . True ( expected . SequenceEqual ( stream . ToArray ( ) ) ) ;
32+ }
33+
934 [ Fact ]
1035 public async Task EncodeLiteralFieldWithLiteralValue ( )
1136 {
@@ -62,7 +87,7 @@ public async Task EncodeIndexedFieldWithIndexedValue(byte index)
6287 }
6388
6489 [ Fact ]
65- public async Task EncodeStatusCode ( )
90+ public async Task EncodeStatusCodeRaw200 ( )
6691 {
6792 var stream = new MemoryStream ( ) ;
6893 var pipe = PipeWriter . Create ( stream ) ;
@@ -72,6 +97,17 @@ public async Task EncodeStatusCode()
7297 Assert . True ( stream . ToArray ( ) . SequenceEqual ( new byte [ ] { 0x00 , 0x00 , 0xD9 } ) ) ;
7398 }
7499
100+ [ Fact ]
101+ public async Task EncodeStatusCodeRaw8 ( )
102+ {
103+ var stream = new MemoryStream ( ) ;
104+ var pipe = PipeWriter . Create ( stream ) ;
105+ QPackDecoder sut = new ( ) ;
106+ sut . Encode ( 8 , [ ] , pipe ) ;
107+ await pipe . FlushAsync ( TestContext . Current . CancellationToken ) ;
108+ Assert . True ( stream . ToArray ( ) . SequenceEqual ( new byte [ ] { 0x00 , 0x00 , 0x7F , 0x37 , 0x01 , 0x38 } ) ) ;
109+ }
110+
75111 [ Fact ]
76112 public async Task EncodeWithoutStatusCode ( )
77113 {
0 commit comments