aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-08-13 18:55:15 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-08-13 18:55:15 -0700
commit74a27a0d83ecd7ed4975851ea92ee517a1581faf (patch)
treeb120548f12566bd6a9c32a142c6191ae17eadf38 /spec
parent9fc70e22f9bf7df8485b90b3d7e4a5c58cb0ebbb (diff)
downloadrails-74a27a0d83ecd7ed4975851ea92ee517a1581faf.tar.gz
rails-74a27a0d83ecd7ed4975851ea92ee517a1581faf.tar.bz2
rails-74a27a0d83ecd7ed4975851ea92ee517a1581faf.zip
inserts have the correct syntax
Diffstat (limited to 'spec')
-rw-r--r--spec/arel/insert_manager_spec.rb28
-rw-r--r--spec/arel/visitors/to_sql_spec.rb17
2 files changed, 41 insertions, 4 deletions
diff --git a/spec/arel/insert_manager_spec.rb b/spec/arel/insert_manager_spec.rb
index 073c9c30cb..14cb749b25 100644
--- a/spec/arel/insert_manager_spec.rb
+++ b/spec/arel/insert_manager_spec.rb
@@ -9,13 +9,33 @@ module Arel
end
describe 'insert' do
+ it "inserts null" do
+ table = Table.new(:users)
+ manager = Arel::InsertManager.new Table.engine
+ manager.insert [[table[:id], nil]]
+ manager.to_sql.should be_like %{
+ INSERT INTO "users" ("id") VALUES (NULL)
+ }
+ end
+
+ it "inserts time" do
+ table = Table.new(:users)
+ manager = Arel::InsertManager.new Table.engine
+
+ time = Time.now
+ manager.insert [[table[:id], time]]
+ manager.to_sql.should be_like %{
+ INSERT INTO "users" ("id") VALUES (#{Table.engine.connection.quote time})
+ }
+ end
+
it 'takes a list of lists' do
table = Table.new(:users)
manager = Arel::InsertManager.new Table.engine
manager.into table
manager.insert [[table[:id], 1], [table[:name], 'aaron']]
manager.to_sql.should be_like %{
- INSERT INTO "users" ("users"."id", "users"."name") VALUES (1, 'aaron')
+ INSERT INTO "users" ("id", "name") VALUES (1, 'aaron')
}
end
@@ -24,7 +44,7 @@ module Arel
manager = Arel::InsertManager.new Table.engine
manager.insert [[table[:id], 1], [table[:name], 'aaron']]
manager.to_sql.should be_like %{
- INSERT INTO "users" ("users"."id", "users"."name") VALUES (1, 'aaron')
+ INSERT INTO "users" ("id", "name") VALUES (1, 'aaron')
}
end
@@ -57,7 +77,7 @@ module Arel
manager.into table
manager.columns << table[:id]
manager.to_sql.should be_like %{
- INSERT INTO "users" ("users"."id")
+ INSERT INTO "users" ("id")
}
end
end
@@ -86,7 +106,7 @@ module Arel
manager.columns << table[:id]
manager.columns << table[:name]
manager.to_sql.should be_like %{
- INSERT INTO "users" ("users"."id", "users"."name") VALUES (1, 'aaron')
+ INSERT INTO "users" ("id", "name") VALUES (1, 'aaron')
}
end
end
diff --git a/spec/arel/visitors/to_sql_spec.rb b/spec/arel/visitors/to_sql_spec.rb
new file mode 100644
index 0000000000..7600d53862
--- /dev/null
+++ b/spec/arel/visitors/to_sql_spec.rb
@@ -0,0 +1,17 @@
+require 'spec_helper'
+
+module Arel
+ module Visitors
+ describe 'the to_sql visitor' do
+ before do
+ @visitor = ToSql.new Table.engine
+ @attr = Table.new(:users)[:id]
+ end
+
+ it "should visit visit_Arel_Attributes_Time" do
+ attr = Attributes::Time.new(@attr.relation, @attr.name, @attr.column)
+ @visitor.accept attr
+ end
+ end
+ end
+end