Test2::Compare::Base - Base class for comparison classes.

NAME  DESCRIPTION  SYNOPSIS  METHODS  SOURCE  MAINTAINERS  AUTHORS  COPYRIGHT 

NAME

Test2::Compare::Base − Base class for comparison classes.

DESCRIPTION

All comparison classes for Test2::Compare should inherit from this base class.

SYNOPSIS

package Test2::Compare::MyCheck;
use strict;
use warnings;
use base 'Test2::Compare::Base';
use Test2::Util::HashBase qw/stuff/;
sub name { 'STUFF' }
sub operator {
my $self = shift;
my ($got) = @_;
return 'eq';
}
sub verify {
my $self = shift;
my $params = @_;
# Always check if $got exists! This method must return false if no
# value at all was received.
return 0 unless $params{exists};
my $got = $params{got};
# Returns true if both values match. This includes undef, 0, and other
# false−y values!
return $got eq $self−>stuff;
}

METHODS

Some of these must be overridden, others can be.
$dclass = $check−>delta_class

Returns the delta subclass that should be used. By default Test2::Compare::Delta is used.

@deltas = $check−>deltas(id => $id, exists => $bool, got => $got,
convert => \&convert, seen => \%seen)

Should return child deltas.

@lines = $check−>got_lines($got)

This is your chance to provide line numbers for errors in the $got structure.

$op = $check−>operator()
$op = $check−>operator($got)

Returns the operator that was used to compare the check with the received data in $got. If there was no value for got then there will be no arguments, undef will only be an argument if undef was seen in $got. This is how you can tell the difference between a missing value and an undefined one.

$bool = $check−>verify(id => $id, exists => $bool, got => $got, convert
=> \&convert, seen => \%seen)

Return true if there is a shallow match, that is both items are arrayrefs, both items are the same string or same number, etc. This should not recurse, as deep checks are done in "$check−>deltas()".

$name = $check−>name

Get the name of the check.

$display = $check−>render

What should be displayed in a table for this check, usually the name or value.

$delta = $check−>run(id => $id, exists => $bool, got => $got, convert
=> \&convert, seen => \%seen)

This is where the checking is done, first a shallow check using "$check−>verify", then checking "$check−>deltas()". "\%seen" is used to prevent cycles.

SOURCE

The source code repository for Test2−Suite can be found at https://github.com/Test−More/Test2−Suite/.

MAINTAINERS

Chad Granum <[email protected]>

AUTHORS

Chad Granum <[email protected]>

COPYRIGHT

Copyright 2018 Chad Granum <[email protected]>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://dev.perl.org/licenses/


Updated 2024-01-29 - jenkler.se | uex.se