travis-api/spec/unit/extensions/subclass_tracker_spec.rb
2016-06-19 14:35:54 +02:00

30 lines
847 B
Ruby

describe Travis::Api::App::Extensions::SubclassTracker do
let!(:root) { Sinatra.new { register Travis::Api::App::Extensions::SubclassTracker } }
let!(:left) { Class.new(root) }
let!(:right) { Class.new(root) }
let!(:sub1) { Class.new(right) }
let!(:sub2) { Class.new(right) }
it 'tracks direct subclasses' do
classes = root.direct_subclasses
classes.size.should == 2
classes.should include(left)
classes.should include(right)
end
it 'tracks leaf subclasses' do
classes = root.subclasses
classes.size.should == 3
classes.should include(left)
classes.should include(sub1)
classes.should include(sub2)
end
it 'tracks subclasses of subclasses properly' do
classes = right.subclasses
classes.size.should == 2
classes.should include(sub1)
classes.should include(sub2)
end
end