From b872eac2b983a33fde50816d9e39d8ec12548b0f Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Wed, 21 Oct 2020 09:57:36 -0400 Subject: [PATCH] More comprehensively test assign_score_of --- test/integration/assign_test.rb | 42 +++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/test/integration/assign_test.rb b/test/integration/assign_test.rb index d65aa96d..01f355ce 100644 --- a/test/integration/assign_test.rb +++ b/test/integration/assign_test.rb @@ -70,9 +70,43 @@ class AssignTest < Minitest::Test assert_equal("", t.render!) end - def test_assign_score_counts_bytes_not_characters - t = Template.parse("{% assign foo = 'すごい' %}") - t.render - assert_equal(9, t.resource_limits.assign_score) + def test_assign_score_of_int + assert_equal(1, assign_score_of(123)) + end + + def test_assign_score_of_string_counts_bytes + assert_equal(3, assign_score_of('123')) + assert_equal(5, assign_score_of('12345')) + assert_equal(9, assign_score_of('すごい')) + end + + def test_assign_score_of_array + assert_equal(1, assign_score_of([])) + assert_equal(2, assign_score_of([123])) + assert_equal(6, assign_score_of([123, 'abcd'])) + end + + def test_assign_score_of_hash + assert_equal(1, assign_score_of({})) + assert_equal(6, assign_score_of('int' => 123)) + assert_equal(14, assign_score_of('int' => 123, 'str' => 'abcd')) + end + + private + + class ObjectWrapperDrop < Liquid::Drop + def initialize(obj) + @obj = obj + end + + def value + @obj + end + end + + def assign_score_of(obj) + context = Liquid::Context.new('drop' => ObjectWrapperDrop.new(obj)) + Liquid::Template.parse('{% assign obj = drop.value %}').render!(context) + context.resource_limits.assign_score end end