1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-14 10:13:05 +02:00
pgbackrest/test/lib/pgBackRestTest/Common/ParamTest.pm
David Steele c8f806a293 Major refactor of the test suite.
* Make the code more modular and object-oriented.
* Multiple Docker containers can now be created for a single test to simulate more realistic environments.
2016-06-24 08:12:58 -04:00

120 lines
3.7 KiB
Perl

####################################################################################################################################
# ParamTest.pm - Allows parameters to be added to any object
####################################################################################################################################
package pgBackRestTest::Common::ParamTest;
####################################################################################################################################
# Perl includes
####################################################################################################################################
use strict;
use warnings FATAL => qw(all);
use Carp qw(confess);
use pgBackRest::Common::Log;
####################################################################################################################################
# paramSet
####################################################################################################################################
sub paramSet
{
my $self = shift;
# Assign function parameters, defaults, and log debug info
my
(
$strOperation,
$strKey,
$strValue,
) =
logDebugParam
(
__PACKAGE__ . '->paramSet', \@_,
{name => 'strKey', trace => true},
{name => 'strValue', trace => true},
);
$self->{param}{$strKey} = $strValue;
# Return from function and log return values if any
return logDebugReturn($strOperation);
}
####################################################################################################################################
# paramGet
####################################################################################################################################
sub paramGet
{
my $self = shift;
# Assign function parameters, defaults, and log debug info
my
(
$strOperation,
$strKey,
$bRequired,
$strDefault,
) =
logDebugParam
(
__PACKAGE__ . '->paramGet', \@_,
{name => 'strKey', trace => true},
{name => 'bRequired', default => true, trace => true},
{name => 'strDefault', required => false, trace => true},
);
my $strValue = $self->{param}{$strKey};
if (!defined($strValue))
{
if ($bRequired)
{
confess &log(ERROR, "param '${strKey}' is required");
}
$strValue = $strDefault;
}
# Return from function and log return values if any
return logDebugReturn
(
$strOperation,
{name => 'strValue', value => $strValue, trace => true}
);
}
####################################################################################################################################
# paramTest
####################################################################################################################################
sub paramTest
{
my $self = shift;
# Assign function parameters, defaults, and log debug info
my
(
$strOperation,
$strKey,
$strTestValue,
) =
logDebugParam
(
__PACKAGE__ . '->paramTest', \@_,
{name => 'strKey', trace => true},
{name => 'strTestValue', required => false, trace => true},
);
my $strValue = $self->paramGet($strKey, false);
my $bResult =
!defined($strTestValue) && defined($strValue) || defined($strTestValue) && $strTestValue eq $strValue ? true : false;
# Return from function and log return values if any
return logDebugReturn
(
$strOperation,
{name => 'bResult', value => $bResult, trace => true}
);
}
1;