2003-09-24 11:18:44 -04:00
|
|
|
require 'test/unit'
|
|
|
|
require 'soap/marshal'
|
|
|
|
|
2003-09-26 14:34:41 -04:00
|
|
|
|
|
|
|
module SOAP
|
|
|
|
module Marshal
|
|
|
|
|
|
|
|
|
2004-07-09 20:35:02 -04:00
|
|
|
Foo1 = ::Struct.new("Foo1", :m)
|
|
|
|
Foo2 = ::Struct.new(:m)
|
2003-09-24 11:18:44 -04:00
|
|
|
class Foo3
|
|
|
|
attr_accessor :m
|
|
|
|
end
|
|
|
|
|
|
|
|
class TestStruct < Test::Unit::TestCase
|
|
|
|
def test_foo1
|
|
|
|
org = Foo1.new
|
|
|
|
org.m = org
|
|
|
|
obj = convert(org)
|
|
|
|
assert_equal(Foo1, obj.class)
|
|
|
|
assert_equal(obj.m, obj)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_foo2
|
|
|
|
org = Foo2.new
|
|
|
|
org.m = org
|
|
|
|
obj = convert(org)
|
|
|
|
assert_equal(Foo2, obj.class)
|
|
|
|
assert_equal(obj.m, obj)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_foo3
|
|
|
|
org = Foo3.new
|
|
|
|
org.m = org
|
|
|
|
obj = convert(org)
|
|
|
|
assert_equal(Foo3, obj.class)
|
|
|
|
assert_equal(obj.m, obj)
|
|
|
|
end
|
|
|
|
|
|
|
|
def convert(obj)
|
|
|
|
SOAP::Marshal.unmarshal(SOAP::Marshal.marshal(obj))
|
|
|
|
end
|
|
|
|
end
|
2003-09-26 14:34:41 -04:00
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|