lib/soaspec/accessors.rb in soaspec-0.0.35 vs lib/soaspec/accessors.rb in soaspec-0.0.36

- old
+ new

@@ -1,15 +1,16 @@ module Soaspec # Describes methods test handlers use to easily set attributes # Some are included in 'success scenarios' and to configure the request sent module Accessors - # Defines expected_mandatory_elements method used in 'success_scenarios' shared examples + # Defines expected_mandatory_elements method used in 'success_scenario' shared examples # to indicate certain elements must be present - # @param [Array] elements Array of symbols specifying expected element names for 'success_scearios' in snakecase + # @param [Array] elements Array of symbols specifying expected element names for 'success scenario' in snakecase def mandatory_elements(elements) define_method('expected_mandatory_elements') do + return [elements] if elements.is_a?(String) || elements.is_a?(Symbol) elements end end # Defines mandatory xpaths value pairs to be included in 'success scenario' shared example @@ -24,9 +25,26 @@ # def mandatory_xpath_values(xpath_value_pairs) raise ArgumentError('Hash of {xpath => expected values} expected ') unless xpath_value_pairs.is_a? Hash define_method('expected_mandatory_xpath_values') do xpath_value_pairs + end + end + + # Defines mandatory json path value pairs to be included in 'success scenario' shared example + # + # @example Inside class + # mandatory_json_values '$..GetWeatherResult' => 'Found' + # + # In test + # describe Exchange(:name) do + # it_behaves_like 'success scenario' # Includes json pair validation + # end + # + def mandatory_json_values(json_value_pairs) + raise ArgumentError('Hash of {jsonpath => expected values} expected ') unless json_value_pairs.is_a? Hash + define_method('expected_mandatory_json_values') do + json_value_pairs end end end end \ No newline at end of file