diff options
Diffstat (limited to 'ruby_1_8_6/test/soap/marshal')
-rw-r--r-- | ruby_1_8_6/test/soap/marshal/test_digraph.rb | 56 | ||||
-rw-r--r-- | ruby_1_8_6/test/soap/marshal/test_marshal.rb | 26 | ||||
-rw-r--r-- | ruby_1_8_6/test/soap/marshal/test_struct.rb | 47 |
3 files changed, 129 insertions, 0 deletions
diff --git a/ruby_1_8_6/test/soap/marshal/test_digraph.rb b/ruby_1_8_6/test/soap/marshal/test_digraph.rb new file mode 100644 index 0000000000..d7f30654f8 --- /dev/null +++ b/ruby_1_8_6/test/soap/marshal/test_digraph.rb @@ -0,0 +1,56 @@ +require 'test/unit' +require 'soap/marshal' + + +module SOAP +module Marshal + + +class Node; include SOAP::Marshallable + attr_reader :first, :second, :str + + def initialize(*init_next) + @first = init_next[0] + @second = init_next[1] + end +end + +class TestDigraph < Test::Unit::TestCase + def setup + @n9 = Node.new + @n81 = Node.new(@n9) + @n82 = Node.new(@n9) + @n7 = Node.new(@n81, @n82) + @n61 = Node.new(@n7) + @n62 = Node.new(@n7) + @n5 = Node.new(@n61, @n62) + @n41 = Node.new(@n5) + @n42 = Node.new(@n5) + @n3 = Node.new(@n41, @n42) + @n21 = Node.new(@n3) + @n22 = Node.new(@n3) + @n1 = Node.new(@n21, @n22) + end + + def test_marshal + f = File.open("digraph_marshalled_string.soap", "wb") + SOAP::Marshal.dump(@n1, f) + f.close + f = File.open("digraph_marshalled_string.soap") + str = f.read + f.close + newnode = SOAP::Marshal.unmarshal(str) + assert_equal(newnode.first.first.__id__, newnode.second.first.__id__) + assert_equal(newnode.first.first.first.first.__id__, newnode.second.first.second.first.__id__) + end + + def teardown + if File.exist?("digraph_marshalled_string.soap") + File.unlink("digraph_marshalled_string.soap") + end + end +end + + +end +end diff --git a/ruby_1_8_6/test/soap/marshal/test_marshal.rb b/ruby_1_8_6/test/soap/marshal/test_marshal.rb new file mode 100644 index 0000000000..5cc30a2b5d --- /dev/null +++ b/ruby_1_8_6/test/soap/marshal/test_marshal.rb @@ -0,0 +1,26 @@ +require 'test/unit' +require 'soap/marshal' +dir = File.join(File.dirname(File.expand_path(__FILE__)), '../../ruby') +orgpath = $:.dup +begin + $:.push(dir) + require 'marshaltestlib' +ensure + $:.replace(orgpath) +end + +module SOAP +module Marshal +class TestMarshal < Test::Unit::TestCase + include MarshalTestLib + + def encode(o) + SOAPMarshal.dump(o) + end + + def decode(s) + SOAPMarshal.load(s) + end +end +end +end diff --git a/ruby_1_8_6/test/soap/marshal/test_struct.rb b/ruby_1_8_6/test/soap/marshal/test_struct.rb new file mode 100644 index 0000000000..33975c31b0 --- /dev/null +++ b/ruby_1_8_6/test/soap/marshal/test_struct.rb @@ -0,0 +1,47 @@ +require 'test/unit' +require 'soap/marshal' + + +module SOAP +module Marshal + + +Foo1 = ::Struct.new("Foo1", :m) +Foo2 = ::Struct.new(:m) +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 + + +end +end |