travis-api/spec/unit/extensions/subclass_tracker_spec.rb
2012-10-02 16:39:38 +02:00

32 lines
870 B
Ruby

require 'spec_helper'
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