Sha256: 6c3fed9fc6436ff028a26a420248cb4af740dd0b5bbebf395b15c9e6ee2e1b40
Contents?: true
Size: 1.64 KB
Versions: 3
Compression:
Stored size: 1.64 KB
Contents
# Since the gem provides model methods these tests serve as a kind of 'integration tests' for the gem require 'spec_helper' describe Car do before :each do @car = Car.create(:name => 'MyCar', :mass => 1000, :number_of_wheels => 4, :stick_shift => true) end it "creates parent-class records on create" do Vehicle.count.should eq 1 MotorVehicle.count.should eq 1 Car.count.should eq 1 MotorCycle.count.should eq 0 end it "updates properties of ancestor classes" do id = @car.id @car.name = 'Porsche' @car.fuel = 'gasoline' @car.convertible = true @car.bogus_field = 'bogus' @car.save! car = Car.find(id) car.name.should eq 'Porsche' car.mass.should eq 1000 car.fuel.should eq 'gasoline' car.bogus_field.should eq 'bogus' car.stick_shift.should be_true car.convertible.should be_true end it "deletes parent-class records on destroy" do @car.destroy Vehicle.count.should eq 0 MotorVehicle.count.should eq 0 Car.count.should eq 0 end it "converts to parent classes" do motor_vehicle = @car.convert_to(:motor_vehicle) motor_vehicle.class.name.should eq 'MotorVehicle' motor_vehicle.specialize.id.should eq @car.id vehicle = @car.convert_to(:vehicle) vehicle.class.name.should eq 'Vehicle' vehicle.specialize.id.should eq @car.id end it "doesn't convert to non-parent class" do @car.convert_to(:motor_cycle).should be_nil end it "correctly reports ascendants" do Car.cti_ascendants.should eq %w( Vehicle MotorVehicle ) end it "correctly reports descendants" do Car.cti_all_descendants.should eq [] end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dbview_cti-0.2.1 | spec/models/car_spec.rb |
dbview_cti-0.2.0 | spec/models/car_spec.rb |
dbview_cti-0.1.5 | spec/models/car_spec.rb |