62 lines
2.7 KiB
Ruby
62 lines
2.7 KiB
Ruby
require 'rails_helper'
|
|
|
|
describe OwnerInitialization do
|
|
describe "#window_from DayTimeMinutes" do
|
|
|
|
it "works with assignment" do
|
|
described_class.connection.execute "INSERT INTO #{described_class.table_name} (state, window_from, window_to, created_at, updated_at) VALUES ('pending', 78, 11656, TIME(), TIME())"
|
|
record = described_class.first
|
|
record.window_from.should eq DayTimeMinutes.new('01:18')
|
|
record.window_from.should eq '01:18'
|
|
record.window_from.should eq 78
|
|
|
|
record.window_from = "16:48"
|
|
record.window_from.should eq DayTimeMinutes.new('16:48')
|
|
record.window_from.should eq '16:48'
|
|
record.window_from.should eq 1008
|
|
|
|
record.save
|
|
record.errors.should be_empty
|
|
|
|
described_class.connection.exec_query("SELECT window_from FROM #{described_class.table_name}").rows.should eq [[1008]]
|
|
|
|
record.reload
|
|
record.window_from.should eq '16:48'
|
|
|
|
record = described_class.find(record.id)
|
|
record.window_from.should eq '16:48'
|
|
|
|
record.window_from = 789
|
|
record.window_from.to_s.should eq '13:09'
|
|
|
|
record.save
|
|
record = described_class.find(record.id)
|
|
record.window_from.to_s.should eq '13:09'
|
|
|
|
record.update window_from: nil
|
|
described_class.connection.exec_query("SELECT window_from FROM #{described_class.table_name}").rows.should eq [[nil]]
|
|
|
|
# assign empty
|
|
record.update window_from: ''
|
|
record = described_class.find(record.id)
|
|
record.window_from.should_not be_present
|
|
record.window_from.number.should be nil
|
|
record.window_from.should eq ''
|
|
end
|
|
|
|
it "works in queries" do
|
|
record = create :owner_initialization, window_from: '13:56'
|
|
column = described_class.arel_table[:window_from]
|
|
described_class.where(column.gt record.window_from).select(:id).to_sql.should eq %|SELECT "owner_initializations"."id" FROM "owner_initializations" WHERE ("owner_initializations"."window_from" > 836)|
|
|
described_class.where("window_from > ?", record.window_from).select(:id).to_sql.should eq %|SELECT "owner_initializations"."id" FROM "owner_initializations" WHERE (window_from > 836)|
|
|
end
|
|
|
|
it "works in queries with null value" do
|
|
record = create :owner_initialization, window_from: nil
|
|
column = described_class.arel_table[:window_from]
|
|
described_class.where(column.gt record.window_from).select(:id).to_sql.should eq %|SELECT "owner_initializations"."id" FROM "owner_initializations" WHERE ("owner_initializations"."window_from" > NULL)|
|
|
described_class.where("window_from > ?", record.window_from).select(:id).to_sql.should eq %|SELECT "owner_initializations"."id" FROM "owner_initializations" WHERE (window_from > NULL)|
|
|
end
|
|
end
|
|
end
|