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); }
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(); }
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++; } }