~ubuntu-branches/ubuntu/intrepid/ruby1.8/intrepid-updates

« back to all changes in this revision

Viewing changes to test/soap/test_soapelement.rb

  • Committer: Bazaar Package Importer
  • Author(s): akira yamada
  • Date: 2007-03-13 22:11:58 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20070313221158-h3oql37brlaf2go2
Tags: 1.8.6-1
* new upstream version, 1.8.6.
* libruby1.8 conflicts with libopenssl-ruby1.8 (< 1.8.6) (closes: #410018)
* changed packaging style to cdbs from dbs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
require 'test/unit'
 
2
require 'soap/baseData'
 
3
require 'soap/mapping'
 
4
 
 
5
 
 
6
module SOAP
 
7
 
 
8
 
 
9
class TestSOAPElement < Test::Unit::TestCase
 
10
  include SOAP
 
11
 
 
12
  def setup
 
13
    # Nothing to do.
 
14
  end
 
15
 
 
16
  def teardown
 
17
    # Nothing to do.
 
18
  end
 
19
 
 
20
  def d(elename = nil, text = nil)
 
21
    elename ||= n(nil, nil)
 
22
    if text
 
23
      SOAPElement.new(elename, text)
 
24
    else
 
25
      SOAPElement.new(elename)  # do not merge.
 
26
    end
 
27
  end
 
28
 
 
29
  def n(namespace, name)
 
30
    XSD::QName.new(namespace, name)
 
31
  end
 
32
 
 
33
  def test_initialize
 
34
    elename = n(nil, nil)
 
35
    obj = d(elename)
 
36
    assert_equal(elename, obj.elename)
 
37
    assert_equal(LiteralNamespace, obj.encodingstyle)
 
38
    assert_equal({}, obj.extraattr)
 
39
    assert_equal([], obj.precedents)
 
40
    assert_equal(nil, obj.qualified)
 
41
    assert_equal(nil, obj.text)
 
42
    assert(obj.members.empty?)
 
43
 
 
44
    obj = d("foo", "text")
 
45
    assert_equal(n(nil, "foo"), obj.elename)
 
46
    assert_equal("text", obj.text)
 
47
  end
 
48
 
 
49
  def test_add
 
50
    obj = d()
 
51
    child = d("abc")
 
52
    obj.add(child)
 
53
    assert(obj.key?("abc"))
 
54
    assert_same(child, obj["abc"])
 
55
    assert_same(child, obj.abc)
 
56
    def obj.foo; 1; end
 
57
    child = d("foo")
 
58
    obj.add(child)
 
59
    assert_equal(1, obj.foo)
 
60
    assert_equal(child, obj.var_foo)
 
61
    child = d("_?a?b_")
 
62
    obj.add(child)
 
63
    assert_equal(child, obj.__send__('_?a?b_'))
 
64
  end
 
65
 
 
66
  def test_member
 
67
    obj = d()
 
68
    c1 = d("c1")
 
69
    obj.add(c1)
 
70
    c2 = d("c2")
 
71
    obj.add(c2)
 
72
    assert(obj.key?("c1"))
 
73
    assert(obj.key?("c2"))
 
74
    assert_equal(c1, obj["c1"])
 
75
    assert_equal(c2, obj["c2"])
 
76
    c22 = d("c22")
 
77
    obj["c2"] = c22
 
78
    assert(obj.key?("c2"))
 
79
    assert_equal(c22, obj["c2"])
 
80
    assert_equal(["c1", "c2"], obj.members.sort)
 
81
    #
 
82
    k_expect = ["c1", "c2"]
 
83
    v_expect = [c1, c22]
 
84
    obj.each do |k, v|
 
85
      assert(k_expect.include?(k))
 
86
      assert(v_expect.include?(v))
 
87
      k_expect.delete(k)
 
88
      v_expect.delete(v)
 
89
    end
 
90
    assert(k_expect.empty?)
 
91
    assert(v_expect.empty?)
 
92
  end
 
93
 
 
94
  def test_to_obj
 
95
    obj = d("root")
 
96
    ct1 = d("ct1", "t1")
 
97
    obj.add(ct1)
 
98
    c2 = d("c2")
 
99
    ct2 = d("ct2", "t2")
 
100
    c2.add(ct2)
 
101
    obj.add(c2)
 
102
    assert_equal({ "ct1" => "t1", "c2" => { "ct2" => "t2" }}, obj.to_obj) 
 
103
    #
 
104
    assert_equal(nil, d().to_obj)
 
105
    assert_equal("abc", d(nil, "abc").to_obj)
 
106
    assert_equal(nil, d("abc", nil).to_obj)
 
107
  end
 
108
 
 
109
  def test_from_obj
 
110
    source = { "ct1" => "t1", "c2" => { "ct2" => "t2" }}
 
111
    assert_equal(source, SOAPElement.from_obj(source).to_obj)
 
112
    source = { "1" => nil }
 
113
    assert_equal(source, SOAPElement.from_obj(source).to_obj)
 
114
    source = {}
 
115
    assert_equal(nil, SOAPElement.from_obj(source).to_obj)      # not {}
 
116
    source = nil
 
117
    assert_equal(nil, SOAPElement.from_obj(source).to_obj)
 
118
  end
 
119
end
 
120
 
 
121
 
 
122
end