57 lines
1.3 KiB
Ruby
57 lines
1.3 KiB
Ruby
|
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
||
|
|
||
|
describe "ObjectSpace" do
|
||
|
def setup
|
||
|
end
|
||
|
|
||
|
def teardown
|
||
|
end
|
||
|
|
||
|
context "#classes" do
|
||
|
should "take an snapshot of the current loaded classes" do
|
||
|
snapshot = ObjectSpace.classes
|
||
|
assert_equal snapshot.include?(Padrino::Logger), true
|
||
|
end
|
||
|
|
||
|
should "return a Set object" do
|
||
|
snapshot = ObjectSpace.classes
|
||
|
assert_equal snapshot.kind_of?(Set), true
|
||
|
end
|
||
|
|
||
|
should "be able to process a the class name given a block" do
|
||
|
klasses = ObjectSpace.classes do |klass|
|
||
|
if klass.name =~ /^Padrino::/
|
||
|
klass
|
||
|
end
|
||
|
end
|
||
|
|
||
|
assert_equal (klasses.size > 1), true
|
||
|
klasses.each do |klass|
|
||
|
assert_match /^Padrino::/, klass.to_s
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "#new_classes" do
|
||
|
setup do
|
||
|
@snapshot = ObjectSpace.classes
|
||
|
end
|
||
|
|
||
|
should "return list of new classes" do
|
||
|
class OSTest; end
|
||
|
module OSTestModule; class B; end; end
|
||
|
|
||
|
new_classes = ObjectSpace.new_classes(@snapshot)
|
||
|
|
||
|
assert_equal new_classes.size, 2
|
||
|
assert_equal new_classes.include?(OSTest), true
|
||
|
assert_equal new_classes.include?(OSTestModule::B), true
|
||
|
end
|
||
|
|
||
|
should "return a Set object" do
|
||
|
new_classes = ObjectSpace.new_classes(@snapshot)
|
||
|
assert_equal new_classes.kind_of?(Set), true
|
||
|
end
|
||
|
end
|
||
|
end
|