Class: TestReload

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/innate/test/testreload.rb

Instance Method Summary collapse

Instance Method Details

#tObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/innate/test/testreload.rb', line 13

def t
  begin
    copy 'files/reloadtarget1.rb', 'files/reloadtarget.rb'
    require 'files/reloadtarget'
    yield :original
    copy 'files/reloadtarget2.rb', 'files/reloadtarget.rb'
    reload 'files/reloadtarget'    
    yield :reloaded
  ensure
    # I don't delete anymore because it messes up the tests
    # for scriptlines
    #File.delete 'files/reloadtarget.rb' rescue nil
  end
end

#test_reloadObject

targetfn sleeps for 2 seconds.. more than enough time to have an overlap



30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/innate/test/testreload.rb', line 30

def test_reload
  thread = nil
  t do |step|
    if step == :original
      thread = Thread.new do 
        assert_equal 'function1', targetfn {|v| assert_equal 'start 1', v }
      end 
    elsif step == :reloaded
      assert_equal 'function2', targetfn {|v| assert_equal 'start 2', v }
      thread.join
    end
  end
end

#test_reload_scriptlinesObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/innate/test/testreload.rb', line 44

def test_reload_scriptlines
  orig = nil
  fn = nil
  t do |step|
    if step == :original
      fn = find_in_path 'files/reloadtarget'
      orig = SCRIPT_LINES__[fn].collect
    elsif step == :reloaded
      r = SCRIPT_LINES__[fn]
      assert_not_nil orig.first
      assert_equal orig.first, r.first
      assert_equal orig.last, r.last
      assert_equal orig[1..-2].collect {|l| l.tr('12', '21') }, r[1..-2]
      assert_equal orig.collect {|l| l.tr('12', '21') }, r.collect
    end
  end
end