]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - lib/mv/mv_dummy_runner.rb
lib,test: replace connection query() method with sync_exec{,_params}.
[mailshears.git] / lib / mv / mv_dummy_runner.rb
index 0d06fc180820397016c5e6c62a1e7c2953dddcc3..f73066967d3f42d41e6c3921b48a0b960ce1de8c 100644 (file)
@@ -1,14 +1,45 @@
 require 'common/runner'
 
+# Dummy implementation of a {MvRunner}. Its <tt>run()</tt> method will
+# tell you what would have been moved, but will not actually perform
+# the operation.
+#
 class MvDummyRunner
   include Runner
 
-  def run(plugin, src, dst)
-    if src.include?('@') then
-      puts "Would move account: #{src} to #{dst}"
-    else
-      puts "Would move domain: #{src} to #{dst}"
+  # Pretend to move *src* to *dst* with *plugin*. Some "what if"
+  # information will be output to stdout. This is useful to see if
+  # there would be (for example) a username collision at *dst* before
+  # attempting the move in earnest.
+  #
+  # @param cfg [Configuration] the configuration options to pass to
+  #   the *plugin* we're runnning.
+  #
+  # @param plugin [Class] plugin class that will perform the move.
+  #
+  # @param src [User] the source user to be moved.
+  #
+  # @param dst [User] the destination user, to which we will move *src*.
+  #
+  def run(cfg, plugin, src, dst)
+
+    if src.is_a?(Domain) or dst.is_a?(Domain) then
+      msg = 'only users can be moved'
+      raise NotImplementedError.new(msg)
     end
+
+    # Since we're not actually moving anything, the destination
+    # description is really only useful for seeing whether or not we'd
+    # be trying to move in on top of an existing account.
+    src_description = plugin.describe(src)
+    dst_description = plugin.describe(dst)
+
+    msg  = "Would move user "
+    msg += add_description(src, src_description)
+    msg += " to "
+    add_description(dst, dst_description)
+    msg += "."
+    report(plugin, msg)
   end
 
 end