Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / rt / t / lifecycles / utils.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6
7 my $config;
8 BEGIN {
9 $config = <<END;
10 Set(\%Lifecycles,
11     default => {
12         initial  => [qw(new)],
13         active   => [qw(open stalled)],
14         inactive => [qw(resolved rejected deleted)],
15         defaults => {
16             on_create => 'new',
17             on_merge => 'resolved',
18         },
19         transitions => {
20             ''       => [qw(new open resolved)],
21             new      => [qw(open resolved rejected deleted)],
22             open     => [qw(stalled resolved rejected deleted)],
23             stalled  => [qw(open)],
24             resolved => [qw(open)],
25             rejected => [qw(open)],
26             deleted  => [qw(open)],
27         },
28         actions => {
29             'new -> open'     => {label => 'Open It', update => 'Respond'},
30             'new -> resolved' => {label => 'Resolve', update => 'Comment'},
31             'new -> rejected' => {label => 'Reject',  update => 'Respond'},
32             'new -> deleted'  => {label => 'Delete',  update => ''},
33
34             'open -> stalled'  => {label => 'Stall',   update => 'Comment'},
35             'open -> resolved' => {label => 'Resolve', update => 'Comment'},
36             'open -> rejected' => {label => 'Reject',  update => 'Respond'},
37
38             'stalled -> open'  => {label => 'Open It',  update => ''},
39             'resolved -> open' => {label => 'Re-open',  update => 'Comment'},
40             'rejected -> open' => {label => 'Re-open',  update => 'Comment'},
41             'deleted -> open'  => {label => 'Undelete', update => ''},
42         },
43     },
44     delivery => {
45         initial  => ['ordered'],
46         active   => ['on way', 'delayed'],
47         inactive => ['delivered'],
48         defaults => {
49             on_create => 'ordered',
50             on_merge => 'delivered',
51         },
52         transitions => {
53             ''        => ['ordered'],
54             ordered   => ['on way', 'delayed'],
55             'on way'  => ['delivered'],
56             delayed   => ['on way'],
57             delivered => [],
58         },
59         actions => {
60             'ordered -> on way'   => {label => 'Put On Way', update => 'Respond'},
61             'ordered -> delayed'  => {label => 'Delay',      update => 'Respond'},
62
63             'on way -> delivered' => {label => 'Done',       update => 'Respond'},
64             'delayed -> on way'   => {label => 'Put On Way', update => 'Respond'},
65         },
66     },
67 );
68 END
69 }
70
71 use RT::Test config => $config;
72
73 1;