The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Zonemaster::Engine::Test::Delegation - Module implementing tests focused on zone delegation

SYNOPSIS

    my @results = Zonemaster::Engine::Test::Delegation->all( $zone );

METHODS

all()
    my @logentry_array = all( $zone );

Runs the default set of tests for that module, i.e. seven tests.

Takes a Zonemaster::Engine::Zone object.

Returns a list of Zonemaster::Engine::Logger::Entry objects.

metadata()
    my $hash_ref = metadata();

Returns a reference to a hash, the keys of which are the names of all Test Cases in the module, and the corresponding values are references to an array containing all the message tags that the Test Case can use in log entries.

tag_descriptions()
    my $hash_ref = tag_descriptions();

Used by the built-in translation system.

Returns a reference to a hash, the keys of which are the message tags and the corresponding values are strings (message IDs).

version()
    my $version_string = version();

Returns a string containing the version of the current module.

INTERNAL METHODS

_emit_log()
    my $log_entry = _emit_log( $message_tag_string, $hash_ref );

Adds a message to the logger for this module. See "add($tag, $argref, $module, $testcase)" in Zonemaster::Engine::Logger::Entry for more details.

Takes a string (message tag) and a reference to a hash (arguments).

Returns a Zonemaster::Engine::Logger::Entry object.

_ip_disabled_message()
    my $bool = _ip_disabled_message( $logentry_array_ref, $ns, @query_type_array );

Checks if the IP version of a given name server is allowed to be queried. If not, it adds a logging message and returns true. Else, it returns false.

Takes a reference to an array of Zonemaster::Engine::Logger::Entry objects, a Zonemaster::Engine::Nameserver object and an array of strings (query type).

Returns a boolean.

_max_length_name_for()
    my $name_string = _max_length_name_for( $name );

Makes up a name of maximum length in the given domain name. Used as an helper function for Test Case Delegation03.

Takes a Zonemaster::Engine::DNSName object.

Returns a string.

_find_dup_ns()
    my @logentry_array = _find_dup_ns( %hash );

Checks if given name servers have distinct IP addresses. Used as an helper function for Test Case Delegation02.

Takes a hash - the keys of which are duplicate_tag, distinct_tag and ns_list, and their corresponding values are a string, a string and a reference to an array of Zonemaster::Engine::Nameserver objects, respectively.

Returns a list of Zonemaster::Engine::Logger::Entry objects.

TESTS

delegation01()
    my @logentry_array = delegation01( $zone );

Runs the Delegation01 Test Case.

Takes a Zonemaster::Engine::Zone object.

Returns a list of Zonemaster::Engine::Logger::Entry objects.

delegation02()
    my @logentry_array = delegation02( $zone );

Runs the Delegation02 Test Case.

Takes a Zonemaster::Engine::Zone object.

Returns a list of Zonemaster::Engine::Logger::Entry objects.

delegation03()
    my @logentry_array = delegation03( $zone );

Runs the Delegation03 Test Case.

Takes a Zonemaster::Engine::Zone object.

Returns a list of Zonemaster::Engine::Logger::Entry objects.

delegation04()
    my @logentry_array = delegation04( $zone );

Runs the Delegation04 Test Case.

Takes a Zonemaster::Engine::Zone object.

Returns a list of Zonemaster::Engine::Logger::Entry objects.

delegation05()
    my @logentry_array = delegation05( $zone );

Runs the Delegation05 Test Case.

Takes a Zonemaster::Engine::Zone object.

Returns a list of Zonemaster::Engine::Logger::Entry objects.

delegation06()
    my @logentry_array = delegation06( $zone );

Runs the Delegation06 Test Case.

Takes a Zonemaster::Engine::Zone object.

Returns a list of Zonemaster::Engine::Logger::Entry objects.

delegation07()
    my @logentry_array = delegation07( $zone );

Runs the Delegation07 Test Case.

Takes a Zonemaster::Engine::Zone object.

Returns a list of Zonemaster::Engine::Logger::Entry objects.