import rt 3.8.7
[freeside.git] / rt / t / shredder / 03plugin_users.t
diff --git a/rt/t/shredder/03plugin_users.t b/rt/t/shredder/03plugin_users.t
new file mode 100644 (file)
index 0000000..45fc8a2
--- /dev/null
@@ -0,0 +1,40 @@
+#!/usr/bin/perl -w
+
+use strict;
+use warnings;
+
+use Test::Deep;
+use File::Spec;
+use Test::More tests => 9;
+use RT::Test ();
+BEGIN {
+    my $shredder_utils = RT::Test::get_relocatable_file('utils.pl',
+        File::Spec->curdir());
+    require $shredder_utils;
+}
+
+
+my @ARGS = sort qw(limit status name member_of email replace_relations no_tickets);
+
+use_ok('RT::Shredder::Plugin::Users');
+{
+    my $plugin = new RT::Shredder::Plugin::Users;
+    isa_ok($plugin, 'RT::Shredder::Plugin::Users');
+
+    is(lc $plugin->Type, 'search', 'correct type');
+
+    my @args = sort $plugin->SupportArgs;
+    cmp_deeply(\@args, \@ARGS, "support all args");
+
+
+    my ($status, $msg) = $plugin->TestArgs( name => 'r??t*' );
+    ok($status, "arg name = 'r??t*'") or diag("error: $msg");
+
+    for (qw(any disabled enabled)) {
+        my ($status, $msg) = $plugin->TestArgs( status => $_ );
+        ok($status, "arg status = '$_'") or diag("error: $msg");
+    }
+    ($status, $msg) = $plugin->TestArgs( status => '!@#' );
+    ok(!$status, "bad 'status' arg value");
+}
+