Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit cca53f2

Browse files
last stream version and position is required for stream reads
1 parent f4ba746 commit cca53f2

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

src/SqlStreamStore.HAL.Tests/StreamNavigationTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Net;
66
using System.Threading.Tasks;
77
using Shouldly;
8+
using SqlStreamStore.Streams;
89
using Xunit;
910

1011
public class StreamNavigationTests : IDisposable
@@ -128,5 +129,23 @@ public async Task read_first_link_when_multiple_pages(string stream, string base
128129
resource.ShouldLink("streamStore:feed", $"{stream}?{LastLinkQuery}");
129130
}
130131
}
132+
133+
[Fact]
134+
public async Task read_stream_should_include_the_last_position_and_version()
135+
{
136+
await _fixture.WriteNMessages("a-stream", 30);
137+
138+
var page = await _fixture.StreamStore.ReadStreamForwards("a-stream", StreamVersion.Start, 10, false);
139+
140+
using(var response = await _fixture.HttpClient.GetAsync($"/streams/a-stream"))
141+
{
142+
response.StatusCode.ShouldBe(HttpStatusCode.OK);
143+
144+
var resource = await response.AsHal();
145+
146+
((int)resource.State.lastStreamVersion).ShouldBe(page.LastStreamVersion);
147+
((long)resource.State.lastStreamPosition).ShouldBe(page.LastStreamPosition);
148+
}
149+
}
131150
}
132151
}

src/SqlStreamStore.HAL/StreamResource.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,11 @@ public async Task<Response> GetPage(ReadStreamOptions options, CancellationToken
105105
.ToArray());
106106

107107
return new Response(
108-
new HALResponse(new object())
108+
new HALResponse(new
109+
{
110+
page.LastStreamVersion,
111+
page.LastStreamPosition
112+
})
109113
.AddLinks(StreamLinks.Self(options))
110114
.AddLinks(StreamLinks.Navigation(page, options.Self))
111115
.AddLinks(StreamLinks.Feed(page))

0 commit comments

Comments
 (0)