Sha256: a8c558d0c71e71e42448ba2d35e4ff37bc422b1dd546876e5d8e9ba001b2b898

Contents?: true

Size: 1.41 KB

Versions: 35

Compression:

Stored size: 1.41 KB

Contents

# frozen_string_literal: true

describe "OracleEnhancedAdapter handling of BINARY_FLOAT columns" do
  include SchemaSpecHelper

  before(:all) do
    ActiveRecord::Base.establish_connection(CONNECTION_PARAMS)
    @conn = ActiveRecord::Base.connection
    schema_define do
      create_table :test2_employees, force: true do |t|
        t.string  :first_name, limit: 20
        t.string  :last_name, limit: 25
        t.string  :email, limit: 25
        t.string  :phone_number, limit: 25
        t.date    :hire_date
        t.integer :job_id
        t.integer :salary
        t.decimal :commission_pct, scale: 2, precision: 2
        t.float   :hourly_rate
        t.integer :manager_id,  limit: 6
        t.integer :is_manager,  limit: 1
        t.decimal :department_id, scale: 0, precision: 4
        t.timestamps
      end
    end
    class ::Test2Employee < ActiveRecord::Base
    end
  end

  after(:all) do
    Object.send(:remove_const, "Test2Employee")
    @conn.drop_table :test2_employees, if_exists:  true
  end

  it "should set BINARY_FLOAT column type as float" do
    columns = @conn.columns("test2_employees")
    column = columns.detect { |c| c.name == "hourly_rate" }
    expect(column.type).to eq(:float)
  end

  it "should BINARY_FLOAT column type returns an approximate value" do
    employee = Test2Employee.create(hourly_rate: 4.4)

    employee.reload

    expect(employee.hourly_rate).to eq(4.400000095367432)
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
activerecord-oracle_enhanced-adapter-7.1.0 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-7.1.0.beta2 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-7.1.0.beta1 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-7.0.3 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-7.0.2 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.1.6 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-7.0.1 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-7.0.0 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-7.0.0.rc1 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.1.5 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.1.4 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.1.2 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.1.1 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.0.6 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.0.5 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.1.0 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.1.0.rc1 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.0.4 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-6.0.3 spec/active_record/oracle_enhanced/type/float_spec.rb
activerecord-oracle_enhanced-adapter-5.2.8 spec/active_record/oracle_enhanced/type/float_spec.rb