#!/usr/bin/perl use strict; use Test::More 'no_plan'; use Test::Output; my $class = 'Brick'; use_ok( $class ); can_ok( $class, 'init' ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # SHOULD WORK { my $brick = bless {}, 'Brick'; ok( ! exists $brick->{external_packages} ); ok( ! exists $brick->{buckets} ); $brick->init( {} ); ok( exists $brick->{buckets} ); ok( exists $brick->{external_packages} ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # SHOULD WORK { my $brick = bless {}, 'Brick'; ok( ! exists $brick->{external_packages} ); ok( ! exists $brick->{buckets} ); $brick->init( { external_packages => [ 'Mock::FooValidator' ] } ); ok( exists $brick->{buckets} ); ok( exists $brick->{external_packages} ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # SHOULD FAIL (not an array reference) { my $brick = bless {}, 'Brick'; ok( ! exists $brick->{external_packages} ); ok( ! exists $brick->{buckets} ); stderr_like { $brick->init( { external_packages => 'Mock::FooValidator' } ) } qr/must be an anonymous array/, "String value for external_pacakges carps" ; ok( exists $brick->{buckets} ); ok( exists $brick->{external_packages} ); isa_ok( $brick->{external_packages}, ref [] ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # SHOULD FAIL (not a defined value) { my $brick = bless {}, 'Brick'; ok( ! exists $brick->{external_packages} ); ok( ! exists $brick->{buckets} ); $brick->init( { external_packages => undef } ); ok( exists $brick->{buckets} ); ok( exists $brick->{external_packages} ); isa_ok( $brick->{external_packages}, ref [] ); }