Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1088

Show
Ignore:
Timestamp:
12/01/03 21:23:25 (5 years ago)
Author:
nahi
Message:

* dereference a value(nil) when hooked.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/property.rb

    r1086 r1088  
    8585    if rest.empty? 
    8686      check_lock(key) 
     87      @store[key] ||= nil 
    8788      (@hook[key] ||= []) << hook 
    8889    else 
  • trunk/test/soap/test_property.rb

    r1085 r1088  
    100100      tested += 1 
    101101    end 
     102    @prop.add_hook("foo.bar.baz.qux") do |key, value| 
     103      assert_equal("foo.bar.baz.qux", key) 
     104      assert_equal(tag, value) 
     105      tested += 1 
     106    end 
    102107    @prop["foo.bar.baz.qux"] = tag 
    103108    assert_equal(tag, @prop["foo.bar.baz.qux"]) 
    104     assert_equal(3, tested) 
     109    assert_equal(4, tested) 
    105110  end 
    106111 
     
    150155    @prop["a.b"] = nil 
    151156    assert_nil(@prop["a.b"]) 
     157    @prop["a.a"] = 2 
    152158    # 
    153159    @prop.unlock 
     
    165171    assert(tested) 
    166172  end 
     173 
     174  def test_hook_then_lock 
     175    tested = false 
     176    @prop.add_hook("a.b.c") do |name, value| 
     177      assert_equal("a.b.c", name) 
     178      tested = true 
     179    end 
     180    @prop.lock 
     181    assert(!tested) 
     182    @prop["a.b.c"] = 5 
     183    assert(tested) 
     184    assert_equal(5, @prop["a.b.c"]) 
     185    assert_raises(TypeError) do 
     186      @prop["a.b.d"] = 5 
     187    end 
     188  end 
    167189end 
    168190