33 using System ;
44 using System . Collections . Generic ;
55 using System . Net ;
6+ using System . Net . Http . Headers ;
67 using System . Threading . Tasks ;
78 using Shouldly ;
89 using SqlStreamStore . Streams ;
@@ -37,6 +38,10 @@ public async Task read_head_link_no_messages(string stream, string baseAddress,
3738 using ( var response = await _fixture . HttpClient . GetAsync ( $ "{ baseAddress } { firstResponse . Headers . Location } ") )
3839 {
3940 response . StatusCode . ShouldBe ( statusCode ) ;
41+ var eTag = IsAllStream ( stream )
42+ ? ETag . FromPosition ( Position . End )
43+ : ETag . FromStreamVersion ( StreamVersion . End ) ;
44+ response . Headers . ETag . ShouldBe ( new EntityTagHeaderValue ( eTag ) ) ;
4045
4146 var resource = await response . AsHal ( ) ;
4247
@@ -64,7 +69,7 @@ public static IEnumerable<object[]> GetPagingCases()
6469 [ Theory , MemberData ( nameof ( GetPagingCases ) ) ]
6570 public async Task read_head_link_when_multiple_pages ( string stream , string baseAddress )
6671 {
67- await _fixture . WriteNMessages ( "a-stream" , 30 ) ;
72+ var result = await _fixture . WriteNMessages ( "a-stream" , 30 ) ;
6873
6974 using ( var firstResponse = await _fixture . HttpClient . GetAsync ( $ "{ baseAddress } { stream } ") )
7075 {
@@ -74,6 +79,10 @@ public async Task read_head_link_when_multiple_pages(string stream, string baseA
7479 await _fixture . HttpClient . GetAsync ( $ "{ baseAddress } { firstResponse . Headers . Location } ") )
7580 {
7681 response . StatusCode . ShouldBe ( HttpStatusCode . OK ) ;
82+ var eTag = IsAllStream ( stream )
83+ ? ETag . FromPosition ( result . CurrentPosition )
84+ : ETag . FromStreamVersion ( result . CurrentVersion ) ;
85+ response . Headers . ETag . ShouldBe ( new EntityTagHeaderValue ( eTag ) ) ;
7786
7887 var resource = await response . AsHal ( ) ;
7988
@@ -98,11 +107,15 @@ await _fixture.HttpClient.GetAsync($"{baseAddress}{firstResponse.Headers.Locatio
98107 [ Theory , MemberData ( nameof ( GetPagingCases ) ) ]
99108 public async Task read_first_link ( string stream , string baseAddress )
100109 {
101- await _fixture . WriteNMessages ( "a-stream" , 10 ) ;
110+ var result = await _fixture . WriteNMessages ( "a-stream" , 10 ) ;
102111
103112 using ( var response = await _fixture . HttpClient . GetAsync ( $ "{ baseAddress } { stream } ?{ FirstLinkQuery } ") )
104113 {
105114 response . StatusCode . ShouldBe ( HttpStatusCode . OK ) ;
115+ var eTag = IsAllStream ( stream )
116+ ? ETag . FromPosition ( result . CurrentPosition )
117+ : ETag . FromStreamVersion ( result . CurrentVersion ) ;
118+ response . Headers . ETag . ShouldBe ( new EntityTagHeaderValue ( eTag ) ) ;
106119
107120 var resource = await response . AsHal ( ) ;
108121
0 commit comments