summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorpjskennedy <[email protected]>2022-03-06 19:12:24 -0800
committerpjskennedy <[email protected]>2022-03-06 19:12:24 -0800
commite92da874f5addf7caa265d58741c652a05e331b7 (patch)
tree3d94ab92b28d8b844f379e122ecf78dc659996b6
parentd800d9a46e79ea2749d38e40cf4f0dabcda59d3f (diff)
downloadcaxlsx-e92da874f5addf7caa265d58741c652a05e331b7.tar.gz
caxlsx-e92da874f5addf7caa265d58741c652a05e331b7.zip
Added a spec for instance_values_for
-rw-r--r--test/tc_axlsx.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/tc_axlsx.rb b/test/tc_axlsx.rb
index 55bca1f4..e58ebafe 100644
--- a/test/tc_axlsx.rb
+++ b/test/tc_axlsx.rb
@@ -106,4 +106,30 @@ class TestAxlsx < Test::Unit::TestCase
assert_equal(sanitized_str, legit_str, 'should preserve value')
assert_equal(sanitized_str.object_id, legit_str.object_id, 'should preserve object')
end
+
+ class InstanceValuesSubject
+ def initialize(args={})
+ args.each do |key, v|
+ instance_variable_set("@#{key}".to_sym, v)
+ end
+ end
+ end
+
+ def test_instance_values_for
+ empty = InstanceValuesSubject.new
+ assert_equal({}, Axlsx.instance_values_for(empty), 'should generate with no ivars')
+
+ single = InstanceValuesSubject.new(a: 2)
+ assert_equal({"a" => 2}, Axlsx.instance_values_for(single), 'should generate for a single ivar')
+
+ double = InstanceValuesSubject.new(a: 2, b: "c")
+ assert_equal({"a" => 2, "b" => "c"}, Axlsx.instance_values_for(double), 'should generate for multiple ivars')
+
+ inner_obj = Object.new
+ complex = InstanceValuesSubject.new(obj: inner_obj)
+ assert_equal({"obj" => inner_obj}, Axlsx.instance_values_for(complex), 'should pass value of ivar directly')
+
+ nil_subject = InstanceValuesSubject.new(nil_obj: nil)
+ assert_equal({"nil_obj" => nil}, Axlsx.instance_values_for(nil_subject), 'should return nil ivars')
+ end
end