45 lines
1.0 KiB
Ruby
45 lines
1.0 KiB
Ruby
|
module UnitTests
|
||
|
module ValidationMatcherScenarioHelpers
|
||
|
def self.configure_example_group(example_group)
|
||
|
example_group.include(self)
|
||
|
end
|
||
|
|
||
|
def build_scenario_for_validation_matcher(args)
|
||
|
UnitTests::ValidationMatcherScenario.new(
|
||
|
build_validation_matcher_scenario_args(args)
|
||
|
)
|
||
|
end
|
||
|
|
||
|
protected
|
||
|
|
||
|
def validation_matcher_scenario_args
|
||
|
{}
|
||
|
end
|
||
|
|
||
|
def configure_validation_matcher(matcher)
|
||
|
matcher
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def build_validation_matcher_scenario_args(args)
|
||
|
args.
|
||
|
deep_merge(validation_matcher_scenario_args).
|
||
|
deep_merge(
|
||
|
matcher_name: matcher_name,
|
||
|
matcher_proc: method(matcher_name)
|
||
|
)
|
||
|
end
|
||
|
|
||
|
def matcher_name
|
||
|
validation_matcher_scenario_args.fetch(:matcher_name) do
|
||
|
raise KeyNotFoundError.new(<<-MESSAGE)
|
||
|
Please implement #validation_matcher_scenario_args in your example
|
||
|
group, in such a way that it returns a hash that contains a
|
||
|
:matcher_name key.
|
||
|
MESSAGE
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|