diff options
| author | pjskennedy <[email protected]> | 2022-03-06 19:12:24 -0800 |
|---|---|---|
| committer | pjskennedy <[email protected]> | 2022-03-06 19:12:24 -0800 |
| commit | e92da874f5addf7caa265d58741c652a05e331b7 (patch) | |
| tree | 3d94ab92b28d8b844f379e122ecf78dc659996b6 | |
| parent | d800d9a46e79ea2749d38e40cf4f0dabcda59d3f (diff) | |
| download | caxlsx-e92da874f5addf7caa265d58741c652a05e331b7.tar.gz caxlsx-e92da874f5addf7caa265d58741c652a05e331b7.zip | |
Added a spec for instance_values_for
| -rw-r--r-- | test/tc_axlsx.rb | 26 |
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 |
