aboutsummaryrefslogtreecommitdiffstats
path: root/actionwebservice/test/struct_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionwebservice/test/struct_test.rb')
-rw-r--r--actionwebservice/test/struct_test.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/actionwebservice/test/struct_test.rb b/actionwebservice/test/struct_test.rb
new file mode 100644
index 0000000000..b883c6d991
--- /dev/null
+++ b/actionwebservice/test/struct_test.rb
@@ -0,0 +1,40 @@
+require File.dirname(__FILE__) + '/abstract_unit'
+
+module StructTest
+ class Struct < ActionService::Struct
+ member :id, Integer
+ member :name, String
+ member :items, [String]
+ member :deleted, :bool
+ member :emails, [:string]
+ end
+end
+
+class TC_Struct < Test::Unit::TestCase
+ def test_members
+ assert_equal(5, StructTest::Struct.members.size)
+ assert_equal(Integer, StructTest::Struct.members[:id])
+ assert_equal(String, StructTest::Struct.members[:name])
+ assert_equal([String], StructTest::Struct.members[:items])
+ assert_equal(TrueClass, StructTest::Struct.members[:deleted])
+ assert_equal([String], StructTest::Struct.members[:emails])
+ end
+
+ def test_initializer_and_lookup
+ s = StructTest::Struct.new(:id => 5,
+ :name => 'hello',
+ :items => ['one', 'two'],
+ :deleted => true,
+ :emails => ['test@test.com'])
+ assert_equal(5, s.id)
+ assert_equal('hello', s.name)
+ assert_equal(['one', 'two'], s.items)
+ assert_equal(true, s.deleted)
+ assert_equal(['test@test.com'], s.emails)
+ assert_equal(5, s['id'])
+ assert_equal('hello', s['name'])
+ assert_equal(['one', 'two'], s['items'])
+ assert_equal(true, s['deleted'])
+ assert_equal(['test@test.com'], s['emails'])
+ end
+end