aboutsummaryrefslogtreecommitdiffstats
path: root/actionwebservice/test/struct_test.rb
blob: e6f1603c73a17325dbdfce6171a7cd6932965e09 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
require File.dirname(__FILE__) + '/abstract_unit'

module StructTest
  class Struct < ActionWebService::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