3 ##############################################################################
4 # $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/05_utils_ppi.t $
5 # $Date: 2008-06-06 00:48:04 -0500 (Fri, 06 Jun 2008) $
8 ##############################################################################
15 use Test::More tests => 67;
17 #-----------------------------------------------------------------------------
19 my @PPI_STATEMENT_CLASSES;
22 @PPI_STATEMENT_CLASSES = qw{
24 PPI::Statement::Package
25 PPI::Statement::Include
27 PPI::Statement::Scheduled
28 PPI::Statement::Compound
32 PPI::Statement::Expression
33 PPI::Statement::Variable
35 PPI::Statement::UnmatchedBrace
36 PPI::Statement::Unknown
39 use_ok('PPI::Token::Word');
40 foreach my $class (@PPI_STATEMENT_CLASSES) {
44 use_ok('Perl::Critic::Utils::PPI', qw{ :all } );
47 my %INSTANCES = map { $_ => $_->new() } @PPI_STATEMENT_CLASSES;
48 $INSTANCES{'PPI::Token::Word'} = PPI::Token::Word->new('foo');
50 #-----------------------------------------------------------------------------
53 can_ok('main', 'is_ppi_expression_or_generic_statement');
54 can_ok('main', 'is_ppi_generic_statement');
55 can_ok('main', 'is_ppi_statement_subclass');
57 #-----------------------------------------------------------------------------
58 # is_ppi_expression_or_generic_statement tests
62 ! is_ppi_expression_or_generic_statement( undef ),
63 'is_ppi_expression_or_generic_statement( undef )',
66 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Token::Word'} ),
67 'is_ppi_expression_or_generic_statement( PPI::Token::Word )',
70 is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement'} ),
71 'is_ppi_expression_or_generic_statement( PPI::Statement )',
74 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Package'} ),
75 'is_ppi_expression_or_generic_statement( PPI::Statement::Package )',
78 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Include'} ),
79 'is_ppi_expression_or_generic_statement( PPI::Statement::Include )',
82 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Sub'} ),
83 'is_ppi_expression_or_generic_statement( PPI::Statement::Sub )',
86 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Scheduled'} ),
87 'is_ppi_expression_or_generic_statement( PPI::Statement::Scheduled )',
90 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Compound'} ),
91 'is_ppi_expression_or_generic_statement( PPI::Statement::Compound )',
94 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Break'} ),
95 'is_ppi_expression_or_generic_statement( PPI::Statement::Break )',
98 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Data'} ),
99 'is_ppi_expression_or_generic_statement( PPI::Statement::Data )',
102 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::End'} ),
103 'is_ppi_expression_or_generic_statement( PPI::Statement::End )',
106 is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Expression'} ),
107 'is_ppi_expression_or_generic_statement( PPI::Statement::Expression )',
110 is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Variable'} ),
111 'is_ppi_expression_or_generic_statement( PPI::Statement::Variable )',
114 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Null'} ),
115 'is_ppi_expression_or_generic_statement( PPI::Statement::Null )',
118 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::UnmatchedBrace'} ),
119 'is_ppi_expression_or_generic_statement( PPI::Statement::UnmatchedBrace )',
122 ! is_ppi_expression_or_generic_statement( $INSTANCES{'PPI::Statement::Unknown'} ),
123 'is_ppi_expression_or_generic_statement( PPI::Statement::Unknown )',
127 #-----------------------------------------------------------------------------
128 # is_ppi_generic_statement tests
132 ! is_ppi_generic_statement( undef ),
133 'is_ppi_generic_statement( undef )',
136 ! is_ppi_generic_statement( $INSTANCES{'PPI::Token::Word'} ),
137 'is_ppi_generic_statement( PPI::Token::Word )',
140 is_ppi_generic_statement( $INSTANCES{'PPI::Statement'} ),
141 'is_ppi_generic_statement( PPI::Statement )',
144 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Package'} ),
145 'is_ppi_generic_statement( PPI::Statement::Package )',
148 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Include'} ),
149 'is_ppi_generic_statement( PPI::Statement::Include )',
152 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Sub'} ),
153 'is_ppi_generic_statement( PPI::Statement::Sub )',
156 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Scheduled'} ),
157 'is_ppi_generic_statement( PPI::Statement::Scheduled )',
160 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Compound'} ),
161 'is_ppi_generic_statement( PPI::Statement::Compound )',
164 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Break'} ),
165 'is_ppi_generic_statement( PPI::Statement::Break )',
168 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Data'} ),
169 'is_ppi_generic_statement( PPI::Statement::Data )',
172 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::End'} ),
173 'is_ppi_generic_statement( PPI::Statement::End )',
176 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Expression'} ),
177 'is_ppi_generic_statement( PPI::Statement::Expression )',
180 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Variable'} ),
181 'is_ppi_generic_statement( PPI::Statement::Variable )',
184 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Null'} ),
185 'is_ppi_generic_statement( PPI::Statement::Null )',
188 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::UnmatchedBrace'} ),
189 'is_ppi_generic_statement( PPI::Statement::UnmatchedBrace )',
192 ! is_ppi_generic_statement( $INSTANCES{'PPI::Statement::Unknown'} ),
193 'is_ppi_generic_statement( PPI::Statement::Unknown )',
197 #-----------------------------------------------------------------------------
198 # is_ppi_statement_subclass tests
202 ! is_ppi_statement_subclass( undef ),
203 'is_ppi_statement_subclass( undef )',
206 ! is_ppi_statement_subclass( $INSTANCES{'PPI::Token::Word'} ),
207 'is_ppi_statement_subclass( PPI::Token::Word )',
210 ! is_ppi_statement_subclass( $INSTANCES{'PPI::Statement'} ),
211 'is_ppi_statement_subclass( PPI::Statement )',
214 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Package'} ),
215 'is_ppi_statement_subclass( PPI::Statement::Package )',
218 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Include'} ),
219 'is_ppi_statement_subclass( PPI::Statement::Include )',
222 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Sub'} ),
223 'is_ppi_statement_subclass( PPI::Statement::Sub )',
226 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Scheduled'} ),
227 'is_ppi_statement_subclass( PPI::Statement::Scheduled )',
230 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Compound'} ),
231 'is_ppi_statement_subclass( PPI::Statement::Compound )',
234 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Break'} ),
235 'is_ppi_statement_subclass( PPI::Statement::Break )',
238 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Data'} ),
239 'is_ppi_statement_subclass( PPI::Statement::Data )',
242 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::End'} ),
243 'is_ppi_statement_subclass( PPI::Statement::End )',
246 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Expression'} ),
247 'is_ppi_statement_subclass( PPI::Statement::Expression )',
250 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Variable'} ),
251 'is_ppi_statement_subclass( PPI::Statement::Variable )',
254 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Null'} ),
255 'is_ppi_statement_subclass( PPI::Statement::Null )',
258 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::UnmatchedBrace'} ),
259 'is_ppi_statement_subclass( PPI::Statement::UnmatchedBrace )',
262 is_ppi_statement_subclass( $INSTANCES{'PPI::Statement::Unknown'} ),
263 'is_ppi_statement_subclass( PPI::Statement::Unknown )',
267 #-----------------------------------------------------------------------------
269 # ensure we run true if this test is loaded by
270 # t/05_utils_ppi.t_without_optional_dependencies.t
275 # cperl-indent-level: 4
277 # indent-tabs-mode: nil
278 # c-indentation-style: bsd
280 # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :