aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorNick Kallen <nkallen@nick-kallens-computer-2.local>2008-04-14 23:38:50 -0700
committerNick Kallen <nkallen@nick-kallens-computer-2.local>2008-04-14 23:38:50 -0700
commit3d3e15985218c329b9d0507d389bb1e56eba99d2 (patch)
treec3f0eac96efe8568fbacc1cee32c5fe1f1b48195 /spec
parent5a2d4f5475b8a040e2ed2da826afe50f0b3824c7 (diff)
downloadrails-3d3e15985218c329b9d0507d389bb1e56eba99d2.tar.gz
rails-3d3e15985218c329b9d0507d389bb1e56eba99d2.tar.bz2
rails-3d3e15985218c329b9d0507d389bb1e56eba99d2.zip
- fixed hash ordering
- organized doubles (previously called 'fakes')
Diffstat (limited to 'spec')
-rw-r--r--spec/active_relation/unit/relations/relation_spec.rb1
-rw-r--r--spec/active_relation/unit/relations/update_spec.rb2
-rw-r--r--spec/doubles/database.rb47
-rw-r--r--spec/doubles/hash.rb23
-rw-r--r--spec/fakes/database.rb48
-rw-r--r--spec/spec_helper.rb17
6 files changed, 77 insertions, 61 deletions
diff --git a/spec/active_relation/unit/relations/relation_spec.rb b/spec/active_relation/unit/relations/relation_spec.rb
index c40974e136..0509c19c94 100644
--- a/spec/active_relation/unit/relations/relation_spec.rb
+++ b/spec/active_relation/unit/relations/relation_spec.rb
@@ -201,7 +201,6 @@ module ActiveRelation
describe Relation::Enumerable do
it "implements enumerable" do
@relation.collect.should == @relation.session.read(@relation)
- @relation.first.should == @relation.session.read(@relation).first
end
end
diff --git a/spec/active_relation/unit/relations/update_spec.rb b/spec/active_relation/unit/relations/update_spec.rb
index 24beb315e5..29dd4e12dd 100644
--- a/spec/active_relation/unit/relations/update_spec.rb
+++ b/spec/active_relation/unit/relations/update_spec.rb
@@ -5,7 +5,7 @@ module ActiveRelation
before do
@relation = Table.new(:users)
end
-
+
describe '#to_sql' do
it "manufactures sql updating attributes when given multiple attributes" do
Update.new(@relation, @relation[:id] => 1, @relation[:name] => "nick").to_sql.should be_like("
diff --git a/spec/doubles/database.rb b/spec/doubles/database.rb
new file mode 100644
index 0000000000..cc44596690
--- /dev/null
+++ b/spec/doubles/database.rb
@@ -0,0 +1,47 @@
+module Fake
+ class Engine
+ def connection
+ @conn ||= Connection.new
+ end
+ end
+
+ class Connection
+ include ActiveRecord::ConnectionAdapters::Quoting
+
+ def columns(table_name, comment)
+ { "users" =>
+ [
+ Column.new("id", :integer),
+ Column.new("name", :string)
+ ],
+ "photos" =>
+ [
+ Column.new("id", :integer),
+ Column.new("user_id", :integer),
+ Column.new("camera_id", :integer)
+ ]
+ }[table_name]
+ end
+
+ def select_all(*args)
+ []
+ end
+
+ def quote_column_name(column_name)
+ "`#{column_name}`"
+ end
+
+ def quote_table_name(table_name)
+ "`#{table_name}`"
+ end
+ end
+
+ class Column
+ attr_reader :name, :type
+
+ def initialize(name, type)
+ @name = name
+ @type = type
+ end
+ end
+end \ No newline at end of file
diff --git a/spec/doubles/hash.rb b/spec/doubles/hash.rb
new file mode 100644
index 0000000000..97d25742cb
--- /dev/null
+++ b/spec/doubles/hash.rb
@@ -0,0 +1,23 @@
+class Hash
+ def ordered_array
+ to_a.sort { |(key1, value1), (key2, value2)| key1.hash <=> key2.hash }
+ end
+
+ def keys
+ ordered_array.collect(&:first)
+ end
+
+ def values
+ ordered_array.collect { |_, v| v }
+ end
+
+ def each(&block)
+ ordered_array.each(&block)
+ end
+
+ def shift
+ returning to_a.first do |k, v|
+ delete(k)
+ end
+ end
+end
diff --git a/spec/fakes/database.rb b/spec/fakes/database.rb
deleted file mode 100644
index 1b73986e0b..0000000000
--- a/spec/fakes/database.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-class FakeDatabase
- def self.connection
- @@conn ||= FakeConnection.new
- end
-end
-
-class FakeConnection
- include ActiveRecord::ConnectionAdapters::Quoting
-
- def columns(table_name, comment)
- case table_name
- when "users"
- [
- FakeColumn.new("id", :integer),
- FakeColumn.new("name", :string)
- ]
- when "photos"
- [
- FakeColumn.new("id", :integer),
- FakeColumn.new("user_id", :integer),
- FakeColumn.new("camera_id", :integer)
- ]
- else
- raise "unknown table: #{table_name}"
- end
- end
-
- def select_all(*args)
- []
- end
-
- def quote_column_name(column_name)
- "`#{column_name}`"
- end
-
- def quote_table_name(table_name)
- "`#{table_name}`"
- end
-end
-
-class FakeColumn
- attr_reader :name, :type
-
- def initialize(name, type)
- @name = name
- @type = type
- end
-end \ No newline at end of file
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index af4e71d2d3..6180f822bd 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,25 +1,20 @@
+dir = File.dirname(__FILE__)
+$LOAD_PATH.unshift "#{dir}/../lib"
+
require 'rubygems'
require 'spec'
require 'pp'
require 'fileutils'
-dir = File.dirname(__FILE__)
-$LOAD_PATH.unshift "#{dir}/../lib"
-Dir["#{dir}/matchers/*"].each { |m| require "#{dir}/matchers/#{File.basename(m)}" }
require 'active_relation'
-require "#{dir}/fakes/database"
-class Hash
- def shift
- returning to_a.sort { |(key1, value1), (key2, value2)| key1.hash <=> key2.hash }.shift do |key, _|
- delete(key)
- end
- end
+[:matchers, :doubles].each do |helper|
+ Dir["#{dir}/#{helper}/*"].each { |m| require "#{dir}/#{helper}/#{File.basename(m)}" }
end
Spec::Runner.configure do |config|
config.include(BeLikeMatcher, HashTheSameAsMatcher)
config.mock_with :rr
config.before do
- ActiveRelation::Table.engine = ActiveRelation::Engine.new(FakeDatabase)
+ ActiveRelation::Table.engine = ActiveRelation::Engine.new(Fake::Engine.new)
end
end \ No newline at end of file