r13930@rob-kinyons-powerbook58: rob | 2006-06-02 15:20:16 -0400
[p5sagit/Excel-Template.git] / t / 018_register.t
CommitLineData
e976988f 1use strict;
2
3use Test::More tests => 15;
4
5use lib 't';
6use mock;
7mock::reset;
8
9my $CLASS = 'Excel::Template';
10use_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
48ok(
49 $CLASS->register(
50 class => 'Register_018',
51 name => 'header',
52 isa => 'cell',
53 ), "Register Register_018 class",
54);
55
56my $object = $CLASS->new(
57 file => \*DATA,
58);
59isa_ok( $object, $CLASS );
60
61ok( $object->write_file( 'filename' ), 'Something returned' );
62
63my @calls = mock::get_calls;
64is( join( $/, @calls, '' ), <<__END_EXPECTED__, 'Calls match up' );
65Spreadsheet::WriteExcel::new( 'filename' )
66Spreadsheet::WriteExcel::add_format( '' )
67Spreadsheet::WriteExcel::add_worksheet( '' )
68Spreadsheet::WriteExcel::Worksheet::new( '' )
69Spreadsheet::WriteExcel::add_format( 'align', 'center', 'bold', '1' )
70Spreadsheet::WriteExcel::Worksheet::write( '0', '0', 'test', '2' )
71Spreadsheet::WriteExcel::close( '' )
72__END_EXPECTED__
73
74__DATA__
75<workbook>
76 <worksheet>
77 <header text="test" />
78 </worksheet>
79</workbook>