blob: 31241caf0ab03211e11b8321a2d4c5606bdff0ed (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# 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
|