Test::Net::LDAP(3pm)

Test::Net::LDAP3pm

A net::ldap subclass for testing

Usage

Basic testing utility

    use Test::More tests => 1;
    use Test::Net::LDAP;
    
    # Create an object, just like Net::LDAP->new()
    my $ldap = Test::Net::LDAP->new(...);
    
    # Same as $ldap->search(), testing the result to see if it is success
    my $search = $ldap->search_ok(...search args...);

Mocking (See Test::Net::LDAP::Mock)

    use Test::More tests => 1;
    use Test::Net::LDAP::Util qw(ldap_mockify);
    
    ldap_mockify {
        # Net::LDAP->new() will invoke Test::Net::LDAP::Mock->new()
        my $ldap = Net::LDAP->new('ldap.example.com');
        
        # Add entries to in-memory data tree
        $ldap->add('uid=user1, ou=users, dc=example, dc=com');
        $ldap->add('uid=user2, ou=users, dc=example, dc=com');
        
        # Test your application
        ok my_application_routine();
    };

Version

Version 0.07

Overview

This module provides some testing methods for LDAP operations, such as "search", "add", and "modify", where each method is suffixed with either "_ok" or "_is".

"Test::Net::LDAP" is a subclass of "Net::LDAP", so all the methods defined for "Net::LDAP" are available in addition to "search_ok", "add_is", etc.

See Test::Net::LDAP::Mock for in-memory testing with fake data, without connecting to the real LDAP servers.

See Test::Net::LDAP::Util for some helper subroutines.

Methods

new

Creates a new object. The parameters are the same as "Net::LDAP::new".

    my $ldap = Test::Net::LDAP->new('ldap.example.com');

search_ok

Available methods: "search_ok", "compare_ok", "add_ok", "modify_ok", "delete_ok", "moddn_ok", "bind_ok", "unbind_ok", "abandon_ok"

Synopsis:

    $ldap->search_ok(@params);
    $ldap->search_ok(\@params, $name);

Invokes the corresponding method with @params passed as arguments, and tests the result to see if the code is "LDAP_SUCCESS".

Alternatively, @params can be given as an array ref, so that the second argument $name is specified as the test name.

$name is an optional test name, and if it is omitted, the test name is automatically configured based on $method and @params.

    my $search = $ldap->search_ok(
        base => 'dc=example, dc=com', scope => 'sub', filter => '(cn=*)',
    );
    my $search = $ldap->search_ok(
        [base => 'dc=example, dc=com', scope => 'sub', filter => '(cn=*)'],
        'Testing search (cn=*)'
    );

search_is

Available methods: "search_is", "compare_is", "add_is", "modify_is", "delete_is", "moddn_is", "bind_is", "unbind_is", "abandon_is"

Synopsis:

    $ldap->search_is(\@params, $expect, $name);

Invokes the corresponding method with @params passed as arguments, and tests the result to see if the code is equal to $expect.

$expect can be a result code such as "LDAP_NO_SUCH_OBJECT" or an object of "Net::LDAP::Message" returned by LDAP operations.

$name is an optional test name, and if it is omitted, the test name is automatically configured based on $method and @params.

    use Net::LDAP::Constant qw(LDAP_ALREADY_EXISTS);
    my $mesg = $ldap->add_is(
        ['uid=duplicate, dc=example, dc=com'],
        LDAP_ALREADY_EXISTS
    );

method_ok

    $ldap->method_ok($method, @params);
    $ldap->method_ok($method, \@params, $name);

Invokes the method as "$ldap->$method(@params)" and tests the result to see if the code is "LDAP_SUCCESS".

$name is an optional test name, and if it is omitted, the test name is automatically configured based on $method and @params.

method_is

    $ldap->method_is($method, \@params, $expect, $name);

Invokes the method as "$ldap->$method(@params)" and tests the result to see if the code is equal to $expect.

$expect can be a result code such as "LDAP_NO_SUCH_OBJECT" or an object of "Net::LDAP::Message" returned by LDAP operations.

$name is an optional test name, and if it is omitted, the test name is automatically configured based on $method and @params.

Support

You can find documentation for this module with the perldoc command.

    perldoc Test::Net::LDAP

You can also look for information at:

•

GitHub repository (report bugs here)

<https://github.com/mahiro/perl-Test-Net-LDAP>

•

RT: CPAN's request tracker (report bugs here, alternatively)

<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-Net-LDAP>

•

AnnoCPAN: Annotated CPAN documentation

<http://annocpan.org/dist/Test-Net-LDAP>

•

CPAN Ratings

<http://cpanratings.perl.org/d/Test-Net-LDAP>

•

Search CPAN

<http://search.cpan.org/dist/Test-Net-LDAP/>

Acknowledgements

Releases

6 releases since Debian 8 (Jessie); the text changed 2 times.

  1. 8
  2. 9–11
  3. 12–13

Author

Mahiro Ando, "<mahiro at cpan.org>"

Bugs

Please report any bugs or feature requests to "bug-test-net-ldap at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Net-LDAP>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

From libtest-net-ldap-perl 0.07-2 in Debian 13 (Trixie). Parsed by carta from the page's man source.