removing log dir from .gitignore
[monkeycharger.git] / vendor / rails / actionwebservice / test / struct_test.rb
blobf689746ee4946937448ac2bfabc1fdf4a4c09b88
1 require File.dirname(__FILE__) + '/abstract_unit'
3 module StructTest
4   class Struct < ActionWebService::Struct
5     member :id, Integer
6     member :name, String
7     member :items, [String]
8     member :deleted, :bool
9     member :emails, [:string]
10   end
11 end
13 class TC_Struct < Test::Unit::TestCase
14   include StructTest
16   def setup
17     @struct = Struct.new(:id      => 5,
18                          :name    => 'hello',
19                          :items   => ['one', 'two'],
20                          :deleted => true,
21                          :emails  => ['test@test.com'])
22   end
24   def test_members
25     assert_equal(5, Struct.members.size)
26     assert_equal(Integer, Struct.members[:id].type_class)
27     assert_equal(String, Struct.members[:name].type_class)
28     assert_equal(String, Struct.members[:items].element_type.type_class)
29     assert_equal(TrueClass, Struct.members[:deleted].type_class)
30     assert_equal(String, Struct.members[:emails].element_type.type_class)
31   end
33   def test_initializer_and_lookup
34     assert_equal(5, @struct.id)
35     assert_equal('hello', @struct.name)
36     assert_equal(['one', 'two'], @struct.items)
37     assert_equal(true, @struct.deleted)
38     assert_equal(['test@test.com'], @struct.emails)
39     assert_equal(5, @struct['id'])
40     assert_equal('hello', @struct['name'])
41     assert_equal(['one', 'two'], @struct['items'])
42     assert_equal(true, @struct['deleted'])
43     assert_equal(['test@test.com'], @struct['emails'])
44   end
46   def test_each_pair
47     @struct.each_pair do |name, value|
48       assert_equal @struct.__send__(name), value
49       assert_equal @struct[name], value
50     end
51   end
52 end