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