Class: Rimless::RSpec::Matchers::HaveSentKafkaMessage
- Inherits:
-
RSpec::Matchers::BuiltIn::BaseMatcher
- Object
- RSpec::Matchers::BuiltIn::BaseMatcher
- Rimless::RSpec::Matchers::HaveSentKafkaMessage
- Includes:
- RSpec::Mocks::ExampleMethods
- Defined in:
- lib/rimless/rspec/matchers.rb
Overview
The Apache Kafka message expectation.
rubocop:disable Metrics/ClassLength because its almost RSpec API code
Instance Method Summary collapse
-
#at_least(count) ⇒ HaveSentKafkaMessage
Set the expected amount of message (at least).
-
#at_most(count) ⇒ HaveSentKafkaMessage
Set the expected amount of message (at most).
-
#capture { ... } ⇒ Array<Hash{Symbol => Mixed}>
Capture all Apache Kafka messages of the given block.
-
#does_not_match?(proc) ⇒ Boolean
The actual RSpec API check for the expectation (negative).
-
#exactly(count) ⇒ HaveSentKafkaMessage
Set the expected amount of message (exactly).
-
#initialize(schema) ⇒ HaveSentKafkaMessage
constructor
Instantiate a new expectation object.
-
#matches?(proc) ⇒ Boolean
The actual RSpec API check for the expectation.
-
#once ⇒ HaveSentKafkaMessage
Just syntactic sugar for a regular exactly(:once) call.
-
#supports_block_expectations? ⇒ Boolean
Serve the RSpec matcher API and signalize we support block evaluation.
-
#thrice ⇒ HaveSentKafkaMessage
Just syntactic sugar for a regular exactly(:thrice) call.
-
#times ⇒ HaveSentKafkaMessage
Just syntactic sugar.
-
#twice ⇒ HaveSentKafkaMessage
Just syntactic sugar for a regular exactly(:twice) call.
-
#with(**args) ⇒ HaveSentKafkaMessage
Collect the expectation arguments for the Kafka message passing.
-
#with_data(**args) ⇒ HaveSentKafkaMessage
Collect the expectations for the encoded message.
Constructor Details
#initialize(schema) ⇒ HaveSentKafkaMessage
Instantiate a new expectation object.
18 19 20 21 22 23 24 |
# File 'lib/rimless/rspec/matchers.rb', line 18 def initialize(schema) @schema = schema @args = {} @data = {} = [] set_expected_number(:exactly, 1) end |
Instance Method Details
#at_least(count) ⇒ HaveSentKafkaMessage
Set the expected amount of message (at least).
68 69 70 71 |
# File 'lib/rimless/rspec/matchers.rb', line 68 def at_least(count) set_expected_number(:at_least, count) self end |
#at_most(count) ⇒ HaveSentKafkaMessage
Set the expected amount of message (at most).
77 78 79 80 |
# File 'lib/rimless/rspec/matchers.rb', line 77 def at_most(count) set_expected_number(:at_most, count) self end |
#capture { ... } ⇒ Array<Hash{Symbol => Mixed}>
Capture all Apache Kafka messages of the given block.
30 31 32 33 |
# File 'lib/rimless/rspec/matchers.rb', line 30 def capture(&block) matches?(block) end |
#does_not_match?(proc) ⇒ Boolean
The actual RSpec API check for the expectation (negative).
137 138 139 140 141 |
# File 'lib/rimless/rspec/matchers.rb', line 137 def does_not_match?(proc) set_expected_number(:at_least, 1) !matches?(proc) end |
#exactly(count) ⇒ HaveSentKafkaMessage
Set the expected amount of message (exactly).
59 60 61 62 |
# File 'lib/rimless/rspec/matchers.rb', line 59 def exactly(count) set_expected_number(:exactly, count) self end |
#matches?(proc) ⇒ Boolean
The actual RSpec API check for the expectation.
121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/rimless/rspec/matchers.rb', line 121 def matches?(proc) unless proc.is_a? Proc raise ArgumentError, 'have_sent_kafka_message and ' \ 'sent_kafka_message only support block ' \ 'expectations' end proc.call check end |
#once ⇒ HaveSentKafkaMessage
Just syntactic sugar for a regular exactly(:once) call.
92 93 94 |
# File 'lib/rimless/rspec/matchers.rb', line 92 def once exactly(:once) end |
#supports_block_expectations? ⇒ Boolean
Serve the RSpec matcher API and signalize we support block evaluation.
113 114 115 |
# File 'lib/rimless/rspec/matchers.rb', line 113 def supports_block_expectations? true end |
#thrice ⇒ HaveSentKafkaMessage
Just syntactic sugar for a regular exactly(:thrice) call.
106 107 108 |
# File 'lib/rimless/rspec/matchers.rb', line 106 def thrice exactly(:thrice) end |
#times ⇒ HaveSentKafkaMessage
Just syntactic sugar.
85 86 87 |
# File 'lib/rimless/rspec/matchers.rb', line 85 def times self end |
#twice ⇒ HaveSentKafkaMessage
Just syntactic sugar for a regular exactly(:twice) call.
99 100 101 |
# File 'lib/rimless/rspec/matchers.rb', line 99 def twice exactly(:twice) end |
#with(**args) ⇒ HaveSentKafkaMessage
Collect the expectation arguments for the Kafka message passing. (eg. topic)
40 41 42 43 |
# File 'lib/rimless/rspec/matchers.rb', line 40 def with(**args) @args = args self end |
#with_data(**args) ⇒ HaveSentKafkaMessage
Collect the expectations for the encoded message. The passed message will be decoded accordingly for the check.
50 51 52 53 |
# File 'lib/rimless/rspec/matchers.rb', line 50 def with_data(**args) @data = args self end |