Added bugfix branch
[p5sagit/Excel-Template.git] / t / 009_loop.t
1 BEGIN{ $^W = 0 }
2 use strict;
3
4 use Test::More tests => 5;
5
6 use lib 't';
7 use mock;
8 mock::reset;
9
10 my $CLASS = 'Excel::Template';
11 use_ok( $CLASS );
12
13 my $object = $CLASS->new(
14     filename => 't/009.xml',
15 );
16 isa_ok( $object, $CLASS );
17
18 ok(
19     $object->param( 
20         loopy => [
21             { value => 1 },
22             { value => 2 },
23             { value => 3 },
24         ],
25         outer => [
26             { iter => 'a', inner => [ { value => 1 }, { value => 2 } ] },
27             { iter => 'b', inner => [ { value => 3 }, { value => 4 } ] },
28         ],
29         worksheets => [
30             { value => 1 },
31             { value => 2 },
32             { value => 3 },
33         ],
34         no_iters => [
35         ],
36     ),
37     'Parameters set',
38 );
39
40 ok( $object->write_file( 'filename' ), 'Something returned' );
41
42 my @calls = mock::get_calls;
43 is( join( $/, @calls, '' ), <<__END_EXPECTED__, 'Calls match up' );
44 Spreadsheet::WriteExcel::new( 'filename' )
45 Spreadsheet::WriteExcel::add_format( '' )
46 Spreadsheet::WriteExcel::add_worksheet( 'loops' )
47 Spreadsheet::WriteExcel::Worksheet::new( '' )
48 Spreadsheet::WriteExcel::Worksheet::write( '0', '0', '1', '1' )
49 Spreadsheet::WriteExcel::Worksheet::write( '0', '1', 'text', '1' )
50 Spreadsheet::WriteExcel::Worksheet::write( '1', '0', '2', '1' )
51 Spreadsheet::WriteExcel::Worksheet::write( '1', '1', 'text', '1' )
52 Spreadsheet::WriteExcel::Worksheet::write( '2', '0', '3', '1' )
53 Spreadsheet::WriteExcel::Worksheet::write( '2', '1', 'text', '1' )
54 Spreadsheet::WriteExcel::Worksheet::write( '3', '0', 'a', '1' )
55 Spreadsheet::WriteExcel::Worksheet::write( '3', '1', '1', '1' )
56 Spreadsheet::WriteExcel::Worksheet::write( '3', '2', '2', '1' )
57 Spreadsheet::WriteExcel::Worksheet::write( '4', '0', 'b', '1' )
58 Spreadsheet::WriteExcel::Worksheet::write( '4', '1', '3', '1' )
59 Spreadsheet::WriteExcel::Worksheet::write( '4', '2', '4', '1' )
60 Spreadsheet::WriteExcel::add_worksheet( '1' )
61 Spreadsheet::WriteExcel::Worksheet::new( '' )
62 Spreadsheet::WriteExcel::add_worksheet( '2' )
63 Spreadsheet::WriteExcel::Worksheet::new( '' )
64 Spreadsheet::WriteExcel::add_worksheet( '3' )
65 Spreadsheet::WriteExcel::Worksheet::new( '' )
66 Spreadsheet::WriteExcel::close( '' )
67 __END_EXPECTED__