コード例 #1
0
ファイル: XREAD_BLOCK_Should.cs プロジェクト: pepelev/Rediska
        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);
        }
コード例 #2
0
        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"))));
        }
コード例 #3
0
        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"))));
        }
コード例 #4
0
        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"));
        }