=head1 Name

queues


=head1 Ziel

Es wird eine Test-Queue im RT angelegt. Der Test-User wird durch das
Eintragem einer ACL auf die RT-Nutzung vorbereitet.

Dies ist hauptsächlich Vorbereitung auf den zweiten Teil in Test 31, da
die RT-Initialisierung ohne existierende Queues nicht funktioniert.

=head1 Tests

Der Code trägt Datensätze in die Queues queue und queue_acl sowie ein
paar Deskriptoreinträge ein und prüft somit deren Vorhandensein. 

=cut


package Test::queues;
use utf8;
use warnings;
use strict; use warnings;
BEGIN { unshift(@INC,($ENV{'POPHOME'}||'@POPHOME@').'/lib')
			unless $ENV{'KUNDE_NO_PERLPATH'};
      }


use Test::More tests => 52; $|=1;
use Dbase::Test;


#use Dbase::Help qw();
use Dbase::Globals qw(gen_descr);
#use Fehler qw();
#use Loader qw();

okF "delete from queue";
okF "delete from nextid where name = 'queue'";
okF "delete from queue_acl";

# absichtlich andersrum
foreach my $i(qw(dead resolved stalled open)) {
	okS "tickets//$i",
		sub {gen_descr("tickets",undef,$i)};
}

# ditto anders numeriert
okS "tickett/create",sub{gen_descr("tickett",2,"create",undef,"content")};

# fürs RT
okS 'kunde/rt_incidents', sub { gen_descr( kunde => undef, 'rt_incidents' ) };

foreach my $i(qw(correspond comments)) {
	okS "tickett//$i",sub{gen_descr("tickett",undef,$i,undef,"content")};
}
foreach my $i(qw(area status queue_id owner
		requestors priority final_priority date_due subject date_told
		effective_sn kunde queue_ptr remail work docushare info date_fdue)) {
	okS "tickett//$i",sub{gen_descr("tickett",undef,$i)};
}
foreach my $i(qw(incidents)) {
	okS"tickett//$i",sub{gen_descr("tickett",undef,$i,undef,"addon")};
}

foreach my $i(qw(display manipulate admin)) { ## mail: ?
	okS "rt_acl//$i",sub{gen_descr("rt_acl",undef,$i)};
}

foreach my $i(qw(m_owner_trans m_members_trans m_user_trans
	m_user_create m_members_correspond m_members_comment m_user_resolve
	allow_user_create m_mail m_admin_trans otrs)) {
	okS"rt_queue//$i",sub{gen_descr("rt_queue",undef,$i)};
}

foreach my $i(qw(incidents)) {
	okS"rt_queue//$i",sub{gen_descr("rt_queue",undef,$i,undef,"addon")};
}

okF "insert into queue set name='test', email='test\@fubar.test.example',flags=%DESCRS%rt_queue%-%";

okF "insert into queue_acl set person=%PERSON%$ENV{'USER'}%, queue=%QUEUE%test%, acls=%DESCRS%rt_acl%display,manipulate,admin%";

okF "update person set email='tester\@fubar.test.example' where id=%PERSON%$ENV{'USER'}%";

## setze den aktuellen User auf RT-Admin-Status
okS "pwdomain//rt_admin",sub{gen_descr("pwdomain",undef,"rt_admin",undef,"passwd")};

okF "update person set pwuse = pwuse | (1<<%DESCR%pwdomain%rt_admin%) where id = %PERSON%$ENV{'USER'}%";


### dieses Flag wird ebenfalls vom RT gebraucht
okS "pwdomain//pop",sub{gen_descr("pwdomain",undef,"pop",undef,"passwd")};

okF "update person set pwuse = pwuse | (1<<%DESCR%pwdomain%pop%) where id = %PERSON%$ENV{'USER'}%";
