public async Task Return_Timeout_When_No_Additions_Occured() { var key = fixture.NewKey(); var xadd = new XADD(key, ("Field", "Value")); await fixture.ExecuteAsync(xadd).ConfigureAwait(false); var sut = new XREAD.BLOCK(Count.Unbound, new MillisecondsTimeout(10), (key, Offset.EndOfStream)); var response = await fixture.ExecuteAsync(sut).ConfigureAwait(false); response.Outcome.Should().Be(XREAD.BLOCK.Outcome.Timeout); }
public async Task Return_Single_Entry() { var key = fixture.NewKey(); var group = new GroupName("group-1"); var xadd = new XADD(key, ("name", "value")); var xgroupCreate = new XGROUP.CREATE(key, group, Offset.FromId(Id.Minimum), NotCreateStream); await fixture.ExecuteAsync(xadd).ConfigureAwait(false); await fixture.ExecuteAsync(xgroupCreate).ConfigureAwait(false); var sut = new XREADGROUP.New(group, "consumer-1", Count.Unbound, NotRequireAcknowledgment, key); var entries = await fixture.ExecuteAsync(sut).ConfigureAwait(false); Equals(entries, new Stream(key, new Entry(("name", "value")))); }
public async Task Exploratory_1() { var key = fixture.NewKey(); var group = new GroupName("group-1"); var xadd = new XADD(key, ("name", "value")); var xgroupCreate = new XGROUP.CREATE(key, group, Offset.FromId(Id.Minimum), NotCreateStream); await fixture.ExecuteAsync(xadd).ConfigureAwait(false); await fixture.ExecuteAsync(xgroupCreate).ConfigureAwait(false); var @new = new PlainCommand("XREADGROUP", "GROUP", "group-1", "consumer", "STREAMS", key.ToBytes(), ">") .WithResponseStructure(CompositeVisitors.StreamEntriesList); var entries = await fixture.ExecuteAsync(@new).ConfigureAwait(false); Equals(entries, new Stream(key, new Entry(("name", "value")))); }
public async Task Read_Added_Entry() { var key = fixture.NewKey(); var xadd = new XADD(key, ("Field", "Value")); var addResponse = await fixture.ExecuteAsync(xadd).ConfigureAwait(false); var sut = new XREAD(Count.Unbound, (key, Id.Minimum)); var response = await fixture.ExecuteAsync(sut).ConfigureAwait(false); response.Should().HaveCount(1); var entries = response[0]; entries.Stream.ToBytes().Should().Equal(key.ToBytes()); entries.Should().HaveCount(1); entries[0].Id.Should().Be(addResponse.AddedEntryId); entries[0].Should().Equal(("Field", "Value")); }