test/test_unpiercable.rb in veils-0.3.0 vs test/test_unpiercable.rb in veils-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 @@ -26,11 +26,11 @@ require 'json' require_relative '../lib/unpiercable' # Veil test. # Author:: Yegor Bugayenko (yegor256@gmail.com) -# Copyright:: Copyright (c) 2020 Yegor Bugayenko +# Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko # License:: MIT class UnpiercableTest < Minitest::Test def test_simple obj = Object.new def obj.read(foo) @@ -68,7 +68,21 @@ foo = Veil.new(origin, count: 1) assert_equal(1, foo.count) observed = 0 foo.each { |_| observed += 1 } assert_equal(3, observed) + end + + def test_respond_to + foo = Unpiercable.new(Object.new) + assert_equal(false, foo.respond_to?(:undefine_method)) + + foo = Unpiercable.new(Object.new, method_return_object: Object.new) + assert_equal(true, foo.respond_to?(:method_return_object)) + + foo = Unpiercable.new(Object.new, method_return_false: false) + assert_equal(true, foo.respond_to?(:method_return_false)) + + foo = Unpiercable.new(Object.new, method_return_nil: nil) + assert_equal(true, foo.respond_to?(:method_return_nil)) end end