Class: ArrayExtensionsTest

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/puppet/vendor/rgen/test/array_extensions_test.rb

Defined Under Namespace

Classes: MMBaseClass

Instance Method Summary collapse

Instance Method Details

#test_element_methodsObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/puppet/vendor/rgen/test/array_extensions_test.rb', line 8

def test_element_methods
  c = Struct.new("SomeClass",:name,:age)
  a = []
  a << c.new('MyName',33)
  a << c.new('YourName',22)
  assert_equal ["MyName", "YourName"], a >> :name
  assert_raise NoMethodError do
    a.name
  end
  assert_equal [33, 22], a>>:age
  assert_raise NoMethodError do
    a.age
  end
  # unfortunately, any method can be called on an empty array

  assert_equal [], [].age
end

#test_hash_squareObject



54
55
56
# File 'lib/puppet/vendor/rgen/test/array_extensions_test.rb', line 54

def test_hash_square
  assert_equal({}, Hash[[]])
end

#test_to_str_on_empty_arrayObject



58
59
60
61
62
# File 'lib/puppet/vendor/rgen/test/array_extensions_test.rb', line 58

def test_to_str_on_empty_array
  assert_raise NoMethodError do
    [].to_str
  end
end

#test_with_mmbaseObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/puppet/vendor/rgen/test/array_extensions_test.rb', line 30

def test_with_mmbase
  e1 = MMBaseClass.new
  e1.name = "MyName"
  e1.age = 33
  e2 = MMBaseClass.new
  e2.name = "YourName"
  e2.age = 22
  a = [e1, e2]
  assert_equal ["MyName", "YourName"], a >> :name
  assert_equal ["MyName", "YourName"], a.name
  assert_equal [33, 22], a>>:age
  assert_equal [33, 22], a.age
  # put something into the array that is not an MMBase

  a << "not a MMBase"
  # the dot operator will tell that there is something not a MMBase

  assert_raise StandardError do
    a.age
  end
  # the >> operator will try to call the method anyway

  assert_raise NoMethodError do
    a >> :age
  end
end