Commit | Line | Data |
e976988f |
1 | use strict; |
2 | |
3 | use Test::More tests => 15; |
4 | |
5 | use lib 't'; |
6 | use mock; |
7 | mock::reset; |
8 | |
9 | my $CLASS = 'Excel::Template'; |
10 | use_ok( $CLASS ); |
11 | |
12 | { |
13 | local $^W=0; |
14 | ok( !$CLASS->register(), "Must pass in class, name, and isa" ); |
15 | ok( !$CLASS->register( class => 'Register_018' ), "Must pass in class, name, and isa" ); |
16 | ok( !$CLASS->register( name => 'header' ), "Must pass in class, name, and isa" ); |
17 | ok( !$CLASS->register( isa => 'cell' ), "Must pass in class, name, and isa" ); |
18 | ok( !$CLASS->register( class => 'Register_018', isa => 'cell' ), "Must pass in class, name, and isa" ); |
19 | ok( !$CLASS->register( class => 'Register_018', name => 'header' ), "Must pass in class, name, and isa" ); |
20 | ok( !$CLASS->register( name => 'header', isa => 'cell' ), "Must pass in class, name, and isa" ); |
21 | |
22 | eval { |
23 | $CLASS->register( |
24 | class => 'NOT::A::CLASS', |
25 | name => 'not_a_node', |
26 | isa => 'cell', |
27 | ); |
28 | }; |
29 | like( $@, qr/Cannot find or compile/, "Verify registering a non-existent class fails" ); |
30 | |
31 | ok( |
32 | !$CLASS->register( |
33 | class => 'NOT::A::CLASS', |
34 | name => 'cell', |
35 | isa => 'row', |
36 | ), "Cannot add a nodename we already have", |
37 | ); |
38 | |
39 | ok( |
40 | !$CLASS->register( |
41 | class => 'NOT::A::CLASS', |
42 | name => 'new_node', |
43 | isa => 'not_a_node', |
44 | ), "Cannot inherit from a nodename we don't have", |
45 | ); |
46 | } |
47 | |
48 | ok( |
49 | $CLASS->register( |
50 | class => 'Register_018', |
51 | name => 'header', |
52 | isa => 'cell', |
53 | ), "Register Register_018 class", |
54 | ); |
55 | |
56 | my $object = $CLASS->new( |
57 | file => \*DATA, |
58 | ); |
59 | isa_ok( $object, $CLASS ); |
60 | |
61 | ok( $object->write_file( 'filename' ), 'Something returned' ); |
62 | |
63 | my @calls = mock::get_calls; |
64 | is( join( $/, @calls, '' ), <<__END_EXPECTED__, 'Calls match up' ); |
65 | Spreadsheet::WriteExcel::new( 'filename' ) |
66 | Spreadsheet::WriteExcel::add_format( '' ) |
67 | Spreadsheet::WriteExcel::add_worksheet( '' ) |
68 | Spreadsheet::WriteExcel::Worksheet::new( '' ) |
69 | Spreadsheet::WriteExcel::add_format( 'align', 'center', 'bold', '1' ) |
70 | Spreadsheet::WriteExcel::Worksheet::write( '0', '0', 'test', '2' ) |
71 | Spreadsheet::WriteExcel::close( '' ) |
72 | __END_EXPECTED__ |
73 | |
74 | __DATA__ |
75 | <workbook> |
76 | <worksheet> |
77 | <header text="test" /> |
78 | </worksheet> |
79 | </workbook> |