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).
-
#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 = {} @messages = [] set_expected_number(:exactly, 1) end |
Instance Method Details
#at_least(count) ⇒ HaveSentKafkaMessage
Set the expected amount of message (at least).
59 60 61 62 |
# File 'lib/rimless/rspec/matchers.rb', line 59 def at_least(count) set_expected_number(:at_least, count) self end |
#at_most(count) ⇒ HaveSentKafkaMessage
Set the expected amount of message (at most).
68 69 70 71 |
# File 'lib/rimless/rspec/matchers.rb', line 68 def at_most(count) set_expected_number(:at_most, count) self end |
#does_not_match?(proc) ⇒ Boolean
The actual RSpec API check for the expectation (negative).
128 129 130 131 132 |
# File 'lib/rimless/rspec/matchers.rb', line 128 def does_not_match?(proc) set_expected_number(:at_least, 1) !matches?(proc) end |
#exactly(count) ⇒ HaveSentKafkaMessage
Set the expected amount of message (exactly).
50 51 52 53 |
# File 'lib/rimless/rspec/matchers.rb', line 50 def exactly(count) set_expected_number(:exactly, count) self end |
#matches?(proc) ⇒ Boolean
The actual RSpec API check for the expectation.
112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/rimless/rspec/matchers.rb', line 112 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.
83 84 85 |
# File 'lib/rimless/rspec/matchers.rb', line 83 def once exactly(:once) end |
#supports_block_expectations? ⇒ Boolean
Serve the RSpec matcher API and signalize we support block evaluation.
104 105 106 |
# File 'lib/rimless/rspec/matchers.rb', line 104 def supports_block_expectations? true end |
#thrice ⇒ HaveSentKafkaMessage
Just syntactic sugar for a regular exactly(:thrice) call.
97 98 99 |
# File 'lib/rimless/rspec/matchers.rb', line 97 def thrice exactly(:thrice) end |
#times ⇒ HaveSentKafkaMessage
Just syntactic sugar.
76 77 78 |
# File 'lib/rimless/rspec/matchers.rb', line 76 def times self end |
#twice ⇒ HaveSentKafkaMessage
Just syntactic sugar for a regular exactly(:twice) call.
90 91 92 |
# File 'lib/rimless/rspec/matchers.rb', line 90 def twice exactly(:twice) end |
#with(**args) ⇒ HaveSentKafkaMessage
Collect the expectation arguments for the Kafka message passing. (eg. topic)
31 32 33 34 |
# File 'lib/rimless/rspec/matchers.rb', line 31 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.
41 42 43 44 |
# File 'lib/rimless/rspec/matchers.rb', line 41 def with_data(**args) @data = args self end |