summaryrefslogtreecommitdiff
path: root/rt/t/lifecycles
diff options
context:
space:
mode:
Diffstat (limited to 'rt/t/lifecycles')
-rw-r--r--rt/t/lifecycles/basics.t8
-rw-r--r--rt/t/lifecycles/dates.t67
-rw-r--r--rt/t/lifecycles/moving.t4
-rw-r--r--rt/t/lifecycles/types.t33
-rw-r--r--rt/t/lifecycles/unresolved-deps.t4
-rw-r--r--rt/t/lifecycles/utils.pl7
6 files changed, 79 insertions, 44 deletions
diff --git a/rt/t/lifecycles/basics.t b/rt/t/lifecycles/basics.t
index 554c95a73..e18bea3c4 100644
--- a/rt/t/lifecycles/basics.t
+++ b/rt/t/lifecycles/basics.t
@@ -1,7 +1,5 @@
-
use strict;
use warnings;
-use Data::Dumper;
BEGIN {require 't/lifecycles/utils.pl'};
@@ -19,7 +17,7 @@ my $tstatus = sub {
diag "check basic API";
{
- my $schema = $general->Lifecycle;
+ my $schema = $general->LifecycleObj;
isa_ok($schema, 'RT::Lifecycle');
is $schema->Name, 'default', "it's a default schema";
is_deeply [$schema->Valid],
@@ -80,7 +78,7 @@ diag "check status input on create";
my $valid = 1;
foreach ( @form_values ) {
- next if $general->Lifecycle->IsValid($_);
+ next if $general->LifecycleObj->IsValid($_);
$valid = 0;
diag("$_ doesn't appear to be a valid status, but it was in the form");
}
@@ -244,3 +242,5 @@ diag "'!inactive -> inactive' actions are shown even if ticket has unresolved de
);
}
+undef $m;
+done_testing;
diff --git a/rt/t/lifecycles/dates.t b/rt/t/lifecycles/dates.t
index 4f613f8d3..0c74a1b21 100644
--- a/rt/t/lifecycles/dates.t
+++ b/rt/t/lifecycles/dates.t
@@ -1,7 +1,5 @@
-
use strict;
use warnings;
-use Data::Dumper;
BEGIN {require 't/lifecycles/utils.pl'};
@@ -23,16 +21,13 @@ my $tstatus = sub {
return $ticket->Status;
};
-my ($baseurl, $m) = RT::Test->started_ok;
-ok $m->login, 'logged in';
-
diag "check basic API";
{
- my $schema = $general->Lifecycle;
+ my $schema = $general->LifecycleObj;
isa_ok($schema, 'RT::Lifecycle');
is $schema->Name, 'default', "it's a default schema";
- $schema = $delivery->Lifecycle;
+ $schema = $delivery->LifecycleObj;
isa_ok($schema, 'RT::Lifecycle');
is $schema->Name, 'delivery', "it's a delivery schema";
}
@@ -47,8 +42,8 @@ diag "dates on create for default schema";
Status => 'new',
);
ok $id, 'created a ticket';
- ok $ticket->StartedObj->Unix <= 0, 'started is not set';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok !$ticket->StartedObj->IsSet, 'started is not set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
}
{
my $ticket = RT::Ticket->new( RT->SystemUser );
@@ -58,8 +53,8 @@ diag "dates on create for default schema";
Status => 'open',
);
ok $id, 'created a ticket';
- ok $ticket->StartedObj->Unix > 0, 'started is set';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok $ticket->StartedObj->IsSet, 'started is set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
}
{
my $ticket = RT::Ticket->new( RT->SystemUser );
@@ -69,8 +64,8 @@ diag "dates on create for default schema";
Status => 'resolved',
);
ok $id, 'created a ticket';
- ok $ticket->StartedObj->Unix > 0, 'started is set';
- ok $ticket->ResolvedObj->Unix > 0, 'resolved is set';
+ ok $ticket->StartedObj->IsSet, 'started is set';
+ ok $ticket->ResolvedObj->IsSet, 'resolved is set';
}
my $test_date = '2008-11-28 12:00:00';
@@ -140,7 +135,7 @@ diag "dates on create for delivery schema";
is $ticket->Status, 'ordered', "Status is ordered";
my ($statusval,$statusmsg) = $ticket->SetStatus('on way');
ok($statusval,$statusmsg);
- ok $ticket->StartedObj->Unix > 0, 'started is set to ' .$ticket->StartedObj->AsString ;
+ ok $ticket->StartedObj->IsSet, 'started is set to ' .$ticket->StartedObj->AsString ;
is $ticket->ResolvedObj->Unix, 0, 'resolved is not set';
}
{
@@ -157,8 +152,8 @@ diag "dates on create for delivery schema";
($statusval,$statusmsg) = $ticket->SetStatus('delivered');
ok($statusval,$statusmsg);
- ok $ticket->StartedObj->Unix > 0, 'started is set';
- ok $ticket->ResolvedObj->Unix > 0, 'resolved is set';
+ ok $ticket->StartedObj->IsSet, 'started is set';
+ ok $ticket->ResolvedObj->IsSet, 'resolved is set';
}
my $test_date = '2008-11-28 12:00:00';
@@ -220,30 +215,30 @@ diag "dates on status change for default schema";
Status => 'new',
);
ok $id, 'created a ticket';
- ok $ticket->StartedObj->Unix <= 0, 'started is not set';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok !$ticket->StartedObj->IsSet, 'started is not set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
(my $status, $msg) = $ticket->SetStatus('open');
ok $status, 'changed status' or diag "error: $msg";
- ok $ticket->StartedObj->Unix > 0, 'started is set';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok $ticket->StartedObj->IsSet, 'started is set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
my $started = $ticket->StartedObj->Unix;
($status, $msg) = $ticket->SetStatus('stalled');
ok $status, 'changed status' or diag "error: $msg";
is $ticket->StartedObj->Unix, $started, 'started is set and the same';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
($status, $msg) = $ticket->SetStatus('open');
ok $status, 'changed status' or diag "error: $msg";
is $ticket->StartedObj->Unix, $started, 'started is set and the same';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
($status, $msg) = $ticket->SetStatus('resolved');
ok $status, 'changed status' or diag "error: $msg";
is $ticket->StartedObj->Unix, $started, 'started is set and the same';
- ok $ticket->ResolvedObj->Unix > 0, 'resolved is set';
+ ok $ticket->ResolvedObj->IsSet, 'resolved is set';
}
diag "dates on status change for delivery schema";
@@ -255,25 +250,25 @@ diag "dates on status change for delivery schema";
Status => 'ordered',
);
ok $id, 'created a ticket';
- ok $ticket->StartedObj->Unix <= 0, 'started is not set';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok !$ticket->StartedObj->IsSet, 'started is not set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
(my $status, $msg) = $ticket->SetStatus('delayed');
ok $status, 'changed status' or diag "error: $msg";
- ok $ticket->StartedObj->Unix > 0, 'started is set';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok $ticket->StartedObj->IsSet, 'started is set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
my $started = $ticket->StartedObj->Unix;
($status, $msg) = $ticket->SetStatus('on way');
ok $status, 'changed status' or diag "error: $msg";
is $ticket->StartedObj->Unix, $started, 'started is set and the same';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
($status, $msg) = $ticket->SetStatus('delivered');
ok $status, 'changed status' or diag "error: $msg";
is $ticket->StartedObj->Unix, $started, 'started is set and the same';
- ok $ticket->ResolvedObj->Unix > 0, 'resolved is set';
+ ok $ticket->ResolvedObj->IsSet, 'resolved is set';
}
diag "add partial map between general->delivery";
@@ -299,18 +294,20 @@ diag "check date changes on moving a ticket";
Status => 'new',
);
ok $id, 'created a ticket';
- ok $ticket->StartedObj->Unix <= 0, 'started is not set';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok !$ticket->StartedObj->IsSet, 'started is not set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
(my $status, $msg) = $ticket->SetQueue( $delivery->id );
ok $status, "moved ticket between queues with different schemas";
is $ticket->Status, 'on way', 'status has been changed';
- ok $ticket->StartedObj->Unix > 0, 'started is set';
- ok $ticket->ResolvedObj->Unix <= 0, 'resolved is not set';
+ ok $ticket->StartedObj->IsSet, 'started is set';
+ ok !$ticket->ResolvedObj->IsSet, 'resolved is not set';
($status, $msg) = $ticket->SetQueue( $general->id );
ok $status, "moved ticket between queues with different schemas";
is $ticket->Status, 'resolved', 'status has been changed';
- ok $ticket->StartedObj->Unix > 0, 'started is set';
- ok $ticket->ResolvedObj->Unix > 0, 'resolved is set';
+ ok $ticket->StartedObj->IsSet, 'started is set';
+ ok $ticket->ResolvedObj->IsSet, 'resolved is set';
}
+
+done_testing;
diff --git a/rt/t/lifecycles/moving.t b/rt/t/lifecycles/moving.t
index 5f184e2c2..8a03e3ea6 100644
--- a/rt/t/lifecycles/moving.t
+++ b/rt/t/lifecycles/moving.t
@@ -1,7 +1,5 @@
-
use strict;
use warnings;
-use Data::Dumper;
BEGIN {require 't/lifecycles/utils.pl'};
@@ -94,3 +92,5 @@ diag "one way map doesn't work backwards";
is $ticket->Queue, $delivery->id, 'queue is steal the same';
is $ticket->Status, 'ordered', 'status is steal the same';
}
+
+done_testing;
diff --git a/rt/t/lifecycles/types.t b/rt/t/lifecycles/types.t
new file mode 100644
index 000000000..79b0714b1
--- /dev/null
+++ b/rt/t/lifecycles/types.t
@@ -0,0 +1,33 @@
+use strict;
+use warnings;
+
+BEGIN {require 't/lifecycles/utils.pl'};
+
+is_deeply( [ RT::Lifecycle->ListAll ], [qw/ approvals default delivery /],
+ "Get the list of all lifecycles (implicitly for for tickets)");
+is_deeply( [ RT::Lifecycle->ListAll('ticket') ], [qw/ approvals default delivery /],
+ "Get the list of all lifecycles for tickets");
+is_deeply( [ RT::Lifecycle->List], [qw/ default delivery /],
+ "Get the list of lifecycles without approvals (implicitly for for tickets)");
+is_deeply( [ RT::Lifecycle->List('ticket') ], [qw/ default delivery /],
+ "Get the list of lifecycles without approvals for tickets");
+is_deeply( [ RT::Lifecycle->List('racecar') ], [qw/ racing /],
+ "Get the list of lifecycles for other types");
+
+my $tickets = RT::Lifecycle->Load( Name => '', Type => 'ticket' );
+ok($tickets, "Got a generalized lifecycle for tickets");
+isa_ok( $tickets, "RT::Lifecycle::Ticket", "Is the right subclass" );
+is_deeply( [ sort $tickets->Valid ],
+ [ sort qw(new open stalled resolved rejected deleted ordered),
+ 'on way', 'delayed', 'delivered' ],
+ "Only gets ticket statuses" );
+
+
+my $racecars = RT::Lifecycle->Load( Name => '', Type => 'racecar' );
+ok($racecars, "Got a generalized lifecycle for racecars");
+isa_ok( $racecars, "RT::Lifecycle", "Is the generalized subclass" );
+is_deeply( [ sort $racecars->Valid ],
+ [ sort ('on-your-mark', 'get-set', 'go', 'first', 'second', 'third', 'no-place') ],
+ "Only gets racecar statuses" );
+
+done_testing;
diff --git a/rt/t/lifecycles/unresolved-deps.t b/rt/t/lifecycles/unresolved-deps.t
index 02c1942d7..5da4b8fc5 100644
--- a/rt/t/lifecycles/unresolved-deps.t
+++ b/rt/t/lifecycles/unresolved-deps.t
@@ -1,8 +1,6 @@
use strict;
use warnings;
-use Data::Dumper;
-use Test::More tests => 15 + 1; # plus one for warnings check
BEGIN {require 't/lifecycles/utils.pl'};
my $general = RT::Test->load_or_create_queue(
@@ -41,3 +39,5 @@ ok $m->login, 'logged in';
);
}
+undef $m;
+done_testing;
diff --git a/rt/t/lifecycles/utils.pl b/rt/t/lifecycles/utils.pl
index 3813df3e9..4dbba238d 100644
--- a/rt/t/lifecycles/utils.pl
+++ b/rt/t/lifecycles/utils.pl
@@ -63,10 +63,15 @@ Set(\%Lifecycles,
'delayed -> on way' => {label => 'Put On Way', update => 'Respond'},
},
},
+ racing => {
+ type => 'racecar',
+ active => ['on-your-mark', 'get-set', 'go'],
+ inactive => ['first', 'second', 'third', 'no-place'],
+ },
);
END
}
-use RT::Test config => $config;
+use RT::Test config => $config, tests => undef;
1;