Module: InterfaceTest

Defined in:
lib/type_struct/interface_test.rb

Constant Summary collapse

Interface =
TypeStruct::Interface
Reader =
Interface.new(:read)
Writer =
Interface.new(:write)
ReadWriter =
Interface.new(:read, :write)

Instance Method Summary collapse

Instance Method Details

#test_equal(t) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/type_struct/interface_test.rb', line 21

def test_equal(t)
  r = Object.new
  def r.read
  end
  case r
  when Reader
  else
    t.error("expect Reader === r is true")
  end

  w = Object.new
  def w.write
  end
  case w
  when Writer
  else
    t.error("expect Writer === w is true")
  end

  case r
  when ReadWriter
    t.error("expect ReadWriter === r is false")
  end
end

#test_initialize(t) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/type_struct/interface_test.rb', line 5

def test_initialize(t)
  unless Interface === Interface.new
    t.error("return value was break")
  end
  unless Interface === Interface.new(:foo)
    t.error("return value was break")
  end
  unless Interface === Interface.new(:foo, :bar)
    t.error("return value was break")
  end
end

#test_or(t) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/type_struct/interface_test.rb', line 46

def test_or(t)
  r_or_w = Reader | Writer
  r = Object.new
  def r.read
  end

  case r
  when r_or_w
  else
    t.error("expect rw === r is true")
  end
end