aboutsummaryrefslogtreecommitdiffstats
path: root/spec/arel/unit/relations/deletion_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/arel/unit/relations/deletion_spec.rb')
-rw-r--r--spec/arel/unit/relations/deletion_spec.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/arel/unit/relations/deletion_spec.rb b/spec/arel/unit/relations/deletion_spec.rb
new file mode 100644
index 0000000000..f975720d83
--- /dev/null
+++ b/spec/arel/unit/relations/deletion_spec.rb
@@ -0,0 +1,42 @@
+require File.join(File.dirname(__FILE__), '..', '..', '..', 'spec_helper')
+
+module Arel
+ describe Deletion do
+ before do
+ @relation = Table.new(:users)
+ end
+
+ describe '#to_sql' do
+ it 'manufactures sql deleting a table relation' do
+ Deletion.new(@relation).to_sql.should be_like("
+ DELETE
+ FROM `users`
+ ")
+ end
+
+ it 'manufactures sql deleting a selection relation' do
+ Deletion.new(@relation.select(@relation[:id].eq(1))).to_sql.should be_like("
+ DELETE
+ FROM `users`
+ WHERE `users`.`id` = 1
+ ")
+ end
+
+ it "manufactures sql deleting a ranged relation" do
+ Deletion.new(@relation.take(1)).to_sql.should be_like("
+ DELETE
+ FROM `users`
+ LIMIT 1
+ ")
+ end
+ end
+
+ describe '#call' do
+ it 'executes a delete on the connection' do
+ deletion = Deletion.new(@relation)
+ mock(connection = Object.new).delete(deletion.to_sql)
+ deletion.call(connection)
+ end
+ end
+ end
+end \ No newline at end of file