a92e5b43d2f869c7b783082e7bc8faedec1be889
[ruby-eet.git] / test / test_sub.rb
1 # $Id: test_sub.rb 1 2005-03-26 01:45:38Z tilman $
2
3 require "eet"
4 require "test/unit"
5 require "common"
6
7 class SubTestData
8         def initialize
9                 @string = WrappedString.new("foobar")
10         end
11
12         private
13         def to_eet_name
14                 "SubTest"
15         end
16
17         def to_eet_properties
18                 {"sub_test" => [@string],
19                  "nil_test" => [nil]}
20         end
21 end
22
23 class SubTest < Test::Unit::TestCase
24         def test_sub
25                 data = SubTestData.new.to_eet
26                 assert_not_nil(data)
27
28                 stream = nil
29
30                 assert_nothing_raised do
31                         stream = Eet::Stream.deserialize(data)
32                 end
33
34                 assert_equal(1, stream.length)
35                 assert_equal("SubTest", stream.first.tag)
36
37                 assert_nothing_raised do
38                         stream = Eet::Stream.deserialize(stream.first.data)
39                 end
40
41                 assert_equal(1, stream.length)
42                 assert_equal("sub_test", stream.first.tag)
43
44                 assert_nothing_raised do
45                         stream = Eet::Stream.deserialize(stream.first.data)
46                 end
47
48                 assert_equal(1, stream.length)
49                 assert_equal("String", stream.first.tag)
50
51                 assert_nothing_raised do
52                         stream = Eet::Stream.deserialize(stream.first.data)
53                 end
54
55                 assert_equal(1, stream.length)
56                 assert_equal("buf", stream.first.tag)
57                 assert_equal("foobar\0", stream.first.data)
58         end
59 end