Sha256: 6261df378616f37834712c9463ccf1f1a944a3b577e5fa50ec7de70cd44845d6
Contents?: true
Size: 2 KB
Versions: 3
Compression:
Stored size: 2 KB
Contents
require_relative '../spec_helper' require 'sql/maker' describe 'SQL::Maker' do include SQL::Maker::Helper let(:maker) do SQL::Maker.new( :driver => 'SQLite', :strict => true, ) end it { expect(maker.strict).to be == true } it "maker.new_condition" do expect { maker.new_condition.add(:foo => [1]) }.to raise_error(SQL::Maker::Error) expect { maker.new_condition.add(:foo => {'!=' => ''}) }.to raise_error(SQL::Maker::Error) end it "select.new_condition" do select = maker.new_select expect(select.strict).to be == true expect { select.new_condition.add(:foo => [1]) }.to raise_error(SQL::Maker::Error) end it "maker.select" do expect { maker.select("user", ['*'], { :name => ["John", "Tom" ]}) }.to raise_error(SQL::Maker::Error) end context "maker.insert" do it "raise error by strict mode" do expect { maker.insert( :user, { :name => "John", :created_on => ["datetime(now)"] } ) }.to raise_error(SQL::Maker::Error) end it "using term" do sql, binds = maker.insert(:user, { :name => "John", :created_on => sql_raw("datetime(now)") }) expect(sql).to be == %Q{INSERT INTO "user"\n("name", "created_on")\nVALUES (?, datetime(now))} expect(binds.join(',')).to be == 'John' end end it "maker.delete" do expect { maker.delete(:user, { :name => ["John", "Tom"]}) }.to raise_error(SQL::Maker::Error) end context "maker.update where" do it "raise error by strict mode" do expect { maker.update(:user, {:name => "John"}, { :user_id => [1, 2] }) }.to raise_error(SQL::Maker::Error) end it "using term" do sql, binds = maker.update(:user, {:name => "John"}, { :user_id => sql_in([1, 2]) }) expect(sql).to be == %Q{UPDATE "user" SET "name" = ? WHERE ("user_id" IN (?,?))} expect(binds.join(',')).to be == 'John,1,2' end end it "maker.update set" do expect { sql, bind = maker.update(:user, {:name => ["select *"]}) }.to raise_error(SQL::Maker::Error) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sql-maker-1.0.0 | spec/maker/strict_spec.rb |
sql-maker-0.0.5 | spec/maker/strict_spec.rb |
sql-maker-0.0.4 | spec/maker/strict_spec.rb |