aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/arel/insert_manager.rb29
-rw-r--r--spec/arel/select_manager.rb (renamed from spec/arel/tree_manager.rb)38
-rw-r--r--spec/arel/table_spec.rb8
-rw-r--r--spec/spec_helper.rb4
4 files changed, 56 insertions, 23 deletions
diff --git a/spec/arel/insert_manager.rb b/spec/arel/insert_manager.rb
new file mode 100644
index 0000000000..8d49556fa9
--- /dev/null
+++ b/spec/arel/insert_manager.rb
@@ -0,0 +1,29 @@
+require 'spec_helper'
+
+module Arel
+ describe 'insert manager' do
+ describe 'new' do
+ it 'takes an engine' do
+ Arel::InsertManager.new Table.engine
+ end
+ end
+
+ describe 'into' do
+ it 'takes an engine' do
+ manager = Arel::InsertManager.new Table.engine
+ manager.into(Table.new(:users)).should == manager
+ end
+ end
+
+ describe 'to_sql' do
+ it 'converts to sql' do
+ table = Table.new :users
+ manager = Arel::InsertManager.new Table.engine
+ manager.into table
+ manager.to_sql.should be_like %{
+ INSERT INTO "users"
+ }
+ end
+ end
+ end
+end
diff --git a/spec/arel/tree_manager.rb b/spec/arel/select_manager.rb
index 92af2f3dcd..928db49c52 100644
--- a/spec/arel/tree_manager.rb
+++ b/spec/arel/select_manager.rb
@@ -1,46 +1,46 @@
require 'spec_helper'
module Arel
- describe 'tree manager' do
+ describe 'select manager' do
describe 'project' do
it 'takes strings' do
table = Table.new :users
- manager = Arel::TreeManager.new Table.engine
+ manager = Arel::SelectManager.new Table.engine
manager.project '*'
- manager.to_sql.should == %{
+ manager.to_sql.should be_like %{
SELECT *
- }.gsub("\n", '').gsub(/(^\s*|\s*$)/, '').squeeze(' ')
+ }
end
it "takes sql literals" do
table = Table.new :users
- manager = Arel::TreeManager.new Table.engine
+ manager = Arel::SelectManager.new Table.engine
manager.project Nodes::SqlLiteral.new '*'
- manager.to_sql.should == %{
+ manager.to_sql.should be_like %{
SELECT *
- }.gsub("\n", '').gsub(/(^\s*|\s*$)/, '').squeeze(' ')
+ }
end
end
describe 'take' do
it "knows take" do
table = Table.new :users
- manager = Arel::TreeManager.new Table.engine
+ manager = Arel::SelectManager.new Table.engine
manager.from(table).project(table['id'])
manager.where(table['id'].eq(1))
manager.take 1
- manager.to_sql.should == %{
+ manager.to_sql.should be_like %{
SELECT "users"."id"
FROM "users"
WHERE "users"."id" = 1
LIMIT 1
- }.gsub("\n", '').gsub(/(^\s*|\s*$)/, '').squeeze(' ')
+ }
end
it "chains" do
table = Table.new :users
- manager = Arel::TreeManager.new Table.engine
+ manager = Arel::SelectManager.new Table.engine
manager.take(1).should == manager
end
end
@@ -48,19 +48,19 @@ module Arel
describe 'where' do
it "knows where" do
table = Table.new :users
- manager = Arel::TreeManager.new Table.engine
+ manager = Arel::SelectManager.new Table.engine
manager.from(table).project(table['id'])
manager.where(table['id'].eq(1))
- manager.to_sql.should == %{
+ manager.to_sql.should be_like %{
SELECT "users"."id"
FROM "users"
WHERE "users"."id" = 1
- }.gsub("\n", '').gsub(/(^\s*|\s*$)/, '').squeeze(' ')
+ }
end
it "chains" do
table = Table.new :users
- manager = Arel::TreeManager.new Table.engine
+ manager = Arel::SelectManager.new Table.engine
manager.from(table)
manager.project(table['id']).where(table['id'].eq 1).should == manager
end
@@ -69,18 +69,18 @@ module Arel
describe 'from' do
it "makes sql" do
table = Table.new :users
- manager = Arel::TreeManager.new Table.engine
+ manager = Arel::SelectManager.new Table.engine
manager.from table
manager.project table['id']
- manager.to_sql.should == 'SELECT "users"."id" FROM "users"'
+ manager.to_sql.should be_like 'SELECT "users"."id" FROM "users"'
end
it "chains" do
table = Table.new :users
- manager = Arel::TreeManager.new Table.engine
+ manager = Arel::SelectManager.new Table.engine
manager.from(table).project(table['id']).should == manager
- manager.to_sql.should == 'SELECT "users"."id" FROM "users"'
+ manager.to_sql.should be_like 'SELECT "users"."id" FROM "users"'
end
end
end
diff --git a/spec/arel/table_spec.rb b/spec/arel/table_spec.rb
index cf309ca8ca..c2bcd3911a 100644
--- a/spec/arel/table_spec.rb
+++ b/spec/arel/table_spec.rb
@@ -21,10 +21,10 @@ module Arel
describe 'project' do
it 'can project' do
manager = @relation.project '*'
- manager.to_sql.should == %{
+ manager.to_sql.should be_like %{
SELECT *
FROM "users"
- }.gsub("\n", '').gsub(/(^\s*|\s*$)/, '').squeeze(' ')
+ }
end
end
@@ -33,11 +33,11 @@ module Arel
manager = @relation.where @relation[:id].eq 1
manager.project @relation[:id]
manager.should be_kind_of TreeManager
- manager.to_sql.should == %{
+ manager.to_sql.should be_like %{
SELECT "users"."id"
FROM "users"
WHERE "users"."id" = 1
- }.gsub("\n", '').gsub(/(^\s*|\s*$)/, '').squeeze(' ')
+ }
end
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 5d3f5a2950..797fe0a028 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -3,11 +3,15 @@ require 'spec'
require 'fileutils'
require 'arel'
+require 'support/matchers/be_like'
+
if adapter = ENV['ADAPTER']
require "support/connections/#{adapter}_connection.rb"
end
Spec::Runner.configure do |config|
+ config.include Matchers
+
if defined?(ActiveRecord::Base)
tmp = File.expand_path('../../tmp', __FILE__)