Module: Micro::Case::Check::Enabled
Instance Method Summary collapse
- #expected_result!(result, context) ⇒ Object
- #expected_self_result!(actual, expected, context) ⇒ Object
- #flow_use_cases!(use_cases) ⇒ Object
- #hash!(arg) ⇒ Object
- #map_args!(args) ⇒ Object
- #micro_case_instance!(arg) ⇒ Object
- #result_data!(data, is_success, type, use_case) ⇒ Object
- #result_instance!(arg) ⇒ Object
- #result_not_defined!(is_defined) ⇒ Object
- #result_type!(type) ⇒ Object
- #results_contract!(use_case_class, kind, type, value) ⇒ Object
- #then_use_case_or_flow!(arg, owner_label) ⇒ Object
- #use_case_or_flow!(arg) ⇒ Object
Instance Method Details
#expected_result!(result, context) ⇒ Object
33 34 35 36 37 |
# File 'lib/micro/case/check.rb', line 33 def expected_result!(result, context) return if result.is_a?(::Micro::Case::Result) raise Error::UnexpectedResult.new(context) end |
#expected_self_result!(actual, expected, context) ⇒ Object
39 40 41 42 43 |
# File 'lib/micro/case/check.rb', line 39 def expected_self_result!(actual, expected, context) return if actual.equal?(expected) raise Error::UnexpectedResult.new(context) end |
#flow_use_cases!(use_cases) ⇒ Object
51 52 53 |
# File 'lib/micro/case/check.rb', line 51 def flow_use_cases!(use_cases) raise Cases::Error::InvalidUseCases if use_cases.none?(&::Micro::Cases::Flow::IsAValidUseCase) end |
#hash!(arg) ⇒ Object
59 60 61 |
# File 'lib/micro/case/check.rb', line 59 def hash!(arg) Kind::Hash[arg] end |
#map_args!(args) ⇒ Object
55 56 57 |
# File 'lib/micro/case/check.rb', line 55 def map_args!(args) raise Cases::Error::InvalidUseCases unless ::Micro::Cases::Map.const_get(:HasValidArgs, false)[args] end |
#micro_case_instance!(arg) ⇒ Object
13 14 15 |
# File 'lib/micro/case/check.rb', line 13 def micro_case_instance!(arg) raise Error::InvalidUseCase unless arg.is_a?(::Micro::Case) end |
#result_data!(data, is_success, type, use_case) ⇒ Object
29 30 31 |
# File 'lib/micro/case/check.rb', line 29 def result_data!(data, is_success, type, use_case) raise Error::InvalidResult.new(is_success, type, use_case) unless data end |
#result_instance!(arg) ⇒ Object
17 18 19 |
# File 'lib/micro/case/check.rb', line 17 def result_instance!(arg) raise Error::InvalidResultInstance unless arg.is_a?(::Micro::Case::Result) end |
#result_not_defined!(is_defined) ⇒ Object
21 22 23 |
# File 'lib/micro/case/check.rb', line 21 def result_not_defined!(is_defined) raise Error::ResultIsAlreadyDefined if is_defined end |
#result_type!(type) ⇒ Object
25 26 27 |
# File 'lib/micro/case/check.rb', line 25 def result_type!(type) raise Error::InvalidResultType unless type.is_a?(Symbol) end |
#results_contract!(use_case_class, kind, type, value) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/micro/case/check.rb', line 63 def results_contract!(use_case_class, kind, type, value) contract = use_case_class.__results_contract__ return unless contract return unless type.is_a?(Symbol) return if value.is_a?(Exception) if kind == :success declared = contract.success_declared?(type) declared_types = contract.successes.keys required = contract.success_keys(type) if declared else declared = contract.failure_declared?(type) declared_types = contract.failures.keys required = contract.failure_keys(type) if declared end raise Error::UnexpectedResultType.new(use_case_class, kind, type, declared_types) unless declared return if required.nil? || required.empty? if value.is_a?(Hash) data_keys = value.keys.map { |k| k.is_a?(String) ? k.to_sym : k } elsif value.is_a?(Symbol) data_keys = [type] else return end missing = required - data_keys raise Error::MissingResultKeys.new(use_case_class, kind, type, missing) unless missing.empty? end |
#then_use_case_or_flow!(arg, owner_label) ⇒ Object
45 46 47 48 49 |
# File 'lib/micro/case/check.rb', line 45 def then_use_case_or_flow!(arg, owner_label) return if ::Micro.case_or_flow?(arg) raise Error::InvalidInvocationOfTheThenMethod.new(owner_label) end |
#use_case_or_flow!(arg) ⇒ Object
9 10 11 |
# File 'lib/micro/case/check.rb', line 9 def use_case_or_flow!(arg) raise Error::InvalidUseCase unless ::Micro.case_or_flow?(arg) end |