module MR::JsonField::TestHelpers::InstanceMethods
Public Instance Methods
assert_json_field(subject, field_name, options = nil)
click to toggle source
# File lib/mr/json_field.rb, line 139 def assert_json_field(subject, field_name, options = nil) assert_json_field_reader(subject, field_name, options) assert_json_field_writer(subject, field_name, options) end
assert_json_field_reader(subject, field_name, options = nil)
click to toggle source
# File lib/mr/json_field.rb, line 144 def assert_json_field_reader(subject, field_name, options = nil) options ||= {} source_field_name = options[:source] || "#{field_name}_json" # set a value to read if it's `nil` if subject.send(source_field_name).nil? encoded_value = MR::JsonField.encode({ MR::Factory.string => MR::Factory.string }) subject.send("#{source_field_name}=", encoded_value) end assert_respond_to "#{field_name}", subject exp = MR::JsonField.decode(subject.send"#{source_field_name}") assert_equal exp, subject.send("#{field_name}") end
assert_json_field_writer(subject, field_name, options = nil)
click to toggle source
# File lib/mr/json_field.rb, line 161 def assert_json_field_writer(subject, field_name, options = nil) options ||= {} source_field_name = options[:source] || "#{field_name}_json" assert_respond_to "#{field_name}=", subject new_value = { MR::Factory.string => MR::Factory.string } subject.send("#{field_name}=", new_value) exp = MR::JsonField.encode(new_value) assert_equal exp, subject.send("#{source_field_name}") end