Class: TestWIN32OLE_EVENT

Inherits:
RUNIT::TestCase
  • Object
show all
Defined in:
tests/testOLEEVENT.rb

Instance Method Summary collapse

Instance Method Details

#handler1Object



30
31
32
# File 'tests/testOLEEVENT.rb', line 30

def handler1
  @event += "handler1"
end

#handler2Object



33
34
35
# File 'tests/testOLEEVENT.rb', line 33

def handler2
  @event += "handler2"
end

#handler3Object



37
38
39
# File 'tests/testOLEEVENT.rb', line 37

def handler3
  @event += "handler3"
end

#setupObject



5
6
7
8
9
10
# File 'tests/testOLEEVENT.rb', line 5

def setup
  @excel = WIN32OLE.new("Excel.Application")
  @excel.visible = true
  @event = ""
  @event2 = ""
end

#teardownObject



85
86
87
88
89
# File 'tests/testOLEEVENT.rb', line 85

def teardown
  @excel.quit
  @excel = nil
  GC.start
end

#test_on_eventObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'tests/testOLEEVENT.rb', line 11

def test_on_event
  book = @excel.workbooks.Add
  value = ""
  begin
    ev = WIN32OLE_EVENT.new(book, 'WorkbookEvents')
    ev.on_event('SheetChange'){|arg1, arg2| 
      begin
        value = arg1.value
      rescue
        value = $!.message
      end
    }
    book.Worksheets(1).Range("A1").value = "OK"
  ensure
    book.saved = true
  end
  assert_equal("OK", value)
end

#test_on_event2Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'tests/testOLEEVENT.rb', line 41

def test_on_event2
  book = @excel.workbooks.Add
  begin
    ev = WIN32OLE_EVENT.new(book, 'WorkbookEvents')
    ev.on_event('SheetChange'){|arg1, arg2| 
      handler1
    }
    ev.on_event('SheetChange'){|arg1, arg2| 
      handler2
    }
    book.Worksheets(1).Range("A1").value = "OK"
  ensure
    book.saved = true
  end
  assert_equal("handler2", @event)
end

#test_on_event3Object



58
59
60
61
62
63
64
65
66
67
68
69
# File 'tests/testOLEEVENT.rb', line 58

def test_on_event3
  book = @excel.workbooks.Add
  begin
    ev = WIN32OLE_EVENT.new(book, 'WorkbookEvents')
    ev.on_event{ handler1 }
    ev.on_event{ handler2 }
    book.Worksheets(1).Range("A1").value = "OK"
  ensure
    book.saved = true
  end
  assert_equal("handler2", @event)
end

#test_on_event4Object



71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'tests/testOLEEVENT.rb', line 71

def test_on_event4
  book = @excel.workbooks.Add
  begin
    ev = WIN32OLE_EVENT.new(book, 'WorkbookEvents')
    ev.on_event{ handler1 }
    ev.on_event{ handler2 }
    ev.on_event('SheetChange'){|arg1, arg2| handler3 }
    book.Worksheets(1).Range("A1").value = "OK"
  ensure
    book.saved = true
  end
  assert_equal("handler3", @event)
end