1#!perl -w 2 3use strict; 4use Test::More; 5 6use Test::Requires qw(Mouse::Meta::Class); 7use Text::ClearSilver; 8 9note "for Text::ClearSilver::HDF"; 10foreach my $method(Mouse::Meta::Class->initialize('Text::ClearSilver::HDF')->get_method_list){ 11 next if $method eq 'new'; 12 next if $method eq uc($method); # special methods such as CLONE 13 14 eval { 15 Text::ClearSilver::HDF->$method(); 16 }; 17 isnt $@, '', "call $method as a class method"; 18 19 eval { 20 Text::ClearSilver::HDF->$method(""); 21 }; 22 isnt $@, '', "call $method as a class method"; 23 24 eval { 25 Text::ClearSilver::HDF->$method("", ""); 26 }; 27 isnt $@, '', "call $method as a class method"; 28} 29 30note "for Text::ClearSilver::CS"; 31foreach my $method(Mouse::Meta::Class->initialize('Text::ClearSilver::CS')->get_method_list){ 32 next if $method eq 'new'; 33 next if $method eq 'bootstrap'; 34 next if $method eq uc($method); # special methods such as CLONE 35 36 eval { 37 Text::ClearSilver::CS->$method(); 38 }; 39 isnt $@, '', "call $method as a class method"; 40 41 eval { 42 Text::ClearSilver::CS->$method(""); 43 }; 44 isnt $@, '', "call $method as a class method"; 45 46 eval { 47 Text::ClearSilver::CS->$method("", ""); 48 }; 49 isnt $@, '', "call $method as a class method"; 50} 51 52eval { 53 my $cs = Text::ClearSilver::CS->new({ foo => 'bar' }); 54 $cs->parse_string("<?cs var:foo"); # syntax error 55}; 56like $@, qr/\b ParseError \b/xms; 57 58note "for Text::ClearSilver"; 59 60eval { 61 Text::ClearSilver->new(qw(foo bar baz)); 62}; 63like $@, qr/odd number of parameters/, 'parameters'; 64 65eval { 66 Text::ClearSilver->new([]); 67}; 68like $@, qr/must be a HASH ref/, 'parameters'; 69 70my $tcs = Text::ClearSilver->new(); 71 72eval { 73 $tcs->process($0, {}, \*STDOUT, qw(foo bar baz)); 74}; 75like $@, qr/odd number of parameters/; 76 77eval { 78 $tcs->process($0, {}, \*STDOUT, []); 79}; 80like $@, qr/must be a HASH ref/; 81 82eval { 83 $tcs->process(\'<?cs var:foo', {}); 84}; 85like $@, qr/\b ParseError \b/xms, 'check error'; 86 87done_testing; 88