#!/usr/bin/perl use strict; use warnings; use Test::More tests => 8; use RT::Test; RT->Config->Set('Plugins',qw(RT::Extension::MergeUsers)); use_ok('RT::Extension::MergeUsers'); my ($id, $message); # create N unique users ($$ == our pid) my $primary_user = RT::User->new($RT::SystemUser); ($id, $message) = $primary_user->Create( EmailAddress => "primary-$$\@example.com" ); ok($id, "Created 'primary' user? $message"); my $primary_id = $id; my $secondary_user = RT::User->new($RT::SystemUser); ($id, $message) = $secondary_user->Create( EmailAddress => "secondary-$$\@example.com" ); ok($id, "Created 'secondary' user? $message"); my $secondary_id = $id; # successfully merges users ($id, $message) = $secondary_user->MergeInto($primary_user); ok($id, "Successfully merges users? $message"); { my $user = RT::User->new( $RT::SystemUser ); $user->LoadByEmail( "primary-$$\@example.com" ); is($user->id, $primary_user->id, "loaded user"); my ($status, $msg) = $user->SetEmailAddress( "secondary-$$\@example.com" ); ok $status, "changed primary address to something we already had" or diag "error: $msg"; $user->LoadOriginal( id => $secondary_id ); is($user->id, $secondary_id, "loaded original record"); ok(!$user->EmailAddress, "secondary record has no email"); } 1;