diff options
author | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-02-23 19:29:18 -0800 |
---|---|---|
committer | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-02-23 19:29:18 -0800 |
commit | 51fdd769c0cb096d6e6f04afc3ebb91833d625bc (patch) | |
tree | 9e6078f474ccf3424495e567cb39b232ce5c5d25 /spec/active_relation/unit/session | |
parent | f10d3be703cada60783c671866dd48194b800002 (diff) | |
download | rails-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.rb | 70 |
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 |