spec/integration/plugin_test.rb in sequel-4.48.0 vs spec/integration/plugin_test.rb in sequel-4.49.0
- old
+ new
@@ -36,12 +36,13 @@
class ::Ceo < Executive
end
class ::Staff < Employee
many_to_one :manager
end
+ class ::Intern < Employee
+ end
-
@i1 = @db[:employees].insert(:name=>'E', :kind=>'Employee')
@i2 = @db[:employees].insert(:name=>'S', :kind=>'Staff')
@i3 = @db[:employees].insert(:name=>'M', :kind=>'Manager')
@db[:managers].insert(:id=>@i3, :num_staff=>7)
@i4 = @db[:employees].insert(:name=>'Ex', :kind=>'Executive')
@@ -49,13 +50,14 @@
@db[:executives].insert(:id=>@i4, :num_managers=>6)
@i5 = @db[:employees].insert(:name=>'C', :kind=>'Ceo')
@db[:managers].insert(:id=>@i5, :num_staff=>2)
@db[:executives].insert(:id=>@i5, :num_managers=>1)
@db[:staff].insert(:id=>@i2, :manager_id=>@i4)
+ @i6 = @db[:employees].insert(:name=>'I', :kind=>'Intern')
end
after do
- [:Ceo, :Executive, :Manager, :Staff, :Employee].each{|s| Object.send(:remove_const, s)}
+ [:Intern, :Ceo, :Executive, :Manager, :Staff, :Employee].each{|s| Object.send(:remove_const, s)}
end
after(:all) do
@db.drop_table? :staff, :executives, :managers, :employees
end
@@ -63,11 +65,12 @@
Employee.order(:id).all.must_equal [
Employee.load(:id=>@i1, :name=>'E', :kind=>'Employee'),
Staff.load(:id=>@i2, :name=>'S', :kind=>'Staff'),
Manager.load(:id=>@i3, :name=>'M', :kind=>'Manager'),
Executive.load(:id=>@i4, :name=>'Ex', :kind=>'Executive'),
- Ceo.load(:id=>@i5, :name=>'C', :kind=>'Ceo')
+ Ceo.load(:id=>@i5, :name=>'C', :kind=>'Ceo'),
+ Intern.load(:id=>@i6, :name=>'I', :kind=>'Intern'),
]
end
it "should lazily load columns in subclass tables" do
Employee[@i2][:manager_id].must_be_nil
@@ -100,17 +103,19 @@
Employee.db_schema.keys.sort_by{|x| x.to_s}.must_equal [:id, :kind, :name]
Staff.db_schema.keys.sort_by{|x| x.to_s}.must_equal [:id, :kind, :manager_id, :name]
Manager.db_schema.keys.sort_by{|x| x.to_s}.must_equal [:id, :kind, :name, :num_staff]
Executive.db_schema.keys.sort_by{|x| x.to_s}.must_equal [:id, :kind, :name, :num_managers, :num_staff]
Ceo.db_schema.keys.sort_by{|x| x.to_s}.must_equal [:id, :kind, :name, :num_managers, :num_staff]
+ Intern.db_schema.keys.sort_by{|x| x.to_s}.must_equal [:id, :kind, :name]
end
it "should include columns for tables for ancestor classes" do
Employee.columns.must_equal [:id, :name, :kind]
Staff.columns.must_equal [:id, :name, :kind, :manager_id]
Manager.columns.must_equal [:id, :name, :kind, :num_staff]
Executive.columns.must_equal [:id, :name, :kind, :num_staff, :num_managers]
Ceo.columns.must_equal [:id, :name, :kind, :num_staff, :num_managers]
+ Intern.columns.must_equal [:id, :name, :kind]
end
it "should delete rows from all tables" do
e = Ceo.first
i = e.id