use strict; use warnings; use Test::More tests => 11; use Chart::OFC::Grid; use Chart::OFC::Dataset::Bar; use Chart::OFC::XAxis; use Chart::OFC::YAxis; my @datasets = Chart::OFC::Dataset::Bar->new( values => [ 1 .. 5] ); my $x_axis = Chart::OFC::XAxis->new( axis_label => 'X Axis' ); my $y_axis = Chart::OFC::YAxis->new( axis_label => 'Y Axis', max => 100, label_steps => 20 ); eval { Chart::OFC::Grid->new( datasets => \@datasets, x_axis => $x_axis, y_axis => $y_axis, inner_bg_color2 => 'red' ) }; like( $@, qr/\QYou cannot set a second inner background color unless you set a first color and a fade angle/, 'cannot set inner_bg_color2 without setting inner_bg_color' ); eval { Chart::OFC::Grid->new( datasets => \@datasets, x_axis => $x_axis, y_axis => $y_axis, inner_bg_color => 'blue', inner_bg_color2 => 'red' ) }; like( $@, qr/\QYou cannot set a second inner background color unless you set a first color and a fade angle/, 'cannot set inner_bg_color2 without setting inner_bg_color' ); eval { Chart::OFC::Grid->new( datasets => \@datasets, x_axis => $x_axis, y_axis => $y_axis, inner_bg_fade_angle => 90 ) }; like( $@, qr/\QYou cannot set an inner background fade angle unless you set two background colors/, 'cannot set inner_bg_fade_color without setting two bg colors' ); eval { Chart::OFC::Grid->new( datasets => \@datasets, x_axis => $x_axis, y_axis => $y_axis, inner_bg_color2 => 'red', inner_bg_fade_angle => 90 ) }; like( $@, qr/\QYou cannot set an inner background fade angle unless you set two background colors/, 'cannot set inner_bg_fade_color without setting two bg colors' ); eval { Chart::OFC::Grid->new( datasets => \@datasets, x_axis => $x_axis, y_axis => $y_axis, inner_bg_color => 'red', inner_bg_fade_angle => 90 ) }; like( $@, qr/\QYou cannot set an inner background fade angle unless you set two background colors/, 'cannot set inner_bg_fade_color without setting two bg colors' ); eval { Chart::OFC::Grid->new( datasets => \@datasets, y_axis => $y_axis ) }; like( $@, qr/\Q(x_axis) is required/, 'x_axis is required for constructor' ); eval { Chart::OFC::Grid->new( datasets => \@datasets, x_axis => $x_axis ) }; like( $@, qr/\Q(y_axis) is required/, 'y_axis is required for constructor' ); eval { Chart::OFC::Grid->new( x_axis => $x_axis, y_axis => $y_axis ) }; like( $@, qr/\Q(datasets) is required/, 'datasets is required for constructor' ); { my $chart = Chart::OFC::Grid->new( title => 'Grid Test', datasets => \@datasets, x_axis => $x_axis, y_axis => $y_axis, ); my @data = ( '&title=Grid Test,{ font-size: 25px }&', $x_axis->_ofc_data_lines(), $y_axis->_ofc_data_lines(), $datasets[0]->_ofc_data_lines(1), ); my $data = join '', map { $_ . "\r\n" } @data; is( $chart->as_ofc_data(), $data, 'check as_ofc_data output' ); } { my $chart = Chart::OFC::Grid->new( title => 'Grid Test, Comma in Title', datasets => \@datasets, x_axis => $x_axis, y_axis => $y_axis, ); my @data = ( '&title=Grid Test#comma# Comma in Title,{ font-size: 25px }&', $x_axis->_ofc_data_lines(), $y_axis->_ofc_data_lines(), $datasets[0]->_ofc_data_lines(1), ); my $data = join '', map { $_ . "\r\n" } @data; is( $chart->as_ofc_data(), $data, 'check as_ofc_data output' ); } { my $chart = Chart::OFC::Grid->new( title => 'Grid Test', inner_bg_color => '#FFFF00', inner_bg_color2 => '#FFFFFF', inner_bg_fade_angle => 152, datasets => \@datasets, x_axis => $x_axis, y_axis => $y_axis, ); my @data = ( '&title=Grid Test,{ font-size: 25px }&', '&inner_background=#FFFF00,#FFFFFF,152&', $x_axis->_ofc_data_lines(), $y_axis->_ofc_data_lines(), $datasets[0]->_ofc_data_lines(1), ); my $data = join '', map { $_ . "\r\n" } @data; is( $chart->as_ofc_data(), $data, 'check as_ofc_data output' ); }