summaryrefslogtreecommitdiff
path: root/rt/t/charts/basics.t
diff options
context:
space:
mode:
Diffstat (limited to 'rt/t/charts/basics.t')
-rw-r--r--rt/t/charts/basics.t91
1 files changed, 91 insertions, 0 deletions
diff --git a/rt/t/charts/basics.t b/rt/t/charts/basics.t
new file mode 100644
index 0000000..0f93e5a
--- /dev/null
+++ b/rt/t/charts/basics.t
@@ -0,0 +1,91 @@
+use strict;
+use warnings;
+
+use RT::Test tests => undef;
+use RT::Ticket;
+
+my $q = RT::Test->load_or_create_queue( Name => 'General' );
+ok $q && $q->id, 'loaded or created queue';
+my $queue = $q->Name;
+
+my @tickets = add_tix_from_data(
+ { Subject => 'n', Status => 'new' },
+ { Subject => 'o', Status => 'open' },
+ { Subject => 'o', Status => 'open' },
+ { Subject => 'r', Status => 'resolved' },
+ { Subject => 'r', Status => 'resolved' },
+ { Subject => 'r', Status => 'resolved' },
+);
+
+use_ok 'RT::Report::Tickets';
+
+{
+ my $report = RT::Report::Tickets->new( RT->SystemUser );
+ my %columns = $report->SetupGroupings(
+ Query => 'Queue = '. $q->id,
+ GroupBy => ['Status'],
+ Function => ['COUNT'],
+ );
+ $report->SortEntries;
+
+ my @colors = RT->Config->Get("ChartColors");
+ my $expected = {
+ 'thead' => [ {
+ 'cells' => [
+ { 'value' => 'Status', 'type' => 'head' },
+ { 'rowspan' => 1, 'value' => 'Ticket count', 'type' => 'head', 'color' => $colors[0] },
+ ],
+ } ],
+ 'tfoot' => [ {
+ 'cells' => [
+ { 'colspan' => 1, 'value' => 'Total', 'type' => 'label' },
+ { 'value' => 6, 'type' => 'value' },
+ ],
+ 'even' => 0
+ } ],
+ 'tbody' => [
+ {
+ 'cells' => [
+ { 'value' => 'new', 'type' => 'label' },
+ { 'query' => '(Status = \'new\')', 'value' => '1', 'type' => 'value' },
+ ],
+ 'even' => 1
+ },
+ {
+ 'cells' => [
+ { 'value' => 'open', 'type' => 'label' },
+ { 'query' => '(Status = \'open\')', 'value' => '2', 'type' => 'value' }
+ ],
+ 'even' => 0
+ },
+ {
+ 'cells' => [
+ { 'value' => 'resolved', 'type' => 'label' },
+ { 'query' => '(Status = \'resolved\')', 'value' => '3', 'type' => 'value' }
+ ],
+ 'even' => 1
+ },
+ ]
+ };
+
+ my %table = $report->FormatTable( %columns );
+ is_deeply( \%table, $expected, "basic table" );
+}
+
+done_testing;
+
+
+sub add_tix_from_data {
+ my @data = @_;
+ my @res = ();
+ while (@data) {
+ my %info = %{ shift(@data) };
+ my $t = RT::Ticket->new($RT::SystemUser);
+ my ( $id, undef, $msg ) = $t->Create( Queue => $q->id, %info );
+ ok( $id, "ticket created" ) or diag("error: $msg");
+ is $t->Status, $info{'Status'}, 'correct status';
+ push @res, $t;
+ }
+ return @res;
+}
+