test/test_tacky.rb in tacky-0.3.5 vs test/test_tacky.rb in tacky-0.4.0

- old
+ new

@@ -1,10 +1,10 @@ # frozen_string_literal: true # (The MIT License) # -# Copyright (c) 2020 Yegor Bugayenko +# Copyright (c) 2020-2023 Yegor Bugayenko # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the 'Software'), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell @@ -25,11 +25,11 @@ require 'minitest/autorun' require_relative '../lib/tacky' # Tacky test. # Author:: Yegor Bugayenko (yegor256@gmail.com) -# Copyright:: Copyright (c) 2020 Yegor Bugayenko +# Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko # License:: MIT class TackyTest < Minitest::Test def test_wraps_simple_object foo = Object.new def foo.value @@ -60,7 +60,47 @@ def foo.value 'hello' end bar = Tacky.new(foo) assert(bar.value.is_a?(String)) + end + + def test_wraps_void_returning_methods + foo = Class.new do + attr_reader :done + + def initialize + @done = 0 + end + + def touch + @done += 1 + nil + end + end.new + bar = Tacky.new(foo) + bar.touch + bar.touch + assert_equal(1, foo.done) + end + + def test_diff_methods_by_params + foo = Object.new + def foo.value(val) + val + end + bar = Tacky.new(foo) + assert_equal(5, bar.value(5)) + assert_equal(10, bar.value(10)) + end + + def test_diff_methods_by_hash_params + foo = Object.new + def foo.value(*) + rand(1000) + end + bar = Tacky.new(foo) + assert_equal(bar.value(val: 5), bar.value(val: 5)) + assert_equal(bar.value(val: 10), bar.value(val: 10)) + assert_equal(bar.value(val: true), bar.value(val: true)) end end