1#!/usr/bin/perl 2use strict; 3use warnings; 4 5use Test::More 1; 6 7use Config; 8use File::Spec; 9 10use lib qw(t/lib); 11require 'setup_common.pl'; 12 13my $class = 'Module::Release'; 14subtest setup => sub { 15 use_ok( $class ); 16 can_ok( $class, 'new' ); 17 }; 18 19my %required_env; 20my $debug_env_var = 'RELEASE_DEBUG'; 21 22if ( $^O eq 'android' ) { 23 my $ldlibpth = $Config{ldlibpthname}; 24 $required_env{$ldlibpth} = $ENV{$ldlibpth}; 25 $required_env{PATH} = $ENV{PATH}; 26} 27 28subtest no_params_clean => sub { 29 local %ENV = %required_env; # don't react to overall setup 30 my $method = 'debug'; 31 32 my $release = $class->new; 33 isa_ok( $release, $class ); 34 35 can_ok( $release, $method ); 36 ok( ! $release->$method(), "debug starts off" ); 37 }; 38 39subtest no_params_debug => sub { 40 local %ENV = %required_env; # don't react to overall setup 41 42 $ENV{$debug_env_var} = 1; 43 my $method = 'debug'; 44 45 my $release = $class->new; 46 isa_ok( $release, $class ); 47 48 can_ok( $release, $method ); 49 is( $release->$method(), $ENV{$debug_env_var}, 50 "$method matches $debug_env_var ($ENV{$debug_env_var})" ); 51 }; 52 53subtest no_params_no_debug => sub { 54 local %ENV = %required_env; # don't react to overall setup 55 56 $ENV{$debug_env_var} = 0; 57 my $method = 'debug'; 58 59 my $release = $class->new; 60 isa_ok( $release, $class ); 61 62 can_ok( $release, $method ); 63 is( $release->$method(), $ENV{$debug_env_var}, 64 "$method matches $debug_env_var ($ENV{$debug_env_var})" ); 65 }; 66 67done_testing(); 68