aboutsummaryrefslogtreecommitdiffstats
path: root/spec/active_relation/unit/session
diff options
context:
space:
mode:
authorNick Kallen <nkallen@nick-kallens-computer-2.local>2008-02-23 19:29:18 -0800
committerNick Kallen <nkallen@nick-kallens-computer-2.local>2008-02-23 19:29:18 -0800
commit51fdd769c0cb096d6e6f04afc3ebb91833d625bc (patch)
tree9e6078f474ccf3424495e567cb39b232ce5c5d25 /spec/active_relation/unit/session
parentf10d3be703cada60783c671866dd48194b800002 (diff)
downloadrails-51fdd769c0cb096d6e6f04afc3ebb91833d625bc.tar.gz
rails-51fdd769c0cb096d6e6f04afc3ebb91833d625bc.tar.bz2
rails-51fdd769c0cb096d6e6f04afc3ebb91833d625bc.zip
Introduced concept of session. It does not yet support multiple databases, nor transactions, but it's a start!
Diffstat (limited to 'spec/active_relation/unit/session')
-rw-r--r--spec/active_relation/unit/session/session_spec.rb70
1 files changed, 70 insertions, 0 deletions
diff --git a/spec/active_relation/unit/session/session_spec.rb b/spec/active_relation/unit/session/session_spec.rb
new file mode 100644
index 0000000000..ddd748334a
--- /dev/null
+++ b/spec/active_relation/unit/session/session_spec.rb
@@ -0,0 +1,70 @@
+require File.join(File.dirname(__FILE__), '..', '..', '..', 'spec_helper')
+
+module ActiveRelation
+ describe Session do
+ before do
+ @relation = Table.new(:users)
+ @session = Session.instance
+ end
+
+ describe Singleton do
+ it "is a singleton" do
+ Session.instance.should be_equal(Session.instance)
+ lambda { Session.new }.should raise_error
+ end
+ end
+
+ describe Session::CRUD do
+ before do
+ @insert = Insertion.new(@relation, @relation[:name] => 'nick')
+ @update = Update.new(@relation, @relation[:name] => 'nick')
+ @delete = Deletion.new(@relation)
+ @select = @relation
+ end
+
+ describe '#create' do
+ it "should execute an insertion on the connection" do
+ mock(@session.connection).insert(@insert.to_sql)
+ @session.create(@insert)
+ end
+ end
+
+ describe '#read' do
+ it "should execute an selection on the connection" do
+ mock(@session.connection).select_all(@select.to_sql)
+ @session.read(@select)
+ end
+ end
+
+ describe '#update' do
+ it "should execute an update on the connection" do
+ mock(@session.connection).update(@update.to_sql)
+ @session.update(@update)
+ end
+ end
+
+ describe '#delete' do
+ it "should execute a delete on the connection" do
+ mock(@session.connection).delete(@delete.to_sql)
+ @session.delete(@delete)
+ end
+ end
+ end
+
+ describe Session::Transactions do
+ describe '#begin' do
+ end
+
+ describe '#end' do
+ end
+ end
+
+ describe Session::UnitOfWork do
+ describe '#flush' do
+ end
+
+ describe '#clear' do
+ end
+ end
+ end
+end \ No newline at end of file