blob: 31241caf0ab03211e11b8321a2d4c5606bdff0ed (
plain) (
tree)
|
|
# frozen_string_literal: true
require "abstract_unit"
require "active_support/core_ext/object"
class ObjectTests < ActiveSupport::TestCase
class DuckTime
def acts_like_time?
true
end
end
def test_duck_typing
object = Object.new
time = Time.now
date = Date.today
dt = DateTime.new
duck = DuckTime.new
assert_not object.acts_like?(:time)
assert_not object.acts_like?(:date)
assert time.acts_like?(:time)
assert_not time.acts_like?(:date)
assert_not date.acts_like?(:time)
assert date.acts_like?(:date)
assert dt.acts_like?(:time)
assert dt.acts_like?(:date)
assert duck.acts_like?(:time)
assert_not duck.acts_like?(:date)
end
end
|