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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
require 'helper'
# must be required independently
require 'hashery/association'
testcase Association do
class_method :new do
test do
Association.new(:A, :B)
end
end
class_method :[] do
test do
a = Association[:a, 1]
a.assert.index == :a
a.assert.value == 1
end
end
method :index do
test do
a = Association.new(:a,1)
a.index.assert == :a
end
end
method :value do
test do
a = Association.new(:a,1)
a.value.assert == 1
end
end
method :to_ary do
test do
k,v = [],[]
ohash = [ 'A' >> '3', 'B' >> '2', 'C' >> '1' ]
ohash.each { |e1,e2| k << e1 ; v << e2 }
k.assert == ['A','B','C']
v.assert == ['3','2','1']
end
end
method :index do
test do
complex = [ 'Drop Menu' >> [ 'Button 1', 'Button 2', 'Button 3' ], 'Help' ]
complex[0].index.assert == 'Drop Menu'
end
end
method :<=> do
test 'when differnt in value' do
a = Association.new(:a,1)
b = Association.new(:b,2)
(a <=> b).assert == -1
(b <=> a).assert == 1
end
test 'when equal value' do
a = Association.new(:a,1)
b = Association.new(:b,1)
(a <=> b).assert == 0
end
end
method :invert! do
test do
a = Association.new(:a,1)
a.invert!
a.index.assert == 1
a.value.assert == :a
end
end
method :inspect do
test do
a = Association.new(:a,1)
a.inspect.assert == ":a >> 1"
end
end
method :to_s do
test do
a = Association.new(:a,1)
a.to_s.assert == "a >> 1"
end
end
end
testcase Object do
method :associations do
test do
s = 'a'
complex = [ s >> :b, s >> :c ]
s.associations.assert == [:b, :c]
end
end
end
|