aboutsummaryrefslogtreecommitdiffstats
path: root/spec/arel/nodes/update_statement_spec.rb
diff options
context:
space:
mode:
authorMike Dalessio <mike@csa.net>2010-08-16 23:59:18 -0400
committerMike Dalessio <mike@csa.net>2010-08-19 01:37:18 -0400
commit02ab2b37d7fdd823cf3aaac66052437dde36daa3 (patch)
treea9a1d16dd070ef00ee2aba04e613f3ebb838832a /spec/arel/nodes/update_statement_spec.rb
parent788f33fb59af40e8cb29a233a8d6be9941b52ea7 (diff)
downloadrails-02ab2b37d7fdd823cf3aaac66052437dde36daa3.tar.gz
rails-02ab2b37d7fdd823cf3aaac66052437dde36daa3.tar.bz2
rails-02ab2b37d7fdd823cf3aaac66052437dde36daa3.zip
Statement nodes deep-copy AST nodes
Diffstat (limited to 'spec/arel/nodes/update_statement_spec.rb')
-rw-r--r--spec/arel/nodes/update_statement_spec.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/spec/arel/nodes/update_statement_spec.rb b/spec/arel/nodes/update_statement_spec.rb
new file mode 100644
index 0000000000..438eaf1dc2
--- /dev/null
+++ b/spec/arel/nodes/update_statement_spec.rb
@@ -0,0 +1,22 @@
+require 'spec_helper'
+
+describe Arel::Nodes::UpdateStatement do
+ describe "clone" do
+ it "clones cores" do
+ statement = Arel::Nodes::UpdateStatement.new
+ statement.wheres = %w[a b c]
+ statement.values = %w[x y z]
+
+ statement.wheres.each_with_index do |o, j|
+ o.should_receive(:clone).and_return("#{o}#{j}")
+ end
+ statement.values.each_with_index do |o, j|
+ o.should_receive(:clone).and_return("#{o}#{j}")
+ end
+
+ dolly = statement.clone
+ dolly.wheres.should == %w[a0 b1 c2]
+ dolly.values.should == %w[x0 y1 z2]
+ end
+ end
+end