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