Example #1
0
        public void Should_be_able_to_build_instance_from_builder()
        {
            ConsumerOptions options = new ConsumerOptions.Builder()
                                      .StopConsumingAtEOF()
                                      .FromOffset(12)
                                      .WithGroupId("my-group-id")
                                      .Build();

            Assert.That(options.StartOffset, Is.EqualTo(12));
            Assert.That(options.ConsumerGroupId, Is.EqualTo("my-group-id"));
            Assert.That(options.StopConsumingAtEOF, Is.True);
        }
Example #2
0
        public async Task Should_be_able_to_consume_from_an_empty_stream()
        {
            _log
            .Setup(log => log.RetrieveEntryAsync("test-stream", 0))
            .ReturnsAsync(() => null);

            var options = new ConsumerOptions.Builder()
                          .StopConsumingAtEOF()
                          .Build();

            await foreach (var _ in _consumer.ConsumeAsync("test-stream", options))
            {
                Assert.Fail("Stream is empty, should not consume anything");
            }

            Assert.Pass();
        }
Example #3
0
        public async Task <int> ReadFull()
        {
            var num = 0;

            var options = new ConsumerOptions.Builder()
                          .StopConsumingAtEOF()
                          .Build();

            await foreach (var msg in _consumer.ConsumeAsync("number-added", options))
            {
                var msgStr = Encoding.UTF8.GetString(msg);
                num += JsonConvert.DeserializeObject <NumberAdded>(msgStr).Num;
            }

            await foreach (var msg in _consumer.ConsumeAsync("number-subtracted", options))
            {
                num -= JsonConvert.DeserializeObject <NumberAdded>(Encoding.UTF8.GetString(msg)).Num;
            }

            return(num);
        }
        public async Task Should_be_able_to_append_logs_to_a_stream_and_consume()
        {
            var payloads = new[] { "abc", "def", "ghi" };

            await _log.AppendAsync("my-stream", Encoding.UTF8.GetBytes(payloads[0]));

            await _log.AppendAsync("my-stream", Encoding.UTF8.GetBytes(payloads[1]));

            await _log.AppendAsync("my-stream", Encoding.UTF8.GetBytes(payloads[2]));

            var options = new ConsumerOptions.Builder()
                          .StopConsumingAtEOF()
                          .Build();

            var expectedPayloadIndex = 0;

            await foreach (var logEntry in _consumer.ConsumeAsync("my-stream", options))
            {
                var payload = logEntry != null?Encoding.UTF8.GetString(logEntry) : null;

                Assert.That(payload, Is.EqualTo(payloads[expectedPayloadIndex]));
                expectedPayloadIndex++;
            }
        }