###############################################################################
#
# Tests for Excel::Writer::XLSX::Package::Table methods.
#
# reverse ('(c)'), September 2012, John McNamara, jmcnamara@cpan.org
#
use lib 't/lib';
use TestFunctions qw(_expected_to_aref _got_to_aref _is_deep_diff _new_object);
use strict;
use warnings;
use Excel::Writer::XLSX::Package::Table;
use Excel::Writer::XLSX::Worksheet;
use Test::More tests => 1;
###############################################################################
#
# Tests setup.
#
my $expected;
my $caption;
my $got;
my $obj = _new_object( \$got, 'Excel::Writer::XLSX::Package::Table' );
my $worksheet = Excel::Writer::XLSX::Worksheet->new();
# Set the table properties.
$worksheet->add_table(
'B2:K8',
{
total_row => 1,
columns => [
{ total_string => 'Total' },
{},
{ total_function => 'Average' },
{ total_function => 'COUNT' },
{ total_function => 'count_nums' },
{ total_function => 'max' },
{ total_function => 'min' },
{ total_function => 'sum' },
{ total_function => 'std Dev' },
{ total_function => 'var' }
],
}
);
$worksheet->_prepare_tables( 1, {} );
###############################################################################
#
# Test the _assemble_xml_file() method.
#
$caption = " \tTable: _assemble_xml_file()";
$obj->_set_properties( $worksheet->{_tables}->[0] );
$obj->_assemble_xml_file();
$expected = _expected_to_aref();
$got = _got_to_aref( $got );
_is_deep_diff( $got, $expected, $caption );
__DATA__
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<table xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" id="1" name="Table1" displayName="Table1" ref="B2:K8" totalsRowCount="1">
<autoFilter ref="B2:K7"/>
<tableColumns count="10">
<tableColumn id="1" name="Column1" totalsRowLabel="Total"/>
<tableColumn id="2" name="Column2"/>
<tableColumn id="3" name="Column3" totalsRowFunction="average"/>
<tableColumn id="4" name="Column4" totalsRowFunction="count"/>
<tableColumn id="5" name="Column5" totalsRowFunction="countNums"/>
<tableColumn id="6" name="Column6" totalsRowFunction="max"/>
<tableColumn id="7" name="Column7" totalsRowFunction="min"/>
<tableColumn id="8" name="Column8" totalsRowFunction="sum"/>
<tableColumn id="9" name="Column9" totalsRowFunction="stdDev"/>
<tableColumn id="10" name="Column10" totalsRowFunction="var"/>
</tableColumns>
<tableStyleInfo name="TableStyleMedium9" showFirstColumn="0" showLastColumn="0" showRowStripes="1" showColumnStripes="0"/>
</table>